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

Disassembly:
sub esp, 0x268
push ebx
push esi
mov esi, dword [0x608334]
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 0x5124a3
cmp edi, eax
je 0x5124a8
call fcn.0055d9b4
cmp dword [esp + 0x14], ebp
je 0x512507
test edi, edi
jne 0x512503
call fcn.0055d9b4
mov eax, dword [esp + 0x14]
cmp eax, dword [edi + 0x18]
jne 0x5124c5
call fcn.0055d9b4
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x18]
mov ecx, edi
call fcn.00515300
test eax, eax
je 0x5124f4
mov ecx, edi
call fcn.005155b0
test eax, eax
je 0x5124f4
mov ecx, edi
call fcn.00515550
test eax, eax
je 0x5124f4
mov ecx, edi
call fcn.005157a0
lea ecx, [esp + 0x10]
call fcn.00514590
mov edi, dword [esp + 0x10]
jmp 0x512493
mov edi, dword [edi]
jmp 0x5124b7
lea edx, [esp + 0x90]
push edx
call esi
mov edi, dword [0x60844c]
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x512595
mov edi, edi
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x24]
push eax
call fcn.005d6270
test eax, eax
je 0x51258f
mov eax, dword [esp + 0x284]
test eax, eax
je 0x512552
lea edx, [esp + 0x24]
push edx
push eax
mov eax, edx
push eax
call dword [0x608448]
test eax, eax
je 0x51258f
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.004aba20
mov ecx, eax
call fcn.00531560
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 0x512520
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.00500830
lea eax, [esp + 0x148]
push 0xc8
push eax
call fcn.00500830
mov ecx, dword [ebx + 8]
add esp, 0x10
call fcn.0052eee0
lea ecx, [esp + 0xbc]
push ecx
mov ecx, dword [ebx + 8]
lea edx, [esp + 0xbc]
push edx
mov dword [esp + 0xbc], eax
call fcn.0052eed0
mov ecx, dword [ebx + 8]
call fcn.0052ef00
mov ecx, dword [ebx + 8]
mov dword [esp + 0xb0], eax
call fcn.0052eef0
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 [0x6083ac]
test eax, eax
jne 0x512bb3
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 0x512690
cmp esi, eax
je 0x512695
call fcn.0055d9b4
cmp ebp, edi
je 0x512bb3
test esi, esi
jne 0x512998
call fcn.0055d9b4
cmp ebp, dword [esi + 0x18]
jne 0x5126b4
call fcn.0055d9b4
mov edi, dword [ebp + 0x18]
mov ecx, edi
call fcn.00515300
test eax, eax
je 0x512b9d
mov ecx, edi
call fcn.005155b0
test eax, eax
je 0x512b9d
mov ecx, edi
call fcn.00515550
test eax, eax
je 0x512b9d
mov ecx, edi
call fcn.00515300
mov esi, eax
lea edx, [esp + 0x258]
push edx
mov ecx, esi
call fcn.00532450
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.005157d0
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.00515300
mov ecx, eax
call fcn.00531250
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 0x51279b
lea ecx, [esp + 0x74]
push ecx
push eax
mov edx, ecx
push edx
call dword [0x608448]
test eax, eax
je 0x512b9d
lea eax, [esp + 0x210]
push eax
mov ecx, edi
call fcn.00515520
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.00515760
test eax, eax
jne 0x512a0c
cmp dword [ebx + 0x1c], eax
mov dword [esp + 0x1c], eax
jle 0x512b9d
mov ecx, dword [ebx + 0xc]
mov ecx, dword [ecx + eax*4]
lea edx, [esp + 0x24]
push edx
call fcn.005d6270
test eax, eax
je 0x5129e4
mov ebp, dword [0x608448]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x138]
push ecx
call ebp
test eax, eax
je 0x5129e4
lea edx, [esp + 0x248]
push edx
mov ecx, edi
call fcn.00515650
lea ecx, [esp + 0x130]
push ecx
push eax
lea edx, [esp + 0xa8]
push edx
call ebp
test eax, eax
je 0x5129e4
mov ecx, esi
call fcn.00531af0
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.004b45f0
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.005311f0
mov ecx, esi
mov dword [esp + 0xd8], eax
call fcn.0051a980
mov ecx, edi
mov dword [esp + 0xf8], eax
call fcn.00515550
mov ecx, esi
mov dword [esp + 0xfc], eax
call fcn.00532680
lea ecx, [esp + 0x238]
push ecx
mov ecx, edi
mov dword [esp + 0x110], eax
call fcn.00515650
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.00436a60
mov dword [esp + 0x120], eax
xor eax, eax
cmp ebp, eax
je 0x51299f
lea ecx, [esp + 0xb0]
mov dword [esp + 0x108], 1
mov dword [esp + 0xd4], eax
push ecx
jmp 0x5129dc
mov esi, dword [esi]
jmp 0x5126aa
cmp dword [esp + 0xfc], 0xff
mov dword [esp + 0x108], eax
jne 0x5129cd
lea edx, [esp + 0xb0]
push edx
mov dword [esp + 0xd8], 1
call fcn.00547ce0
jmp 0x5129e1
mov dword [esp + 0xd4], eax
lea eax, [esp + 0xb0]
push eax
call fcn.00547510
add esp, 4
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], eax
jl 0x5127e5
lea ecx, [esp + 0x10]
call fcn.00514590
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x512680
lea ecx, [esp + 0x218]
push ecx
mov ecx, edi
call fcn.00515650
lea edx, [esp + 0x90]
push edx
push eax
lea eax, [esp + 0x160]
push eax
call dword [0x608448]
test eax, eax
je 0x512b9d
mov ecx, dword [esp + 0x70]
fild dword [esp + 0x70]
test ecx, ecx
jge 0x512a4c
fadd dword [0x6087e8]
mov edx, dword [esp + 0x84]
fstp dword [esp + 0x1c]
fild dword [esp + 0x84]
test edx, edx
jge 0x512a68
fadd dword [0x6087e8]
lea eax, [esp + 0x88]
fstp dword [esp + 0x20]
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, edi
call fcn.005154c0
fld dword [esp + 0x54]
fstp dword [esp + 0x150]
mov ecx, esi
fld dword [esp + 0x58]
fstp dword [esp + 0x154]
call fcn.004b45f0
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.005311f0
mov ecx, esi
mov dword [esp + 0x170], eax
call fcn.0051a980
mov ecx, edi
mov dword [esp + 0x180], eax
call fcn.00515550
mov ecx, esi
mov dword [esp + 0x184], eax
call fcn.00532680
mov dword [esp + 0x194], eax
lea eax, [esp + 0x228]
push eax
mov ecx, edi
call fcn.00515650
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.00436a60
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x140]
push eax
call fcn.00543ee0
add esp, 4
lea ecx, [esp + 0x10]
call fcn.00514590
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
jmp 0x512680
mov edi, dword [esp + 0x27c]
test edi, edi
je 0x512c79
cmp dword [esp + 0x280], 0
jne 0x512c38
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x512c79
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.005d6270
test eax, eax
je 0x512c30
mov ecx, dword [ebx + 8]
call fcn.004aba20
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.0051aea0
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x512be0
jmp 0x512c79
mov ecx, dword [ebx + 8]
call fcn.004aba20
mov esi, eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, esi
call fcn.005311d0
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.0051aea0
mov dword [esp + 0x18], 1
cmp dword [esp + 0x284], 0
pop ebp
jne 0x512ca1
xor esi, esi
cmp dword [ebx + 0x1c], esi
jle 0x512ca1
jmp 0x512c90
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + esi*4]
call fcn.005d6260
inc esi
cmp esi, dword [ebx + 0x1c]
jl 0x512c90
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
add esp, 0x268
ret 0xc