Function at 0x438050
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], 0x445520
mov dword [esi + 0x3c], ecx
lea eax, [esi + 0x580]
mov dword [esi + 0x48], 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 [0x4721d9], cl
jne 0x43847f
mov eax, dword [0x4721f4]
test eax, 0x7fffffff
jne 0x43849c
mov dword [esi + 0x2c], 0
movzx eax, byte [0x4721da]
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 8
mov dword [esi + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [esi + 0x30], eax
lea edi, [esi + 0x2a0]
push 0x2d0
push 0
push edi
call fcn.004584a0
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov dword [esi + 0x588], 0
call fcn.00440de0
test eax, eax
je 0x4381a2
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x2a8]
movsd xmm0, qword [esi + 0x2a0]
mov dword [ecx], 0
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x14]
movsd qword [ecx + 4], xmm0
test eax, eax
je 0x438161
imul eax, eax, 0x130
push 8
push eax
push dword [esi + 0x18]
call fcn.0040b8d0
add esp, 0xc
cmp byte [esi + 0x2c], 0
jne 0x438177
mov eax, dword [0x4721f4]
test eax, 0x7fffffff
jne 0x438691
xor eax, eax
xchg byte [0x4721d9], al
cmp al, 2
jne 0x43818e
push 0x4721d9
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 eax, dword [0x472234]
mov dword [esi + 0x38], edx
test eax, eax
je 0x4381bd
mov ebx, dword [0x472238]
mov dword [esi + 0xc], eax
test ebx, ebx
jne 0x438208
jmp 0x4381e8
push str.SymFunctionTableAccess64
push dword [0x472214]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4386c3
mov dword [0x472234], eax
mov ebx, dword [0x472238]
mov dword [esi + 0xc], eax
test ebx, ebx
jne 0x438208
push str.SymGetModuleBase64
push dword [0x472214]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4386dc
mov ebx, eax
mov dword [0x472238], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x44], eax
mov eax, dword [0x47223c]
mov edi, dword [esi + 0xc]
mov dword [esi + 0x24], ebx
test eax, eax
jne 0x438241
push str.StackWalkEx
push dword [0x472214]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4384ab
mov edi, dword [esi + 0xc]
mov dword [0x47223c], eax
mov dword [esi + 0x40], eax
lea eax, [esi + 0x60]
push 0x100
push 0
push eax
call fcn.004584a0
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 ebx
push edi
lea ebx, [esi + 0x58]
push 0
lea eax, [esi + 0x2a0]
push eax
push ebx
push dword [esi + 0x30]
push dword [esi + 0x34]
push 0x14c
call dword [esi + 0x40]
cmp eax, 1
jne 0x43842b
mov ecx, dword [esi + 0x24]
xor eax, eax
mov dword [esi + 0x4c], 8
mov dword [esi + 4], 0
mov dword [esi + 8], 0
jmp 0x43839c
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x10]
add eax, ecx
push 0x130
lea ecx, [esi + 0x170]
push ecx
push eax
call fcn.00457b70
add esp, 0xc
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 8]
mov edi, dword [esi + 0x28]
inc ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x1c], ebx
xor eax, dword [esi + 0x48]
or eax, ecx
mov eax, 1
cmove ecx, eax
cmove edi, ebx
mov dword [esi + 8], ecx
push 0
push 0
push dword [esi + 0x24]
push dword [esi + 0xc]
push 0
lea eax, [esi + 0x2a0]
push eax
lea ebx, [esi + 0x58]
push ebx
push dword [esi + 0x30]
push dword [esi + 0x34]
push 0x14c
call dword [esi + 0x40]
mov ecx, dword [esi + 0x10]
add ecx, 0x130
cmp eax, 1
mov eax, ecx
mov ecx, dword [esi + 0x24]
jne 0x438432
mov dword [esi + 0x10], eax
mov dword [esi + 0x28], edi
push 0
push dword [esi + 0x58]
push dword [esi + 0x44]
call ecx
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
mov dword [esi + 0x20], eax
push 0x118
push ebx
lea eax, [esi + 0x178]
push eax
call fcn.00457b70
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x20]
mov dword [esi + 0x174], edi
cmp ecx, dword [esi + 0x14]
mov ebx, ecx
mov dword [esi + 0x170], eax
mov dword [esi + 0x290], 0
mov dword [esi + 0x294], 4
mov dword [esi + 0x298], 0
jne 0x438320
lea ecx, [esi + 0x14]
mov dword [esi + 0x588], 2
call fcn.00436fa0
mov eax, dword [esi + 0x18]
mov ebx, dword [esi + 4]
mov dword [esi + 0x4c], eax
jmp 0x438320
mov dword [esi + 8], 0
push dword [esi + 0x38]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [esi + 0x1c], 0
je 0x438127
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x3c]
movsd xmm0, qword [esi + 0x14]
mov edx, dword [esi + 0x1c]
test eax, eax
mov dword [ecx], 2
movsd qword [ecx + 4], xmm0
mov dword [ecx + 0xc], edx
cmove edi, eax
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], 0
cmp byte [esi + 0x2c], 0
je 0x438167
jmp 0x438177
push 0x4721d9
call fcn.0045d1e0
add esp, 4
mov eax, dword [0x4721f4]
test eax, 0x7fffffff
je 0x4380c2
call fcn.0045d190
xor al, 1
mov dword [esi + 0x2c], eax
jmp 0x4380c9
lea eax, [esi + 0x60]
push 0x100
push 0
push eax
call fcn.004584a0
add esp, 0xc
mov ecx, dword [esi + 0x358]
mov dword [esi + 0x54], 0
mov dword [esi + 0x50], 1
mov dword [esi + 0x168], 0
mov eax, dword [esi + 0x354]
mov dword [esi + 0x5c], 0
xor edi, edi
mov dword [esi + 0x20], 8
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0x58], ecx
mov ecx, dword [esi + 0x364]
mov dword [esi + 0x64], 3
mov dword [esi + 0x8c], 0
mov dword [esi + 0x88], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x94], 3
mov dword [esi + 0x78], eax
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], 3
jmp 0x4385a8
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
add eax, edi
push 0x130
lea ecx, [esi + 0x170]
push ecx
push eax
call fcn.00457b70
add esp, 0xc
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 8]
inc ebx
mov edx, 1
mov dword [esi + 0x1c], ebx
mov dword [esi + 4], ebx
xor eax, dword [esi + 0x48]
or eax, ecx
mov eax, dword [esi + 0x28]
cmove ecx, edx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0xc]
cmove eax, ebx
mov ebx, dword [esi + 0x24]
add edi, 0x130
mov dword [esi + 0x28], eax
mov eax, dword [0x472230]
mov dword [esi + 0x10], edi
test eax, eax
jne 0x4385d6
mov edi, ecx
push str.StackWalk64
push dword [0x472214]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4386aa
mov ecx, edi
mov dword [0x472230], eax
push 0
push ebx
push ecx
push 0
lea ecx, [esi + 0x2a0]
push ecx
lea edi, [esi + 0x58]
push edi
push dword [esi + 0x30]
push dword [esi + 0x34]
push 0x14c
call eax
cmp eax, 1
jne 0x438676
push 0
push dword [esi + 0x58]
push dword [esi + 0x44]
call ebx
mov dword [esi + 0x168], eax
mov eax, edi
mov ebx, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
push 0x118
push eax
lea eax, [esi + 0x178]
push eax
call fcn.00457b70
add esp, 0xc
mov dword [esi + 0x170], ebx
mov ebx, dword [esi + 4]
mov dword [esi + 0x174], edi
mov edi, dword [esi + 0x10]
mov dword [esi + 0x290], 0
mov dword [esi + 0x294], 4
mov dword [esi + 0x298], 0
cmp ebx, dword [esi + 0x14]
jne 0x43855c
lea ecx, [esi + 0x14]
mov dword [esi + 0x588], 3
call fcn.00436fa0
jmp 0x438550
mov edi, dword [esi + 0x28]
push dword [esi + 0x38]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp dword [esi + 0x1c], 0
jne 0x438445
jmp 0x438127
call fcn.0045d190
test al, al
jne 0x438177
mov byte [0x4721da], 1
jmp 0x438177
mov dword [esi + 0x588], 1
push 0x465bf0
call fcn.0045da90
add esp, 4
jmp 0x4386f3
mov dword [esi + 0x588], 1
push 0x465bf0
call fcn.0045da90
add esp, 4
jmp 0x4386f3
mov dword [esi + 0x588], 1
push 0x465bf0
call fcn.0045da90
add esp, 4
ud2