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

Disassembly:
sub esp, 0x268
push ebx
push esi
mov esi, dword [0x65b33c]
push edi
lea eax, [esp + 0x20]
push eax
mov ebx, ecx
call esi
lea ecx, [esp + 0x70]
push ecx
call esi
lea edx, [esp + 0x12c]
push edx
call esi
lea eax, [esp + 0x9c]
push eax
call esi
lea ecx, [esp + 0x264]
push ecx
call esi
lea edx, [esp + 0x8c]
push edx
call esi
lea eax, [esp + 0x10c]
push eax
call esi
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x18], 0
call esi
lea edx, [esp + 0x154]
push edx
call esi
lea eax, [esp + 0x194]
push eax
call esi
lea ecx, [esp + 0x1bc]
push ecx
call esi
fldz
mov eax, dword [ebx + 4]
fst dword [esp + 0x54]
fst dword [esp + 0x50]
push ebp
fst dword [esp + 0x60]
fstp dword [esp + 0x5c]
mov edx, dword [eax + 0x18]
mov ecx, dword [edx]
mov edi, dword [eax]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 4]
mov ebp, dword [eax + 0x18]
mov eax, dword [eax]
test edi, edi
je 0x51fff3
cmp edi, eax
je 0x51fff8
call fcn.005aec38
cmp dword [esp + 0x14], ebp
je 0x520057
test edi, edi
jne 0x520053
call fcn.005aec38
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0x18]
jne 0x520015
call fcn.005aec38
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x18]
mov ecx, edi
call fcn.005235f0
test eax, eax
je 0x520044
mov ecx, edi
call fcn.00523890
test eax, eax
je 0x520044
mov ecx, edi
call fcn.00523840
test eax, eax
je 0x520044
mov ecx, edi
call fcn.00523a80
lea ecx, [esp + 0x10]
call fcn.00488440
mov edi, dword [esp + 0x10]
jmp 0x51ffe3
mov edi, dword [edi]
jmp 0x520007
lea edx, [esp + 0x90]
push edx
call esi
mov edi, dword [0x65b42c]
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x5200e5
mov edi, edi
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x24]
push eax
call fcn.0062a270
test eax, eax
je 0x5200df
mov eax, dword [esp + 0x284]
test eax, eax
je 0x5200a2
lea edx, [esp + 0x24]
push edx
push eax
mov eax, edx
push eax
call dword [0x65b460]
test eax, eax
je 0x5200df
mov ecx, dword [ebx + 0x28]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x28]
sub edx, eax
push edx
mov edx, dword [esp + 0x34]
sub edx, ecx
push edx
push eax
push ecx
mov ecx, dword [ebx + 8]
call fcn.005e2040
mov ecx, eax
call fcn.005414c0
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x28]
push ecx
mov edx, eax
push edx
call edi
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x520070
lea eax, [ebx + 0x2c]
push eax
lea ecx, [esp + 0x94]
push ecx
push eax
call edi
lea edx, [esp + 0xb0]
push 0x80
push edx
call fcn.0050cd20
lea eax, [esp + 0x148]
push 0xc8
push eax
call fcn.0050cd20
mov ecx, dword [ebx + 8]
add esp, 0x10
call fcn.0053e670
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [ebx + 8]
lea edx, [esp + 0xbc]
push edx
mov dword [esp + 0xbc], eax
call fcn.0053e660
mov ecx, dword [ebx + 8]
call fcn.0053e690
mov ecx, dword [ebx + 8]
mov dword [esp + 0xb0], eax
call fcn.0053e680
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0xd0], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x144], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x148], edx
mov edx, dword [esp + 0xb0]
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x144], edx
call dword [0x65b3c8]
test eax, eax
jne 0x520703
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx]
mov esi, dword [eax]
mov ebp, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
lea esp, [esp]
mov eax, dword [ebx + 4]
mov edi, dword [eax + 0x18]
mov eax, dword [eax]
test esi, esi
je 0x5201e0
cmp esi, eax
je 0x5201e5
call fcn.005aec38
cmp ebp, edi
je 0x520703
test esi, esi
jne 0x5204e8
call fcn.005aec38
cmp ebp, dword [esi + 0x18]
jne 0x520204
call fcn.005aec38
mov edi, dword [ebp + 0x18]
mov ecx, edi
call fcn.005235f0
test eax, eax
je 0x5206ed
mov ecx, edi
call fcn.00523890
test eax, eax
je 0x5206ed
mov ecx, edi
call fcn.00523840
test eax, eax
je 0x5206ed
mov ecx, edi
call fcn.005235f0
mov esi, eax
lea edx, [esp + 0x258]
push edx
mov ecx, esi
call fcn.005423b0
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0x208]
push eax
mov ecx, edi
mov dword [esp + 0x4c], edx
call fcn.00523ab0
mov ecx, dword [eax + 4]
mov ebp, dword [eax]
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x74]
mov dword [esp + 0x54], ecx
push eax
mov ecx, edi
mov dword [esp + 0x54], ebp
call fcn.005235f0
mov ecx, eax
call fcn.005411b0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
sub ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
add eax, ebp
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x284]
add ecx, edx
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0x80], ecx
test eax, eax
je 0x5202eb
lea ecx, [esp + 0x74]
push ecx
push eax
mov edx, ecx
push edx
call dword [0x65b460]
test eax, eax
je 0x5206ed
lea eax, [esp + 0x210]
push eax
mov ecx, edi
call fcn.00523810
mov ecx, dword [eax + 4]
mov ebp, dword [eax]
lea edx, [esp + 0x5c]
push edx
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov ecx, edi
mov dword [esp + 0x70], ebp
call fcn.00523a40
test eax, eax
jne 0x52055c
cmp dword [ebx + 0x1c], eax
mov dword [esp + 0x1c], eax
jle 0x5206ed
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
lea edx, [esp + 0x24]
push edx
call fcn.0062a270
test eax, eax
je 0x520534
mov ebp, dword [0x65b460]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x138]
push ecx
call ebp
test eax, eax
je 0x520534
lea edx, [esp + 0x248]
push edx
mov ecx, edi
call fcn.00523930
lea ecx, [esp + 0x130]
push ecx
push eax
lea edx, [esp + 0xa8]
push edx
call ebp
test eax, eax
je 0x520534
mov ecx, esi
call fcn.00541a50
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov ebp, eax
mov eax, dword [esp + 0xa0]
sub edx, eax
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xac]
sub eax, ecx
mov dword [esp + 0xc4], ecx
mov ecx, esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
call fcn.005673b0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xc0]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0xc4]
sub ecx, dword [esp + 0x50]
add eax, dword [esp + 0x3c]
add ecx, dword [esp + 0x40]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xec], ecx
mov ecx, esi
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], eax
call fcn.00541150
mov ecx, esi
mov dword [esp + 0xd8], eax
call fcn.0052a210
mov ecx, edi
mov dword [esp + 0xf8], eax
call fcn.00523840
mov ecx, esi
mov dword [esp + 0xfc], eax
call fcn.005425e0
lea ecx, [esp + 0x238]
push ecx
mov ecx, edi
mov dword [esp + 0x110], eax
call fcn.00523930
mov edx, dword [eax]
mov dword [esp + 0x110], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x114], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x118], edx
mov eax, dword [eax + 0xc]
mov ecx, esi
mov dword [esp + 0x11c], eax
call fcn.005425f0
mov dword [esp + 0x120], eax
xor eax, eax
cmp ebp, eax
je 0x5204ef
lea ecx, [esp + 0xb0]
mov dword [esp + 0x108], 1
mov dword [esp + 0xd4], eax
push ecx
jmp 0x52052c
mov esi, dword [esi]
jmp 0x5201fa
cmp dword [esp + 0xfc], 0xff
mov dword [esp + 0x108], eax
jne 0x52051d
lea edx, [esp + 0xb0]
push edx
mov dword [esp + 0xd8], 1
call fcn.00558940
jmp 0x520531
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xb0]
push eax
call fcn.00558170
add esp, 4
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], eax
jl 0x520335
lea ecx, [esp + 0x10]
call fcn.00488440
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x5201d0
lea ecx, [esp + 0x218]
push ecx
mov ecx, edi
call fcn.00523930
lea edx, [esp + 0x90]
push edx
push eax
lea eax, [esp + 0x160]
push eax
call dword [0x65b460]
test eax, eax
je 0x5206ed
mov ecx, dword [esp + 0x70]
fild dword [esp + 0x70]
test ecx, ecx
jge 0x52059c
fadd dword [0x65b838]
mov edx, dword [esp + 0x84]
fstp dword [esp + 0x1c]
fild dword [esp + 0x84]
test edx, edx
jge 0x5205b8
fadd dword [0x65b838]
lea eax, [esp + 0x88]
fstp dword [esp + 0x20]
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.005237b0
fld dword [esp + 0x54]
fstp dword [esp + 0x150]
mov ecx, esi
fld dword [esp + 0x58]
fstp dword [esp + 0x154]
call fcn.005673b0
mov edx, dword [esp + 0x68]
mov ecx, esi
mov dword [esp + 0x174], eax
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], edx
call fcn.00541150
mov ecx, esi
mov dword [esp + 0x170], eax
call fcn.0052a210
mov ecx, edi
mov dword [esp + 0x180], eax
call fcn.00523840
mov ecx, esi
mov dword [esp + 0x184], eax
call fcn.005425e0
mov dword [esp + 0x194], eax
lea eax, [esp + 0x228]
push eax
mov ecx, edi
call fcn.00523930
fld dword [esp + 0x6c]
mov ecx, dword [eax]
fsub dword [esp + 0x1c]
mov dword [esp + 0x198], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x19c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x1a0], ecx
mov edx, dword [eax + 0xc]
fstp dword [esp + 0x1a8]
fld dword [esp + 0x88]
mov ecx, esi
fsub dword [esp + 0x20]
mov dword [esp + 0x1a4], edx
mov dword [esp + 0x190], 1
mov dword [esp + 0x16c], 0
fstp dword [esp + 0x1ac]
fld dword [esp + 0x8c]
fstp dword [esp + 0x1b0]
fld dword [esp + 0x5c]
fstp dword [esp + 0x1b4]
fld dword [esp + 0x60]
fstp dword [esp + 0x1b8]
call fcn.005425f0
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x140]
push eax
call fcn.00554660
add esp, 4
lea ecx, [esp + 0x10]
call fcn.00488440
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x5201d0
mov edi, dword [esp + 0x27c]
test edi, edi
je 0x5207c9
cmp dword [esp + 0x280], 0
jne 0x520788
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x5207c9
mov dword [esp + 0x18], 1
nop
mov edx, dword [ebx + 0xc]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [edx + esi*4]
call fcn.0062a270
test eax, eax
je 0x520780
mov ecx, dword [ebx + 8]
call fcn.005e2040
mov edx, dword [esp + 0x28]
mov ebp, dword [ebx + 0x14]
mov ecx, dword [esp + 0x24]
add ebp, edx
push ebp
mov ebp, dword [ebx + 0x10]
add ebp, ecx
push ebp
mov ebp, dword [esp + 0x38]
sub ebp, edx
push ebp
mov ebp, dword [esp + 0x38]
sub ebp, ecx
push ebp
push edx
push ecx
mov dword [esp + 0x4c], ecx
push eax
mov ecx, edi
mov dword [esp + 0x54], edx
call fcn.0052a7c0
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x520730
jmp 0x5207c9
mov ecx, dword [ebx + 8]
call fcn.005e2040
mov esi, eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.00541130
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
push 0
push 0
push esi
mov ecx, edi
call fcn.0052a7c0
mov dword [esp + 0x18], 1
cmp dword [esp + 0x284], 0
pop ebp
jne 0x5207f1
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x5207f1
jmp 0x5207e0
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
call fcn.0062a260
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x5207e0
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
add esp, 0x268
ret 0xc