Function at 0x10039250
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x590
mov esi, esp
mov dword [esi + 0x578], ebp
mov dword [esi + 0x57c], esp
mov dword [esi + 0x588], 0xffffffff
mov dword [esi + 0x584], 0x10048470
mov dword [esi + 0x38], ecx
lea eax, [esi + 0x580]
mov dword [esi + 0x44], edx
mov ecx, dword fs:[0]
mov dword [esi + 0x580], ecx
mov dword fs:[0], eax
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x1008c8b1], cl
jne 0x10039671
mov eax, dword [0x1008c8cc]
test eax, 0x7fffffff
jne 0x1003968e
mov dword [esi + 0x28], 0
movzx eax, byte [0x1008c8b2]
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 8
mov dword [esi + 0x14], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x30], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [esi + 0x2c], eax
lea edi, [esi + 0x2a0]
push 0x2d0
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov dword [esi + 0x588], 0
call fcn.10042b80
test eax, eax
je 0x100393a2
mov ecx, dword [esi + 0x38]
mov eax, dword [esi + 0x2a8]
movsd xmm0, qword [esi + 0x2a0]
mov dword [ecx], 0
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0xc]
movsd qword [ecx + 4], xmm0
test eax, eax
je 0x10039361
imul eax, eax, 0x130
push 8
push eax
push dword [esi + 0x10]
call fcn.10002ac0
add esp, 0xc
cmp byte [esi + 0x28], 0
jne 0x10039377
mov eax, dword [0x1008c8cc]
test eax, 0x7fffffff
jne 0x1003984b
xor eax, eax
xchg byte [0x1008c8b1], al
cmp al, 2
jne 0x1003938e
push 0x1008c8b1
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle]
mov eax, dword [esi + 0x580]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [0x1008c910]
mov dword [esi + 0x34], edx
test edi, edi
je 0x100393bd
mov eax, dword [0x1008c914]
test eax, eax
mov dword [esi + 0x18], eax
jne 0x1003940a
jmp 0x100393e9
push str.SymFunctionTableAccess64
push dword [0x1008c8f0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10039887
mov edi, eax
mov dword [0x1008c910], eax
mov eax, dword [0x1008c914]
test eax, eax
mov dword [esi + 0x18], eax
jne 0x1003940a
push str.SymGetModuleBase64
push dword [0x1008c8f0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x100398a0
mov dword [esi + 0x18], eax
mov dword [0x1008c914], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ebx, dword [0x1008c918]
mov dword [esi + 0x40], eax
mov dword [esi + 0x3c], edi
test ebx, ebx
jne 0x10039440
push str.StackWalkEx
push dword [0x1008c8f0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1003969d
mov ebx, eax
mov dword [0x1008c918], eax
lea eax, [esi + 0x60]
push 0x100
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esi + 0x354]
mov ecx, dword [esi + 0x358]
mov edx, dword [esi + 0x364]
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x160], 0x110
mov dword [esi + 0x164], 0
mov dword [esi + 0x168], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x58], ecx
mov dword [esi + 0x64], 3
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], 0
mov dword [esi + 0x94], 3
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], 3
push 0
push 0
push dword [esi + 0x18]
push edi
lea edi, [esi + 0x58]
push 0
lea eax, [esi + 0x2a0]
push eax
push edi
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 0x14c
call ebx
cmp eax, 1
jne 0x1003961a
mov dword [esi + 0x4c], ebx
mov ebx, edi
mov edi, dword [esi + 0x18]
mov dword [esi + 0x20], 0
mov dword [esi + 0x48], 8
mov dword [esi + 8], 0
jmp 0x10039593
imul eax, edi, 0x130
add eax, dword [esi + 0x48]
push 0x130
lea ecx, [esi + 0x170]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 8]
inc edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x20], edi
xor eax, dword [esi + 0x44]
or eax, ecx
mov eax, dword [esi + 0x24]
cmove eax, edi
mov dword [esi + 0x24], eax
mov eax, 1
cmove ecx, eax
mov dword [esi + 8], ecx
push 0
push 0
mov edi, dword [esi + 0x18]
push edi
push dword [esi + 0x3c]
push 0
lea eax, [esi + 0x2a0]
push eax
lea ebx, [esi + 0x58]
push ebx
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 0x14c
call dword [esi + 0x4c]
cmp eax, 1
jne 0x10039621
push 0
push dword [esi + 0x58]
push dword [esi + 0x40]
call edi
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
mov dword [esi + 0x1c], eax
push 0x118
push ebx
lea eax, [esi + 0x178]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x174], edi
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
cmp edi, dword [esi + 0xc]
mov dword [esi + 0x170], eax
mov dword [esi + 0x290], 0
mov dword [esi + 0x294], 4
mov dword [esi + 0x298], 0
jne 0x10039520
lea ecx, [esi + 0xc]
mov dword [esi + 0x588], 2
call fcn.10038600
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
mov dword [esi + 0x48], eax
jmp 0x10039520
mov dword [esi + 8], 0
push dword [esi + 0x34]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [esi + 0x14], 0
mov edx, dword [esi + 0x24]
je 0x10039327
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x38]
movsd xmm0, qword [esi + 0xc]
mov edi, dword [esi + 0x14]
test eax, eax
mov dword [ecx], 2
movsd qword [ecx + 4], xmm0
mov dword [ecx + 0xc], edi
cmove edx, eax
mov dword [ecx + 0x10], edx
mov dword [ecx + 0x14], 0
cmp byte [esi + 0x28], 0
je 0x10039367
jmp 0x10039377
push 0x1008c8b1
call fcn.1005e7f0
add esp, 4
mov eax, dword [0x1008c8cc]
test eax, 0x7fffffff
je 0x100392c2
call fcn.1005e580
xor al, 1
mov dword [esi + 0x28], eax
jmp 0x100392c9
lea eax, [esi + 0x60]
push 0x100
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esi + 0x354]
mov ecx, dword [esi + 0x358]
mov edx, dword [esi + 0x364]
xor ebx, ebx
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 1
mov dword [esi + 0x168], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x1c], 8
mov dword [esi + 8], 0
mov dword [esi + 0x58], ecx
mov dword [esi + 0x64], 3
mov dword [esi + 0x88], edx
mov dword [esi + 0x8c], 0
mov dword [esi + 0x94], 3
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], 3
jmp 0x1003977d
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x1c], eax
imul eax, ebx, 0x130
add eax, dword [esi + 0x1c]
push 0x130
lea ecx, [esi + 0x170]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 8]
inc ebx
mov edi, dword [esi + 0x3c]
mov edx, 1
mov dword [esi + 0x14], ebx
xor eax, dword [esi + 0x44]
or eax, ecx
mov eax, dword [esi + 0x24]
cmove ecx, edx
mov dword [esi + 8], ecx
cmove eax, ebx
mov dword [esi + 0x24], eax
mov eax, dword [0x1008c90c]
test eax, eax
jne 0x100397a4
push str.StackWalk64
push dword [0x1008c8f0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x1003986e
mov dword [0x1008c90c], eax
mov dword [esi + 0x20], ebx
push 0
mov ebx, dword [esi + 0x18]
push ebx
push edi
push 0
lea ecx, [esi + 0x2a0]
push ecx
lea edi, [esi + 0x58]
push edi
push dword [esi + 0x2c]
push dword [esi + 0x30]
push 0x14c
call eax
cmp eax, 1
jne 0x10039621
push 0
push dword [esi + 0x58]
push dword [esi + 0x40]
call ebx
mov dword [esi + 0x168], eax
mov eax, edi
mov ebx, dword [esi + 0x54]
mov edi, dword [esi + 0x50]
push 0x118
push eax
lea eax, [esi + 0x178]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x174], ebx
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x170], edi
mov dword [esi + 0x290], 0
mov dword [esi + 0x294], 4
mov dword [esi + 0x298], 0
cmp ebx, dword [esi + 0xc]
jne 0x10039739
lea ecx, [esi + 0xc]
mov dword [esi + 0x588], 3
call fcn.10038600
jmp 0x10039730
mov dword [esi + 0x588], 0xffffffff
call fcn.1005e580
test al, al
jne 0x10039377
mov byte [0x1008c8b2], 1
jmp 0x10039377
mov dword [esi + 0x588], 1
push 0x1006fe90
call fcn.1005ef30
add esp, 4
jmp 0x100398b7
mov dword [esi + 0x588], 1
push 0x1006fe90
call fcn.1005ef30
add esp, 4
jmp 0x100398b7
mov dword [esi + 0x588], 1
push 0x1006fe90
call fcn.1005ef30
add esp, 4
ud2