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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 4], 0
push esi
push edi
jle 0x56e974
cmp dword [ebx + 8], 0
jle 0x56e974
mov eax, ebx
call fcn.00530971
fld1
mov dword [esp + 0x44], eax
push ecx
mov eax, ebx
fstp dword [esp]
call fcn.004993ab
mov dword [esp + 0x10], eax
mov eax, ebx
call fcn.00530a02
fld1
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 8]
sub esp, 0x10
fstp qword [esp + 8]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul qword [0x694378]
fstp qword [esp]
call fcn.004a3c5a
push ecx
push ecx
fstp qword [esp]
call fcn.004014e7
call fcn.00613f70
mov ecx, dword [ebx + 0x25b]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 8]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x56e6f2
mov dword [esp + 0x18], eax
mov edi, dword [ebx + 0x2a]
test edi, edi
mov dword [esp + 0x1c], edi
je 0x56e93c
mov eax, dword [esp + 0x10]
cdq
sub eax, edx
mov dword [esp + 0x20], eax
sar dword [esp + 0x20], 1
jmp 0x56e716
mov edi, dword [esp + 0x1c]
cmp edi, dword [ebx + 0x2e]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], eax
jne 0x56e72e
mov eax, ebx
call fcn.005309a7
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
add eax, esi
cmp edi, dword [ebx + 0x2e]
mov dword [esp + 0x14], eax
jne 0x56e759
mov eax, ebx
call fcn.005309a7
mov ecx, dword [esp + 0x38]
sub ecx, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add dword [esp + 0x14], eax
mov eax, esi
sub eax, dword [esp + 0x3c]
add eax, dword [esp + 0x44]
cmp byte [ebx + 0x43], 0
mov dword [esp + 0x40], eax
je 0x56e783
push ebx
call fcn.00530a38
push ebx
mov esi, eax
call fcn.00530a83
add esi, eax
mov dword [esp + 0x2c], esi
jmp 0x56e788
and dword [esp + 0x2c], 0
lea eax, [edi + 0x414]
cmp word [eax], 0
je 0x56e7ac
push eax
push ebx
call fcn.0056fbfb
mov esi, eax
mov eax, ebx
call fcn.00530a02
add esi, eax
mov dword [esp + 0x28], esi
jmp 0x56e7b1
and dword [esp + 0x28], 0
lea eax, [edi + 4]
push eax
mov esi, ebx
call fcn.0056fbc4
add eax, dword [esp + 0x20]
cmp byte [ebx + 0x293], 0
je 0x56e7e5
mov eax, dword [esp + 0x10]
mov esi, dword [ebx + 0x294]
add eax, eax
sub esi, eax
sub esi, dword [esp + 0x28]
sub esi, dword [esp + 0x2c]
mov dword [esp + 0x24], esi
jmp 0x56e7eb
mov dword [esp + 0x24], eax
mov esi, eax
push edi
mov eax, ebx
call fcn.0056ef88
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
add esi, eax
add esi, ecx
lea edx, [eax + ecx]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x1c]
add edi, 0x631
mov dword [esp + 0x4c], edx
lea esi, [esp + 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x414
cmp word [eax], 0
movsd dword es:[edi], dword [esi]
je 0x56e89b
fld dword [0x6944cc]
push ecx
mov eax, ebx
fstp dword [esp]
call fcn.0059091b
mov esi, eax
mov eax, ebx
call fcn.00530a02
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
add eax, ecx
add ecx, edi
add eax, edx
add eax, dword [esp + 0x10]
add ecx, edx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
add esi, eax
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], eax
lea edi, [ecx + 0x641]
lea esi, [esp + 0x58]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x56e8a7
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
cmp byte [ebx + 0x43], 0
je 0x56e8f0
cmp byte [ecx + 0x620], 0
je 0x56e8f0
mov esi, dword [esp + 0x34]
sub esi, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
sub esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x10]
add esi, edx
mov dword [esp + 0x68], esi
add eax, edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x74], eax
lea edi, [ecx + 0x651]
lea esi, [esp + 0x68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x7c], esi
add esi, edi
mov dword [esp + 0x78], edx
mov dword [esp + 0x84], esi
add edx, eax
mov dword [esp + 0x80], edx
lea edi, [ecx + 0x621]
lea esi, [esp + 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ecx + 0x661], eax
mov ecx, dword [ecx]
test ecx, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jne 0x56e712
mov eax, ebx
call fcn.0049c0e1
mov edi, dword [ebx + 0x2e]
test edi, edi
je 0x56e970
push 0
mov ecx, edi
mov esi, ebx
call fcn.0056ee4c
test al, al
je 0x56e968
mov eax, ebx
call fcn.0056ee14
test al, al
jne 0x56e968
xor eax, eax
jmp 0x56e96b
xor eax, eax
inc eax
mov byte [ebx + 0x42], al
jmp 0x56e974
mov byte [ebx + 0x42], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4