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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4b72c8
push eax
mov dword fs:[0], esp
sub esp, 0x74
push esi
mov esi, ecx
push edi
mov ecx, 0x5299ca
call fcn.00407e10
mov ecx, dword [0x5297b4]
xor edi, edi
push edi
call fcn.00455150
test eax, eax
jne 0x4383ae
mov ecx, 0x5299cb
call fcn.00408cf0
mov eax, dword [0x5297b8]
cmp dword [eax + 0x38], edi
jne 0x437e8e
cmp dword [eax + 0x1c], edi
je 0x437e8e
cmp dword [eax + 0x34], edi
je 0x4383ae
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x5c]
push ebx
mov ebx, dword [esi + 0x54]
push ebp
sub eax, dword [esi + 0x58]
mov ebp, dword [0x4bb2a8]
imul eax, eax, 0x16
sub ecx, ebx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x521128]
mov dword [esp + 0x50], eax
mov eax, dword [0x521124]
push ecx
push eax
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
call ebp
lea ebx, [esi + 0x34]
push edi
mov ecx, ebx
call fcn.00410900
mov ecx, eax
call fcn.004384a0
test eax, eax
jne 0x437f18
push edi
mov ecx, ebx
call fcn.00410900
mov ecx, eax
call fcn.00438620
test eax, eax
jne 0x437f18
lea ecx, [esp + 0x34]
push ecx
push edi
mov ecx, ebx
call fcn.00410900
mov ecx, eax
call fcn.004387c0
push edi
mov ecx, ebx
call fcn.00410900
mov eax, dword [eax + 0x54]
cmp dword [esi + 0x40], eax
je 0x437f81
mov ecx, esi
mov dword [esi + 0x40], eax
call fcn.00436a10
mov ebp, dword [0x4bb2c4]
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call ebp
lea edx, [esp + 0x74]
push edx
push edi
mov ecx, ebx
call fcn.00410900
mov ecx, eax
call fcn.004383d0
push eax
lea eax, [esp + 0x48]
push eax
mov ecx, eax
push ecx
call ebp
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call ebp
mov ecx, esi
call fcn.00437820
jmp 0x438344
mov edx, dword [esi + 0x68]
mov ecx, 0x5299cb
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], 0xffffffff
call fcn.00408cf0
mov eax, dword [0x5297b8]
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x30]
mov eax, dword [0x521124]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x521128]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], edi
lea ebx, [esi + 0x44]
mov eax, dword [ebx + 8]
cmp eax, edi
mov dword [esp + 0x30], ecx
jne 0x437fd2
xor eax, eax
jmp 0x437fd5
mov eax, dword [eax + 0x10]
cmp dword [esp + 0x14], eax
jge 0x43808f
mov eax, dword [esi + 0x40]
cdq
mov ecx, 0x16
idiv ecx
mov ecx, dword [esp + 0x14]
mov eax, edx
add eax, ecx
cdq
mov ecx, 0x16
idiv ecx
mov ecx, ebx
push edx
mov dword [esp + 0x24], edx
call fcn.00410900
cmp word [eax + 8], 0xffff
je 0x43806e
push edi
lea ecx, [esi + 0x28]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
call fcn.00410900
mov edx, dword [eax]
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, eax
call dword [edx + 0x38]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
push eax
lea edx, [esp + 0x7c]
push edx
call ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x7c]
push edx
call dword [0x4bb360]
test eax, eax
jne 0x438085
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x58]
mov ecx, dword [esp + 0x30]
sub eax, edx
add ecx, eax
inc dword [esp + 0x14]
jmp 0x437fc3
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
jmp 0x438093
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
mov dword [esp + 0x20], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
je 0x438124
cmp eax, ecx
je 0x438124
push eax
mov ecx, ebx
call fcn.00410900
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
push edi
lea ecx, [esi + 0x28]
call fcn.00410900
mov edx, dword [eax]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
call dword [edx + 0x38]
mov edx, dword [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.00410900
mov eax, dword [eax]
sub eax, dword [esi + 0x40]
cdq
mov ecx, 0x16
idiv ecx
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x60]
sub eax, ecx
mov ecx, edi
imul eax, edx
push eax
push ecx
lea edx, [esp + 0x5c]
push edx
call ebp
mov ecx, dword [0x521128]
mov eax, dword [0x521124]
push ecx
push eax
lea eax, [esp + 0x5c]
push eax
call ebp
mov ecx, dword [esp + 0x10]
cmp ecx, 0xffffffff
mov dword [esp + 0x14], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
je 0x4382ee
push ecx
mov ecx, ebx
mov dword [esp + 0x18], 1
call fcn.00410900
mov ecx, eax
mov edx, dword [ecx + 4]
mov eax, 2
cmp edx, eax
jne 0x438163
mov dword [esp + 0x14], eax
mov ecx, 0x5299cb
call fcn.00408cf0
mov eax, dword [0x5297b8]
cmp dword [eax + 0x3c], edi
jne 0x43818e
cmp dword [eax + 0x20], edi
je 0x43818e
cmp dword [eax + 0x34], edi
jne 0x43818e
mov dword [esp + 0x14], 2
jmp 0x438293
mov ecx, 0x5299cb
call fcn.00408cf0
mov eax, dword [0x5297b8]
cmp dword [eax + 0x3c], edi
je 0x438293
cmp dword [eax + 0x20], edi
jne 0x438293
cmp dword [eax + 0x34], edi
jne 0x438293
mov ecx, 0x5299ce
call fcn.004092f0
mov ecx, dword [0x5297c8]
push edi
add ecx, 0x1c
call fcn.00410900
mov edx, dword [esp + 0x10]
push edx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00410900
movsx eax, word [eax + 8]
mov ecx, dword [esp + 0x14]
push eax
call fcn.0041dd00
push eax
lea ecx, [esp + 0x1c]
call fcn.004073c0
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 0xc], edi
mov dword [esp + 0x8c], edi
je 0x438262
mov ecx, 0x529984
call fcn.004024f0
mov ecx, dword [0x529784]
add ecx, 4
push edi
call fcn.00410900
mov edx, dword [esp + 0x18]
add eax, 8
mov ecx, 0x5299cc
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], edx
call fcn.004090c0
mov eax, dword [0x5297bc]
mov ecx, dword [esp + 0x14]
push 1
push edi
mov dword [esp + 0x34], eax
call fcn.00410900
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.0045b9b0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x14], 1
mov dword [esp + 0x8c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438293
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push edi
lea ecx, [esi + 0x28]
call fcn.00410900
mov edx, dword [eax]
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x70]
push ecx
mov ecx, eax
call dword [edx + 0x38]
mov edx, dword [esp + 0x10]
push edx
mov ecx, ebx
call fcn.00410900
mov eax, dword [eax]
sub eax, dword [esi + 0x40]
cdq
mov ecx, 0x16
idiv ecx
mov eax, dword [esi + 0x60]
sub eax, dword [esi + 0x58]
xor ecx, ecx
imul eax, edx
push eax
push ecx
lea edx, [esp + 0x6c]
push edx
call ebp
mov ecx, dword [0x521128]
mov eax, dword [0x521124]
push ecx
push eax
lea eax, [esp + 0x6c]
push eax
call ebp
mov ecx, esi
call fcn.00436a10
mov ebp, dword [esp + 0x10]
cmp ebp, 0xffffffff
je 0x43830d
push ebp
mov ecx, ebx
call fcn.00410900
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
cmp dword [esp + 0x1c], ebp
jne 0x43831d
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x20], edx
je 0x438341
mov ebx, dword [0x4bb2c4]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call ebx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call ebx
mov dword [esi + 0x68], ebp
lea eax, [esp + 0x34]
push eax
call dword [0x4bb2d0]
test eax, eax
jne 0x438396
lea ecx, [esp + 0x34]
push ecx
mov ecx, esi
call fcn.004365d0
lea ecx, [esi + 4]
call fcn.00403010
mov ecx, 0x529985
mov esi, eax
call fcn.00409200
mov edx, dword [esi]
mov ebx, dword [0x5297c4]
mov ecx, esi
call dword [edx + 0x68]
lea ecx, [esp + 0x34]
push ecx
push eax
push edi
lea ecx, [ebx + 4]
call fcn.00410900
mov ecx, eax
call fcn.004541a0
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
add esp, 0x80
ret
mov ecx, dword [esp + 0x7c]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x80
ret