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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2b4
push ebx
mov ebx, dword [ebp + 8]
push esi
lea ecx, [ebx + 8]
push edi
mov eax, ecx
call fcn.00557434
xor edi, edi
cmp word [eax], di
mov dword [esp + 0x8c], eax
jne 0x56a6d2
fld dword [ebp + 0x10]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [ebp + 0xc]
fstp dword [esp]
push ebx
call fcn.0056a53b
jmp 0x56b1fa
cmp byte [ebx + 0x48], 0
jne 0x56a708
fld dword [ebp + 0xc]
fsub dword [ebx + 0x5d]
fabs
fld dword [ebx + 0x3c]
fmul dword [0x694924]
fcompp
fnstsw ax
test ah, 0x41
jne 0x56a708
fld dword [ebp + 0x10]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.0056b6ca
fstp dword [ebx + 0x61]
jmp 0x56b1fa
fld dword [ebp + 0xc]
or dword [esp + 0x3c], 0xffffffff
fstp dword [ebx + 0x5d]
mov eax, ecx
fldz
lea esi, [esp + 0x94]
fst dword [esp + 0xc]
mov dword [esp + 0x28], edi
fst dword [esp + 0x34]
mov dword [esp + 0x80], edi
fst dword [esp + 0x48]
mov dword [esp + 0x40], edi
fst dword [esp + 0x24]
mov dword [esp + 0x18], edi
fst dword [esp + 0x10]
mov dword [esp + 0x54], edi
fst dword [esp + 0x90]
mov dword [esp + 0x78], edi
fst dword [esp + 0x7c]
mov dword [esp + 0x60], edi
fst dword [esp + 0x30]
mov dword [esp + 0x44], edi
fst dword [esp + 0x74]
mov dword [esp + 0x70], edi
fst dword [esp + 0x1c]
fstp dword [esp + 0x2c]
call fcn.005697d0
cmp dword [esp + 0x9c], edi
je 0x56b036
lea eax, [esp + 0x94]
push eax
lea esi, [ebx + 0x65]
call fcn.00569edc
fild dword [ebx + 0x69]
mov eax, dword [esi]
and dword [esp + 0x70], 0
fmul dword [0x694258]
push 0
push ecx
lea ecx, [ebx + 8]
fmul dword [ebx + 0x3c]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fstp dword [esp]
call fcn.0055741b
mov edx, eax
lea eax, [esp + 0xb0]
push eax
push 4
pop eax
call fcn.00402329
xor esi, esi
inc esi
cmp dword [ebx + 0x6d], esi
sete al
push eax
lea eax, [esp + 0xac]
call fcn.00402446
cmp dword [ebx + 0x71], esi
sete al
push eax
lea eax, [esp + 0xac]
call fcn.00402460
cmp dword [ebx + 0x75], esi
sete al
push eax
lea eax, [esp + 0xac]
call fcn.0040247a
cmp dword [ebx + 0x85], esi
sete al
push eax
lea eax, [esp + 0xac]
call fcn.00402494
push dword [ebx + 0x40]
lea edi, [esp + 0xac]
call fcn.0056c7d7
mov eax, dword [ebx + 0x40]
add eax, 0x39
push eax
call fcn.00556c90
fstp dword [esp + 0x14]
fld dword [esp + 0x10]
push ecx
fstp dword [esp + 0x88]
push ecx
fld dword [esp + 0x24]
fstp dword [esp + 0x90]
fld dword [esp + 0x18]
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004977ba
fstp dword [esp + 0x10]
push ecx
fld dword [esp + 0x20]
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004977ba
mov eax, dword [esp + 0xa0]
fstp dword [esp + 0x1c]
cmp eax, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
jae 0x56af04
fldz
lea ecx, [eax + 1]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x8c]
lea eax, [ecx + eax*2]
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x5c]
fst dword [esp + 0x64]
push 1
fstp dword [esp + 0x5c]
push edi
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x70]
push eax
mov eax, dword [ebx + 0x40]
call fcn.0056c7f8
fld dword [esp + 0x24]
fstp dword [esp + 0x4c]
push ecx
fld dword [esp + 0x28]
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x60]
fstp dword [esp]
call fcn.004977ba
fstp dword [esp + 0x24]
push ecx
fld dword [esp + 0x78]
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x60]
fstp dword [esp]
call fcn.004977ba
fstp dword [esp + 0x74]
fldz
fcom dword [esp + 0xc]
fnstsw ax
test ah, 0x44
jp 0x56a929
fld st(0)
jmp 0x56a92d
fld dword [esp + 0x64]
fadd dword [esp + 0xc]
mov esi, dword [esp + 0x20]
fstp dword [esp + 0x68]
fld dword [ebp + 0xc]
fcomp dword [esp + 0x68]
fnstsw ax
test ah, 5
jp 0x56a950
cmp esi, dword [esp + 0x80]
ja 0x56a95a
cmp word [edi], 0xa
jne 0x56adba
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x18]
jne 0x56aa74
cmp dword [esp + 0x54], 0
je 0x56aa74
cmp dword [esp + 0x54], esi
je 0x56aa74
cmp word [edi], 0xa
je 0x56aa74
push 0x20
fstp st(0)
call fcn.00538281
test eax, eax
pop ecx
je 0x56a99a
and dword [eax], 0
jmp 0x56a99c
xor eax, eax
fld dword [esp + 0x7c]
fst dword [eax + 4]
fld dword [esp + 0x30]
fadd dword [esp + 0x48]
fst dword [eax + 8]
fld dword [esp + 0x90]
fstp dword [eax + 0xc]
mov ecx, dword [ebx]
cmp ecx, 1
fldz
fld st(0)
jne 0x56a9d2
fstp st(0)
fld dword [ebp + 0xc]
fsub st(3)
fmul dword [0x694258]
jmp 0x56a9de
cmp ecx, 2
jne 0x56a9de
fstp st(0)
fld dword [ebp + 0xc]
fsub st(3)
mov ecx, dword [esp + 0x3c]
fstp dword [eax + 0x10]
mov edx, dword [esp + 0x44]
fst dword [eax + 0x14]
mov dword [eax + 0x18], ecx
fld dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
fsub st(3)
mov dword [eax + 0x1c], ecx
fld dword [esp + 0x34]
mov dword [eax], edx
mov edx, dword [esp + 0x28]
fsub st(4)
inc ecx
cmp ecx, edx
fstp dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
jae 0x56aa4b
mov eax, ecx
shl eax, 6
sub edx, ecx
mov ecx, dword [ebx + 0x49]
lea ecx, [ecx + eax + 0x30]
fld dword [ecx]
fadd dword [esp + 0x30]
fstp dword [ecx]
mov ecx, dword [ebx + 0x49]
lea ecx, [ecx + eax + 0x3c]
inc dword [ecx]
mov ecx, dword [ebx + 0x49]
lea ecx, [ecx + eax + 0x2c]
fld dword [ecx]
add eax, 0x40
dec edx
fsub st(4)
fstp dword [ecx]
jne 0x56aa20
inc dword [esp + 0x18]
fstp st(3)
fld dword [esp + 0x74]
fstp dword [esp + 0x24]
fld dword [esp + 0x1c]
fstp dword [esp + 0x10]
fxch st(1)
fstp dword [esp + 0x48]
fld dword [esp + 0x64]
faddp st(2)
fxch st(1)
jmp 0x56ade4
cmp word [edi], 0xa
fst dword [esp + 0x58]
jne 0x56ab0f
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 5
jp 0x56ab11
fld dword [esp + 0x2c]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x74]
fstp dword [esp]
call fcn.00401481
test al, al
jne 0x56ab11
fld dword [esp + 0x2c]
push dword [ebx + 0x40]
lea edi, [esp + 0xac]
fstp dword [esp + 0x2b4]
mov byte [esp + 0x3f], 1
mov dword [esp + 0x2b8], 4
call fcn.0056c7d7
mov eax, dword [ebx + 0x40]
add eax, 0x39
push eax
call fcn.00556c90
fstp dword [esp + 0x14]
fld dword [esp + 0x84]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x56ab18
fld dword [esp + 0x14]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.004aae1e
jmp 0x56ab1f
fstp st(0)
mov byte [esp + 0x3b], 0
jmp 0x56ab7a
fld dword [esp + 0x84]
fstp dword [esp + 0x10]
fld dword [esp + 0x88]
fcomp dword [esp + 0x1c]
fnstsw ax
test ah, 5
jp 0x56ab4d
fld dword [esp + 0x14]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.004aae1e
jmp 0x56ab54
fld dword [esp + 0x88]
fstp dword [esp + 0x1c]
push ecx
fld dword [esp + 0x28]
push ecx
fstp dword [esp + 0x60]
fld dword [esp + 0x2c]
fstp dword [esp + 4]
fld dword [esp + 0x54]
fstp dword [esp]
call fcn.004aae1e
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x28]
push eax
lea eax, [ebx + 0x49]
call fcn.0059c3a4
fld dword [esp + 0x34]
cmp dword [esp + 0x3c], 0xffffffff
fstp dword [eax + 0x2c]
fld dword [esp + 0x48]
push 9
fstp dword [eax + 0x30]
pop ecx
fld dword [esp + 0x14]
lea esi, [ebx + 0x65]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
fstp dword [eax + 0x34]
fld dword [esp + 0xc]
fsub dword [esp + 0x34]
fstp dword [eax + 0x38]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x3c], ecx
je 0x56abdd
mov esi, dword [esp + 0x3c]
fld dword [esp + 0x24]
push 0x20
fadd dword [esp + 0x4c]
fstp dword [esp + 0x4c]
call fcn.00538281
test eax, eax
pop ecx
je 0x56abfa
and dword [eax], 0
jmp 0x56abfc
xor eax, eax
fld dword [esp + 0xc]
xor edx, edx
fstp dword [eax + 4]
inc edx
fld dword [esp + 0x48]
fstp dword [eax + 8]
fld dword [esp + 0x10]
fstp dword [eax + 0xc]
mov ecx, dword [ebx]
cmp ecx, edx
fldz
fld st(0)
jne 0x56ac2f
fstp st(0)
fld dword [ebp + 0xc]
fsub dword [esp + 0xc]
fmul dword [0x694258]
jmp 0x56ac3d
cmp ecx, 2
jne 0x56ac3d
fstp st(0)
fld dword [ebp + 0xc]
fsub dword [esp + 0xc]
mov ecx, dword [esp + 0x64]
fstp dword [eax + 0x10]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x44]
fst dword [eax + 0x14]
mov dword [eax + 0x18], esi
mov dword [eax], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
movzx ecx, word [eax]
cmp cx, 0xa
jne 0x56ac68
mov dword [esp + 0x70], edx
fld dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
fcomp dword [esp + 0x68]
mov dword [esp + 0x80], esi
mov dword [esp + 0x40], esi
lea edx, [esi + esi]
fnstsw ax
test ah, 5
jp 0x56ac9c
cmp cx, 0xa
je 0x56ac9c
sub dword [esp + 0x5c], 2
dec esi
dec dword [esp + 0x50]
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x50]
fst dword [esp + 0xc]
cmp eax, dword [esp + 0xa4]
fst dword [esp + 0x24]
fst dword [esp + 0x34]
jae 0x56acbf
fld dword [esp + 0x14]
fstp dword [esp + 0x10]
jmp 0x56acc3
fst dword [esp + 0x10]
mov eax, dword [esp + 0x8c]
inc dword [esp + 0x18]
or dword [esp + 0x3c], 0xffffffff
cmp word [edx + eax], 0xa
jne 0x56acde
inc dword [esp + 0x40]
cmp byte [esp + 0x3b], 0
je 0x56ade8
push dword [ebx + 0x40]
fstp st(0)
fld dword [esp + 0x70]
lea edi, [esp + 0xac]
fstp dword [esp + 0x2b4]
mov dword [esp + 0x2b8], 4
call fcn.0056c7d7
mov eax, dword [ebx + 0x40]
add eax, 0x39
push eax
call fcn.00556c90
fstp dword [esp + 0x14]
fld dword [esp + 0x2c]
push ecx
fcomp dword [esp + 0x70]
push ecx
fnstsw ax
fldz
test ah, 5
fstp dword [esp + 4]
fld dword [esp + 0x60]
fstp dword [esp]
jp 0x56ad79
call fcn.004977ba
fstp dword [esp + 0x24]
fld dword [esp + 0x10]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004977ba
fstp dword [esp + 0x10]
push ecx
fld dword [esp + 0x20]
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004977ba
jmp 0x56adb2
call fcn.004aae1e
fstp dword [esp + 0x24]
fld dword [esp + 0x10]
push ecx
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004aae1e
fstp dword [esp + 0x10]
push ecx
fld dword [esp + 0x20]
push ecx
fstp dword [esp + 4]
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.004aae1e
fstp dword [esp + 0x1c]
fldz
jmp 0x56ade8
push dword [esp + 0x50]
mov eax, esi
push ebx
call fcn.0056b881
mov edi, eax
push esi
invalid