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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x66fa15
mov eax, dword fs:[0]
push eax
sub esp, 0x58
push ebx
push esi
push edi
mov eax, dword [0x6d35d0]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x20], ebx
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x11944]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
mov eax, dword [eax + 0x11948]
xor esi, esi
fdiv qword [0x6a1590]
push 0x68c5b8
lea ecx, [esp + 0x4c]
mov dword [esp + 0x2c], eax
mov dword [ebx + 0x818], esi
mov dword [ebx + 0x81c], esi
mov byte [ebx + 0x821], 0
mov dword [ebx + 0x314], esi
mov dword [ebx + 0x310], esi
mov dword [ebx + 0x708], 3
fstp dword [esp + 0x14]
call fcn.00404ce0
mov dword [esp + 0x70], esi
mov edi, dword [0xf62668]
lea eax, [esp + 0x48]
add edi, 0x14
push eax
call fcn.004acb4a
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0x10]
call fcn.00631650
or dword [esp + 0x70], 0xffffffff
lea ecx, [esp + 0x48]
mov edi, eax
call fcn.00404660
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xd4]
mov dword [esp + 0x18], esi
cmp eax, 1
jne 0x52352a
mov dword [esp + 0x18], edi
fld dword [esp + 0x10]
lea esi, [ebx + 0xe8]
fld qword [0x6a25c0]
xor edi, edi
fmul st(1)
mov byte [ebx + 0x328], 0
mov byte [ebx + 0x329], 0
fstp dword [ebx + 0x41c]
mov eax, dword [ebx + 0x41c]
fild dword [esp + 0x18]
mov dword [ebx + 0x434], eax
fstp dword [esp + 0x18]
fld qword [0x6a2190]
fmul st(1)
fadd dword [esp + 0x18]
fstp qword [esp + 0x34]
fld qword [esp + 0x34]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [ebx + 0x420]
mov eax, dword [ebx + 0x420]
fld qword [0x6a25b8]
mov dword [ebx + 0x438], eax
fmul st(1)
fstp dword [ebx + 0x424]
fmul qword [0x6a25b0]
fadd dword [esp + 0x18]
fstp dword [ebx + 0x428]
call fcn.005b9ff6
mov ecx, dword [eax]
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
push edx
call dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [ebx + 0x42c], eax
call fcn.005b9ff6
mov ecx, dword [eax]
mov eax, dword [ecx]
lea edx, [esp + 0x2c]
push edx
call dword [eax + 0x1c]
fild dword [eax + 4]
fmul dword [esp + 0x10]
call fcn.00631650
lea edi, [ebx + 0x62c]
mov dword [ebx + 0x430], eax
mov ebx, dword [edi + 0x10]
lea esi, [esp + 0x24]
call fcn.004ff37d
mov ebx, dword [edi + 0xc]
lea esi, [esp + 0x2c]
call fcn.004ff37d
mov ebx, dword [esp + 0x30]
lea esi, [esp + 0x2c]
call fcn.004ff37d
mov ebx, dword [esp + 0x28]
lea esi, [esp + 0x24]
call fcn.004ff37d
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x523634
cmp eax, dword [esp + 0x24]
je 0x523639
call fcn.0062cec3
mov edx, dword [esp + 0x30]
mov esi, edi
cmp edx, dword [esp + 0x28]
je 0x523655
push dword [esp + 0x28]
mov eax, dword [esi + 0x10]
call fcn.0052dd2f
pop ecx
mov dword [esi + 0x10], eax
push str.objh001_000.bmp
lea ecx, [esp + 0x4c]
call fcn.00404ce0
mov dword [esp + 0x70], 1
mov ebx, dword [esp + 0x20]
push 0
lea eax, [esp + 0x4c]
lea edi, [ebx + 0x14]
push eax
call fcn.004ce7c9
or dword [esp + 0x70], 0xffffffff
mov edi, eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], edi
call fcn.00404660
test edi, edi
je 0x5236cd
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax]
call fcn.00631650
lea ecx, [esp + 0x2c]
mov dword [ebx + 0x6ec], eax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax + 4]
fmul dword [esp + 0x10]
call fcn.00631650
mov dword [ebx + 0x6f0], eax
lea eax, [esp + 0x14]
push eax
mov eax, esi
call fcn.00525d08
push str.objh001_001.bmp
lea ecx, [esp + 0x4c]
call fcn.00404ce0
push 0
lea eax, [esp + 0x4c]
push eax
lea edi, [ebx + 0x14]
mov dword [esp + 0x78], 2
call fcn.004ce7c9
or dword [esp + 0x70], 0xffffffff
mov edi, eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], edi
call fcn.00404660
test edi, edi
je 0x52374d
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax]
call fcn.00631650
lea ecx, [esp + 0x2c]
mov dword [ebx + 0x6f4], eax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax + 4]
fmul dword [esp + 0x10]
call fcn.00631650
mov dword [ebx + 0x6f8], eax
lea eax, [esp + 0x14]
push eax
mov eax, esi
call fcn.00525d08
push str.objh001_002.bmp
lea ecx, [esp + 0x4c]
call fcn.00404ce0
push 0
lea eax, [esp + 0x4c]
push eax
lea edi, [ebx + 0x14]
mov dword [esp + 0x78], 3
call fcn.004ce7c9
or dword [esp + 0x70], 0xffffffff
mov edi, eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x14], edi
call fcn.00404660
test edi, edi
je 0x5237cd
mov eax, dword [edi]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax]
call fcn.00631650
lea ecx, [esp + 0x2c]
mov dword [ebx + 0x6fc], eax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x1c]
fild dword [eax + 4]
fmul dword [esp + 0x10]
call fcn.00631650
mov dword [ebx + 0x700], eax
lea eax, [esp + 0x14]
push eax
mov eax, esi
call fcn.00525d08
fld dword [esp + 0x10]
fmul qword [0x6a14f8]
xor edi, edi
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [ebx + 0x65c]
fld dword [esp + 0x10]
fmul qword [0x6a25a8]
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [ebx + 0x660]
fld dword [esp + 0x14]
fstp dword [ebx + 0x664]
fld dword [esp + 0x18]
fstp dword [ebx + 0x668]
fld dword [esp + 0x14]
fstp dword [ebx + 0x66c]
fld dword [esp + 0x1c]
fstp dword [ebx + 0x670]
call fcn.005b9ff6
mov ecx, dword [eax]
mov eax, dword [ecx]
lea edx, [esp + 0x40]
push edx
call dword [eax + 0x1c]
fld qword [esp + 0x34]
call fcn.00631650
mov edi, eax
mov dword [esp + 0x1c], edi
call fcn.004cee12
push eax
call fcn.004fcb30
fild dword [esp + 0x48]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x2c0]
fmul dword [esp + 0x14]
mov eax, dword [eax + 0x2c4]
mov dword [esp + 0x3c], eax
add eax, edi
fstp dword [esp + 0x24]
pop ecx
fld dword [esp + 0x20]
mov dword [ebx + 0x80c], eax
fiadd dword [esp + 0x1c]
fadd qword [0x6a1758]
fiadd dword [esp + 0x38]
call fcn.00631650
mov dword [ebx + 0x814], eax
mov eax, dword [ebx + 8]
mov dword [ebx + 0x808], esi
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + 0x11944]
mov eax, dword [eax + 0x11948]
add ecx, esi
push 3
pop edx
mov dword [esp + 0x38], eax
mov dword [ebx + 0x810], ecx
lea ecx, [ebx + 0x68c]
lea eax, [ebx + 0x644]
mov esi, edx
fild dword [eax + 0xa8]
fchs
fstp dword [eax]
add eax, 8
fldz
fstp dword [eax - 4]
and dword [ecx], 0
mov edi, dword [eax + 0x10]
mov dword [eax + 0x28], edi
mov edi, dword [eax + 0x14]
mov dword [eax + 0x2c], edi
add ecx, 4
dec esi
jne 0x5238dc
fld dword [0x6a1718]
lea eax, [ebx + 0x698]
fstp dword [ebx + 0x704]
mov dword [eax], 7
fld dword [0x6a25a0]
mov edi, eax
lea eax, [ebx + 0x6a4]
fstp dword [ebx + 0x70c]
mov dword [ebx + 0x69c], 5
mov dword [ebx + 0x6a0], 4
mov dword [esp + 0x10], eax
lea esi, [ebx + 0x6ec]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x10]
call fcn.0046d359
fld dword [esi - 0x78]
and dword [esp + 0x14], 0
fstp dword [esp + 0x18]
cmp dword [edi], 0
jle 0x52399c
mov eax, dword [esi]
imul eax, dword [esp + 0x14]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
fild dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x14]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x24]
call fcn.004b5363
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [edi]
jl 0x52396b
add dword [esp + 0x10], 0x18
add edi, 4
add esi, 8
dec dword [esp + 0x1c]
jne 0x523951
mov esi, ebx
call fcn.00524f54
push 2
pop eax
mov dword [ebx + 0x318], eax
mov dword [ebx + 0x31c], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x74]
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret