; ; _beginthreadex from 0x180130ab0 to 0x180130b84 (212 bytes) ; ; 2 xrefs: ; > FMOD_OS_Thread_Create @ 0x1800c1646 ; > @ 0x180202e7c ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; mov [rsp+arg_0], rbx ; +0x0, 0x180130ab0 mov [rsp+arg_8], rsi ; +0x5, 0x180130ab5 push rdi ; +0xa, 0x180130aba sub rsp, 30h ; +0xb, 0x180130abb mov edi, edx ; +0xf, 0x180130abf mov rsi, rcx ; +0x11, 0x180130ac1 test r8, r8 ; +0x14, 0x180130ac4 jnz short loc_180130AE0 ; +0x17, 0x180130ac7 call _errno ; +0x19, 0x180130ac9 mov dword ptr [rax], 16h ; +0x1e, 0x180130ace call _invalid_parameter_noinfo ; +0x24, 0x180130ad4 xor eax, eax ; +0x29, 0x180130ad9 jmp loc_180130B60 ; +0x2b, 0x180130adb mov rdx, r9; void * ; +0x30, 0x180130ae0 mov rcx, r8; lpModuleName ; +0x33, 0x180130ae3 call ?create_thread_parameter@@YAPEAU__acrt_thread_parameter@@QEAX0@Z ; +0x36, 0x180130ae6 mov rbx, rax ; +0x3b, 0x180130aeb test rax, rax ; +0x3e, 0x180130aee jz short loc_180130B30 ; +0x41, 0x180130af1 lea rax, [rsp+38h+ThreadId] ; +0x43, 0x180130af3 mov rdx, rdi; dwStackSize ; +0x48, 0x180130af8 mov [rsp+38h+lpThreadId], rax; lpThreadId ; +0x4b, 0x180130afb lea r8, unknown_libname_61; lpStartAddress ; +0x50, 0x180130b00 mov eax, [rsp+38h+InitFlag] ; +0x57, 0x180130b07 mov r9, rbx; lpParameter ; +0x5b, 0x180130b0b mov rcx, rsi; lpThreadAttributes ; +0x5e, 0x180130b0e mov [rsp+38h+dwCreationFlags], eax; dwCreationFlags ; +0x61, 0x180130b11 call cs:CreateThread ; +0x65, 0x180130b15 mov rdi, rax ; +0x6b, 0x180130b1b test rax, rax ; +0x6e, 0x180130b1e jnz short loc_180130B70 ; +0x71, 0x180130b21 call cs:GetLastError ; +0x73, 0x180130b23 mov ecx, eax ; +0x79, 0x180130b29 call __acrt_errno_map_os_error ; +0x7b, 0x180130b2b xor edi, edi ; +0x80, 0x180130b30 test rbx, rbx ; +0x82, 0x180130b32 jz short loc_180130B5D ; +0x85, 0x180130b35 mov rcx, [rbx+10h]; hObject ; +0x87, 0x180130b37 test rcx, rcx ; +0x8b, 0x180130b3b jz short loc_180130B46 ; +0x8e, 0x180130b3e call cs:CloseHandle ; +0x90, 0x180130b40 mov rcx, [rbx+18h]; hLibModule ; +0x96, 0x180130b46 test rcx, rcx ; +0x9a, 0x180130b4a jz short loc_180130B55 ; +0x9d, 0x180130b4d call cs:FreeLibrary ; +0x9f, 0x180130b4f mov rcx, rbx; Block ; +0xa5, 0x180130b55 call _free_base ; +0xa8, 0x180130b58 mov rax, rdi ; +0xad, 0x180130b5d mov rbx, [rsp+38h+arg_0] ; +0xb0, 0x180130b60 mov rsi, [rsp+38h+arg_8] ; +0xb5, 0x180130b65 add rsp, 30h ; +0xba, 0x180130b6a pop rdi ; +0xbe, 0x180130b6e retn ; +0xbf, 0x180130b6f mov rcx, [rsp+38h+ThrdAddr] ; +0xc0, 0x180130b70 test rcx, rcx ; +0xc5, 0x180130b75 jz short loc_180130B80 ; +0xc8, 0x180130b78 mov eax, [rsp+38h+ThreadId] ; +0xca, 0x180130b7a mov [rcx], eax ; +0xce, 0x180130b7e xor ebx, ebx ; +0xd0, 0x180130b80 jmp short loc_180130B32 ; +0xd2, 0x180130b82