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

Disassembly:
sub esp, 0x268
push ebx
push esi
mov esi, dword [0x607334]
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 0x511823
cmp edi, eax
je 0x511828
call fcn.0055cb74
cmp dword [esp + 0x14], ebp
je 0x511887
test edi, edi
jne 0x511883
call fcn.0055cb74
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0x18]
jne 0x511845
call fcn.0055cb74
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x18]
mov ecx, edi
call fcn.00514670
test eax, eax
je 0x511874
mov ecx, edi
call fcn.00514920
test eax, eax
je 0x511874
mov ecx, edi
call fcn.005148c0
test eax, eax
je 0x511874
mov ecx, edi
call fcn.00514b10
lea ecx, [esp + 0x10]
call fcn.0047df60
mov edi, dword [esp + 0x10]
jmp 0x511813
mov edi, dword [edi]
jmp 0x511837
lea edx, [esp + 0x90]
push edx
call esi
mov edi, dword [0x607448]
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x511915
mov edi, edi
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x24]
push eax
call fcn.005d5270
test eax, eax
je 0x51190f
mov eax, dword [esp + 0x284]
test eax, eax
je 0x5118d2
lea edx, [esp + 0x24]
push edx
push eax
mov eax, edx
push eax
call dword [0x607444]
test eax, eax
je 0x51190f
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.004ab9f0
mov ecx, eax
call fcn.00530af0
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 0x5118a0
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.004ffbf0
lea eax, [esp + 0x148]
push 0xc8
push eax
call fcn.004ffbf0
mov ecx, dword [ebx + 8]
add esp, 0x10
call fcn.0052e4a0
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [ebx + 8]
lea edx, [esp + 0xbc]
push edx
mov dword [esp + 0xbc], eax
call fcn.0052e490
mov ecx, dword [ebx + 8]
call fcn.0052e4c0
mov ecx, dword [ebx + 8]
mov dword [esp + 0xb0], eax
call fcn.0052e4b0
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 [0x60743c]
test eax, eax
jne 0x511f33
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 0x511a10
cmp esi, eax
je 0x511a15
call fcn.0055cb74
cmp ebp, edi
je 0x511f33
test esi, esi
jne 0x511d18
call fcn.0055cb74
cmp ebp, dword [esi + 0x18]
jne 0x511a34
call fcn.0055cb74
mov edi, dword [ebp + 0x18]
mov ecx, edi
call fcn.00514670
test eax, eax
je 0x511f1d
mov ecx, edi
call fcn.00514920
test eax, eax
je 0x511f1d
mov ecx, edi
call fcn.005148c0
test eax, eax
je 0x511f1d
mov ecx, edi
call fcn.00514670
mov esi, eax
lea edx, [esp + 0x258]
push edx
mov ecx, esi
call fcn.005319e0
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.00514b40
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.00514670
mov ecx, eax
call fcn.005307e0
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 0x511b1b
lea ecx, [esp + 0x74]
push ecx
push eax
mov edx, ecx
push edx
call dword [0x607444]
test eax, eax
je 0x511f1d
lea eax, [esp + 0x210]
push eax
mov ecx, edi
call fcn.00514890
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.00514ad0
test eax, eax
jne 0x511d8c
cmp dword [ebx + 0x1c], eax
mov dword [esp + 0x1c], eax
jle 0x511f1d
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
lea edx, [esp + 0x24]
push edx
call fcn.005d5270
test eax, eax
je 0x511d64
mov ebp, dword [0x607444]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x138]
push ecx
call ebp
test eax, eax
je 0x511d64
lea edx, [esp + 0x248]
push edx
mov ecx, edi
call fcn.005149c0
lea ecx, [esp + 0x130]
push ecx
push eax
lea edx, [esp + 0xa8]
push edx
call ebp
test eax, eax
je 0x511d64
mov ecx, esi
call fcn.00531080
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.004b4470
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.00530780
mov ecx, esi
mov dword [esp + 0xd8], eax
call fcn.005590d0
mov ecx, edi
mov dword [esp + 0xf8], eax
call fcn.005148c0
mov ecx, esi
mov dword [esp + 0xfc], eax
call fcn.00531c10
lea ecx, [esp + 0x238]
push ecx
mov ecx, edi
mov dword [esp + 0x110], eax
call fcn.005149c0
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.00531c20
mov dword [esp + 0x120], eax
xor eax, eax
cmp ebp, eax
je 0x511d1f
lea ecx, [esp + 0xb0]
mov dword [esp + 0x108], 1
mov dword [esp + 0xd4], eax
push ecx
jmp 0x511d5c
mov esi, dword [esi]
jmp 0x511a2a
cmp dword [esp + 0xfc], 0xff
mov dword [esp + 0x108], eax
jne 0x511d4d
lea edx, [esp + 0xb0]
push edx
mov dword [esp + 0xd8], 1
call fcn.00547200
jmp 0x511d61
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xb0]
push eax
call fcn.00546a30
add esp, 4
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], eax
jl 0x511b65
lea ecx, [esp + 0x10]
call fcn.0047df60
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x511a00
lea ecx, [esp + 0x218]
push ecx
mov ecx, edi
call fcn.005149c0
lea edx, [esp + 0x90]
push edx
push eax
lea eax, [esp + 0x160]
push eax
call dword [0x607444]
test eax, eax
je 0x511f1d
mov ecx, dword [esp + 0x70]
fild dword [esp + 0x70]
test ecx, ecx
jge 0x511dcc
fadd dword [0x6077e8]
mov edx, dword [esp + 0x84]
fstp dword [esp + 0x1c]
fild dword [esp + 0x84]
test edx, edx
jge 0x511de8
fadd dword [0x6077e8]
lea eax, [esp + 0x88]
fstp dword [esp + 0x20]
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.00514830
fld dword [esp + 0x54]
fstp dword [esp + 0x150]
mov ecx, esi
fld dword [esp + 0x58]
fstp dword [esp + 0x154]
call fcn.004b4470
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.00530780
mov ecx, esi
mov dword [esp + 0x170], eax
call fcn.005590d0
mov ecx, edi
mov dword [esp + 0x180], eax
call fcn.005148c0
mov ecx, esi
mov dword [esp + 0x184], eax
call fcn.00531c10
mov dword [esp + 0x194], eax
lea eax, [esp + 0x228]
push eax
mov ecx, edi
call fcn.005149c0
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.00531c20
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x140]
push eax
call fcn.005434d0
add esp, 4
lea ecx, [esp + 0x10]
call fcn.0047df60
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x511a00
mov edi, dword [esp + 0x27c]
test edi, edi
je 0x511ff9
cmp dword [esp + 0x280], 0
jne 0x511fb8
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x511ff9
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.005d5270
test eax, eax
je 0x511fb0
mov ecx, dword [ebx + 8]
call fcn.004ab9f0
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.0051a6a0
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x511f60
jmp 0x511ff9
mov ecx, dword [ebx + 8]
call fcn.004ab9f0
mov esi, eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.00530760
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.0051a6a0
mov dword [esp + 0x18], 1
cmp dword [esp + 0x284], 0
pop ebp
jne 0x512021
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x512021
jmp 0x512010
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
call fcn.005d5260
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x512010
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
add esp, 0x268
ret 0xc