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

Disassembly:
test byte [esi + 0x327], 1
jmp 0x558cae
push 0xffffffffffffffff
push 0x83cc88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
fld qword [0x863e40]
push ebx
fld dword [0xb7cb5c]
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
call fcn.00822130
mov eax, dword [0xb6f03c]
test eax, eax
fstp dword [esp + 0x60]
je 0x557578
add eax, 0x30
jmp 0x55757d
mov eax, 0xb6f02c
fld dword [eax + 4]
fsub dword [esi + 4]
fld dword [eax]
fsub dword [esi]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fstp st(2)
fstp st(0)
fsqrt
fcomp dword [0x858a48]
fnstsw ax
test ah, 5
jp 0x558cce
mov al, byte [esi + 0x327]
test al, 1
jne 0x55760c
mov ecx, dword [0xb7cb84]
cmp ecx, dword [esi + 0x320]
jbe 0x55760c
fld dword [0xb7cb5c]
fmul dword [0x863e38]
fsubr dword [esi + 0x188]
fstp dword [esi + 0x188]
fld dword [0xb7cb5c]
fmul dword [esi + 0x188]
fld dword [0xb7cb5c]
fmul dword [esi + 0x184]
fld dword [0xb7cb5c]
fmul dword [esi + 0x180]
fadd dword [esi]
fstp dword [esi]
fadd dword [esi + 4]
fstp dword [esi + 4]
fadd dword [esi + 8]
fstp dword [esi + 8]
test al, 4
je 0x55763b
mov edx, dword [0xb7cb4c]
and dl, 7
cmp dl, 2
jne 0x55763b
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push 0
push 0
push eax
push ecx
push edx
call fcn.005696c0
fstp dword [esi + 0x304]
add esp, 0x14
test byte [esi + 0x327], 4
je 0x5576ad
mov eax, dword [esi + 0x318]
test eax, eax
je 0x5576ad
mov cl, byte [eax + 0x36]
and cl, 7
cmp cl, 2
je 0x557689
movsx eax, word [eax + 0x22]
movzx edx, word [0x8cd6c8]
cmp eax, edx
je 0x557689
movzx ecx, word [0x8cd6cc]
cmp eax, ecx
je 0x557689
movzx edx, word [0x8cd6d0]
cmp eax, edx
je 0x557689
movzx ecx, word [0x8cd6d8]
cmp eax, ecx
jne 0x5576ad
mov eax, dword [esi + 0x314]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x55769b
lea eax, [ecx + 0x30]
jmp 0x55769e
add eax, 4
fld dword [eax + 8]
fsub dword [0x858b8c]
fstp dword [esi + 0x304]
movzx eax, byte [esi + 0x324]
inc eax
cmp eax, 0x20
jge 0x55792d
fld dword [0x858624]
mov ecx, dword [esp + 0x20]
fsub dword [esp + 0x60]
lea edx, [eax + eax*2]
mov ebx, 0x20
lea esi, [ecx + edx*4 + 0x184]
fstp dword [esp + 0x50]
sub ebx, eax
lea ebp, [esi - 0x184]
mov edx, ebp
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
lea edi, [esi - 4]
call fcn.00821b1e
and eax, 0xf
sub eax, 8
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fmul dword [0x858cdc]
fadd dword [edi]
fstp dword [edi]
call fcn.00821b1e
and eax, 0xf
sub eax, 8
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov eax, edi
fmul dword [0x858cdc]
fadd dword [esi]
fstp dword [esi]
fld dword [esp + 0x60]
fmul dword [esi + 4]
fld dword [esp + 0x60]
fmul dword [esi]
fstp dword [esp + 0x10]
fld dword [esp + 0x60]
fmul dword [edi]
fstp dword [esp + 0x8c]
fld dword [esp + 0x50]
fmul dword [esi - 8]
fld dword [esp + 0x50]
fmul dword [esi - 0xc]
fstp dword [esp + 0x34]
fld dword [esp + 0x50]
fmul dword [esi - 0x10]
fstp dword [esp + 0x74]
faddp st(1)
fld dword [esp + 0x34]
fadd dword [esp + 0x10]
fld dword [esp + 0x74]
fadd dword [esp + 0x8c]
fstp dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
fstp dword [esp + 0x58]
mov edx, dword [esp + 0x58]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x20]
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 8], ecx
fld dword [0xb7cb5c]
fmul dword [0x858fcc]
fsubr dword [esi - 0x17c]
fst dword [esp + 0x10]
fstp dword [esi - 0x17c]
mov al, byte [edx + 0x327]
test al, 4
je 0x5577fd
mov eax, edx
fld dword [eax + 0x304]
fadd dword [0x858c24]
fld dword [esp + 0x10]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x5577f7
fstp st(0)
fld dword [esp + 0x10]
fstp dword [esi - 0x17c]
fld dword [esi - 0x17c]
mov ecx, dword [esp + 0x20]
fsub dword [esi - 0x188]
mov edx, ebp
fst dword [esp + 0x10]
fld dword [esi - 0x180]
fsub dword [esi - 0x18c]
fld st(0)
fld dword [ebp]
fsub dword [esi - 0x190]
fst dword [esp + 0x34]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
faddp st(1)
fstp dword [esp + 0x10]
fstp st(0)
fstp st(0)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fld dword [esp + 0x10]
fsqrt
fdivr dword [ecx + 0x30c]
fld dword [esp + 0x30]
fmul st(1)
fstp dword [esp + 0x30]
fxch st(2)
fmul st(2)
fstp dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x80]
fstp st(0)
fld dword [esp + 0x30]
fadd dword [esi - 0x188]
fld dword [esp + 0x34]
fadd dword [esi - 0x18c]
fld dword [esp + 0x80]
fadd dword [esi - 0x190]
fstp dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [edx], eax
fstp dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov dword [edx + 4], ecx
fstp dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov dword [edx + 8], eax
fld dword [esi - 0x17c]
fsub dword [esp + 0x2c]
fld dword [esi - 0x180]
fsub dword [esp + 0x28]
fstp dword [esp + 0x30]
fld dword [ebp]
fsub dword [esp + 0x24]
fstp dword [esp + 0x68]
fld dword [0x858624]
fdiv dword [0xb7cb5c]
fst dword [esp + 0x10]
fmulp st(1)
fld dword [esp + 0x10]
fmul dword [esp + 0x30]
fld dword [esp + 0x10]
fmul dword [esp + 0x68]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [edi], ecx
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov dword [edi + 4], edx
fstp dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
add esi, 0xc
dec ebx
jne 0x5576e1
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x325]
cmp al, 1
je 0x557957
cmp al, 2
je 0x557957
cmp al, 4
je 0x557959
cmp al, 5
je 0x557957
cmp al, 7
je 0x557957
cmp al, 6
je 0x557957
cmp al, 3
jne case.0x558324.5
cmp al, 4
mov ecx, dword [0xb76898]
jne 0x557966
cmp ecx, 1
je 0x557995
cmp al, 5
jne 0x55796f
cmp ecx, 2
je 0x557995
cmp al, 7
jne 0x557978
cmp ecx, 3
je 0x557995
cmp al, 6
jne 0x557981
cmp ecx, 4
je 0x557995
cmp al, 1
je 0x557b04
cmp al, 3
je 0x557995
cmp al, 2
jne 0x557b87
cmp al, 1
je 0x557b04
cmp al, 2
je 0x557b04
cmp al, 3
je 0x557b04
mov al, byte [0xa44496]
test al, al
je 0x557a58
mov ecx, dword [0xb7cb5c]
push 0
mov dword [esp + 0x38], ecx
call fcn.0053fb70
movsx edx, word [eax + 0x1c]
mov esi, dword [esp + 0x24]
mov al, byte [esi + 0x325]
mov dword [esp + 0x34], edx
add esp, 4
cmp al, 4
fild dword [esp + 0x30]
fmul dword [esp + 0x34]
fmul dword [0x858c14]
fstp dword [esp + 0x10]
je 0x557a02
cmp al, 5
je 0x557a02
cmp al, 7
je 0x557a02
cmp al, 6
jne 0x557a44
fld dword [esp + 0x10]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x557a44
fld dword [esp + 0x10]
fadd dword [esi + 0x31c]
fcomp dword [0x858c20]
fnstsw ax
test ah, 5
jp 0x557a44
mov eax, dword [esi + 0x310]
push 0x3f800000
push 0
push eax
push 0x68
mov ecx, 0xb6bc90
call fcn.005073b0
fld dword [esp + 0x10]
mov edx, dword [esp + 0x20]
fadd dword [esi + 0x31c]
fstp dword [esi + 0x31c]
mov al, byte [0xa44495]
test al, al
je 0x557b87
mov ecx, dword [0xb7cb5c]
push 0
mov dword [esp + 0x38], ecx
call fcn.0053fb70
movsx edx, word [eax + 0x20]
mov esi, dword [esp + 0x24]
mov al, byte [esi + 0x325]
mov dword [esp + 0x34], edx
add esp, 4
cmp al, 4
fild dword [esp + 0x30]
fmul dword [esp + 0x34]
fmul dword [0x858c14]
fstp dword [esp + 0x10]
je 0x557aad
cmp al, 5
je 0x557aad
cmp al, 7
je 0x557aad
cmp al, 6
jne 0x557aef
fld dword [esp + 0x10]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x557aef
fld dword [esi + 0x31c]
fsub dword [esp + 0x10]
fcomp dword [0x858c58]
fnstsw ax
test ah, 0x41
jne 0x557aef
mov eax, dword [esi + 0x310]
push 0x3f800000
push 0
push eax
push 0x68
mov ecx, 0xb6bc90
call fcn.005073b0
fld dword [esi + 0x31c]
fsub dword [esp + 0x10]
fstp dword [esi + 0x31c]
jmp 0x557b83
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053fc10
test ax, ax
jge 0x557b27
mov cl, byte [0xa44496]
test cl, cl
jne 0x557b33
test ax, ax
jle 0x557b5c
mov cl, byte [0xa44495]
test cl, cl
je 0x557b5c
movsx ecx, ax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
fild dword [esp + 0x30]
fmul dword [0xb7cb5c]
fmul dword [0x858c14]
fsubr dword [ecx + 0x31c]
fstp dword [ecx + 0x31c]
jmp 0x557b60
mov ecx, dword [esp + 0x20]
fld dword [ecx + 0x31c]
fld dword [0x863e34]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x557b7d
fstp st(0)
fld dword [0x863e34]
fstp dword [ecx + 0x31c]
mov edx, dword [esp + 0x20]
fld dword [edx + 0x31c]
fld dword [0x858c58]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x557ba4
fstp st(0)
fld dword [0x858c58]
fst dword [edx + 0x31c]
fld dword [0x858c20]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x557bc1
fstp st(0)
fld dword [0x858c20]
mov esi, dword [edx + 0x318]
fstp dword [edx + 0x31c]
test esi, esi
lea ebp, [edx + 0x318]
mov dword [esp + 0x60], ebp
je 0x557c34
cmp word [esi + 0x22], 0x1ac
fld dword [esi + 0x8c]
jne 0x557bf1
fstp st(0)
fld dword [0x859a98]
fld dword [0x8cd89c]
fmul dword [0x863e30]
fmulp st(1)
fadd dword [0x8cd898]
fld dword [0x858b8c]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x557c27
fstp st(0)
mov dword [esp + 0x10], 0x3f000000
mov byte [esi + 0xb8], 0
jmp 0x557c4d
fstp dword [esp + 0x10]
mov byte [esi + 0xb8], 0
jmp 0x557c4d
mov esi, dword [edx + 0x314]
mov eax, dword [esi + 0x1c]
mov edx, dword [0x8cd898]
or eax, 1
mov dword [esp + 0x10], edx
mov dword [esi + 0x1c], eax
test esi, esi
je 0x5581ca
mov eax, dword [esi + 0x14]
test eax, eax
je 0x557c61
add eax, 0x30
jmp 0x557c64
lea eax, [esi + 4]
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [eax]
push 0x3dcccccd
sub esp, 0xc
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edx + 4], ecx
mov ecx, ebx
mov dword [edx + 8], eax
call fcn.005561b0
test al, al
je 0x558121
mov eax, dword [esi + 0x14]
test eax, eax
je 0x557cba
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x30], ecx
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x28]
mov dword [edx + 0x34], eax
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [ecx + 0x38], edx
jmp 0x557ccf
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
lea edi, [esi + 0x44]
mov eax, edi
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x310]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x14]
test eax, eax
mov dword [esp + 0x28], edx
je 0x557cfa
add eax, 0x30
jmp 0x557cfd
lea eax, [ecx + 4]
fld dword [ebx + 8]
sub esp, 0xc
fsub dword [eax + 8]
mov edx, esp
fld dword [ebx + 4]
fsub dword [eax + 4]
fld dword [ebx]
fsub dword [eax]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [edx], eax
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [edx + 8], eax
lea edx, [esp + 0x60]
push edx
call fcn.00542ce0
mov al, byte [ebx + 0x325]
cmp al, 4
je 0x557d52
cmp al, 5
je 0x557d52
cmp al, 6
je 0x557d52
cmp al, 7
jne 0x557d82
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
fld dword [esp + 0x24]
mov eax, dword [esi + 0x14]
test eax, eax
fsub dword [esp + 0x54]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fsub dword [esp + 0x58]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
fsub dword [esp + 0x5c]
fstp dword [esp + 0x2c]
je 0x557db2
add eax, 0x30
jmp 0x557db5
lea eax, [esi + 4]
fld dword [eax + 8]
lea ecx, [esp + 0x40]
fsub dword [ebx + 8]
fld dword [eax + 4]
fsub dword [ebx + 4]
fld dword [eax]
fsub dword [ebx]
fstp dword [esp + 0x40]
fstp dword [esp + 0x44]
fstp dword [esp + 0x48]
call fcn.0059c910
fld dword [esp + 0x24]
fld dword [esp + 0x48]
fmul dword [esp + 0x2c]
fld dword [esp + 0x40]
fmul st(2)
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esp + 0x28]
faddp st(1)
fst dword [esp + 0x50]
fcomp dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x557e3b
fld dword [esp + 0x50]
fmul dword [esp + 0x48]
fld dword [esp + 0x50]
fmul dword [esp + 0x44]
fld dword [esp + 0x40]
fmul dword [esp + 0x50]
fsubp st(3)
fld dword [esp + 0x28]
fsub st(1)
fstp dword [esp + 0x28]
fstp st(0)
fld dword [esp + 0x2c]
fsub st(1)
fstp dword [esp + 0x2c]
fstp st(0)
fadd dword [esp + 0x54]
fld dword [esp + 0x58]
fadd dword [esp + 0x28]
fld dword [esp + 0x5c]
fadd dword [esp + 0x2c]
fsub dword [edi + 8]
fstp dword [esp + 0x50]
fsub dword [edi + 4]
fstp dword [esp + 0x34]
fsub dword [edi]
fld dword [0x858624]
fsub dword [esp + 0x10]
fld dword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x64]
fld st(1)
fmul st(1)
fstp dword [esp + 0x68]
fstp st(0)
fld dword [esp + 0x30]
fadd dword [edi + 8]
fld dword [esp + 0x64]
fadd dword [edi + 4]
fld dword [esp + 0x68]
fadd dword [edi]
fstp dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov dword [edi], eax
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [edi + 4], ecx
fstp dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
fld dword [esp + 0x50]
mov dword [edi + 8], edx
fmul dword [esp + 0x10]
mov eax, dword [ebx + 0x310]
add eax, 0x44
fstp dword [esp + 0x64]
fld dword [esp + 0x34]
fmul dword [esp + 0x10]
fstp dword [esp + 0x30]
fmul dword [esp + 0x10]
fstp dword [esp + 0x68]
fld dword [eax + 8]
fsub dword [esp + 0x64]
fld dword [eax + 4]
fsub dword [esp + 0x30]
fld dword [eax]
fsub dword [esp + 0x68]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
mov dword [eax + 4], edx
fstp dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
cmp dword [ebp], 0
je 0x5580e2
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esp + 0xf0]
call fcn.0059bcf0
fld dword [esp + 0x48]
mov ecx, dword [esi + 0x14]
fchs
fld dword [esp + 0x44]
sub esp, 0xc
fchs
mov edx, esp
fld dword [esp + 0x4c]
mov dword [esp + 0x154], 0
fchs
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [edx], eax
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
fstp dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [edx + 8], eax
call fcn.0059b7e0
mov eax, dword [esi + 0x14]
push eax
lea ecx, [esp + 0xa8]
call fcn.0059bcf0
fld dword [esp + 0xec]
fmul dword [0x858c20]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xa4]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xf0]
fmul dword [0x858c20]
fld dword [esp + 0xa8]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 4]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xf4]
fmul dword [0x858c20]
fld dword [esp + 0xac]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 8]
mov eax, dword [esi + 0x14]
fld dword [esp + 0xfc]
fmul dword [0x858c20]
fld dword [esp + 0xb4]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 0x10]
mov eax, dword [esi + 0x14]
fld dword [esp + 0x100]
fmul dword [0x858c20]
fld dword [esp + 0xb8]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 0x14]
mov eax, dword [esi + 0x14]
fld dword [esp + 0x104]
fmul dword [0x858c20]
fld dword [esp + 0xbc]
fmul dword [0x858b1c]
faddp st(1)
lea ecx, [esp + 0xa4]
fstp dword [eax + 0x18]
mov eax, dword [esi + 0x14]
fld dword [esp + 0x10c]
fmul dword [0x858c20]
fld dword [esp + 0xc4]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 0x20]
mov eax, dword [esi + 0x14]
fld dword [esp + 0x110]
fmul dword [0x858c20]
fld dword [esp + 0xc8]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [eax + 0x24]
mov esi, dword [esi + 0x14]
fld dword [esp + 0x114]
fmul dword [0x858c20]
fld dword [esp + 0xcc]
fmul dword [0x858b1c]
faddp st(1)
fstp dword [esi + 0x28]
call fcn.0059acd0
lea ecx, [esp + 0xec]
mov dword [esp + 0x148], 0xffffffff
call fcn.0059acd0
jmp 0x558121
fld dword [esp + 0x40]
sub esp, 0xc
fchs
mov ecx, esp
fstp dword [esp + 0x20]
mov edx, dword [esp + 0x20]
fld dword [esp + 0x50]
mov dword [ecx], edx
fchs
fstp dword [esp + 0x24]
fld dword [esp + 0x54]
mov eax, dword [esp + 0x24]
fchs
mov dword [ecx + 4], eax
fstp dword [esp + 0x28]
mov edx, dword [esp + 0x28]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x14]
call fcn.0059b7e0
mov eax, dword [ebp]
test eax, eax
je 0x5581ca
mov eax, dword [eax + 0x14]
mov ecx, dword [ebx + 0x314]
mov ecx, dword [ecx + 0x14]
push eax
call fcn.0059bbc0
mov edx, dword [ebp]
mov eax, dword [ebx + 0x314]
add edx, 0x44
mov ecx, dword [edx]
add eax, 0x44
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov eax, dword [ebp]
movsx ecx, word [eax + 0x22]
mov edx, dword [ecx*4 + 0xa9b0c8]
mov ecx, dword [edx + 0x14]
lea edx, [esp + 0x14]
push edx
fld dword [ecx + 0x14]
mov dword [esp + 0x18], 0
fstp dword [esp + 0x20]
mov dword [esp + 0x1c], 0
mov eax, dword [eax + 0x14]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0059c890
fld dword [eax + 8]
mov ecx, dword [ebx + 0x314]
fld dword [eax + 4]
add esp, 0xc
fld dword [eax]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x5581c1
fstp dword [eax + 0x30]
mov edx, dword [ecx + 0x14]
fstp dword [edx + 0x34]
mov eax, dword [ecx + 0x14]
fstp dword [eax + 0x38]
jmp 0x5581ca
fstp dword [ecx + 4]
fstp dword [ecx + 8]
fstp dword [ecx + 0xc]
mov esi, dword [esp + 0x20]
lea ecx, [esi + 0x174]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x44], eax
cmp dword [ebp], 0
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], ecx
je 0x5582d4
mov al, byte [esi + 0x325]
cmp al, 4
mov ecx, dword [0xb76898]
jne 0x558207
cmp ecx, 1
je 0x55822e
cmp al, 5
jne 0x558210
cmp ecx, 2
je 0x55822e
cmp al, 7
jne 0x558219
cmp ecx, 3
je 0x55822e
cmp al, 6
jne 0x558222
cmp ecx, 4
je 0x55822e
cmp al, 1
je 0x55822e
cmp al, 3
je 0x55822e
cmp al, 2
jne 0x558254
mov al, byte [0xa44494]
test al, al
je 0x558254
push 0
call fcn.0053fb70
add esp, 4
mov ecx, eax
call fcn.0053ffe0
test ax, ax
je 0x558254
mov ecx, esi
call fcn.00556030
mov eax, dword [ebp]
test eax, eax
je 0x558293
mov ecx, dword [eax + 0x40]
test ecx, 0x20000000
je 0x558293
mov edi, ecx
and edi, 0xfdffffff
mov dword [eax + 0x40], edi
mov eax, dword [ebp]
and dword [eax + 0x40], 0x7fffffff
mov eax, dword [esi + 0x314]
mov dword [ebp], 0
or dword [eax + 0x1c], 1
mov byte [esi + 0x326], 0x3c
mov eax, dword [ebp]
test eax, eax
je case.0x558324.5
mov dl, byte [eax + 0x36]
and dl, 7
cmp dl, 2
jne case.0x558324.5
cmp dword [eax + 0x594], 9
jne case.0x558324.5
mov ecx, dword [eax + 0x460]
test ecx, ecx
je case.0x558324.5
mov ecx, esi
call fcn.00556030
jmp case.0x558324.5
mov al, byte [esi + 0x326]
test al, al
je 0x5582eb
dec al
mov byte [esi + 0x326], al
jmp case.0x558324.5
movzx eax, byte [esi + 0x325]
dec eax
cmp eax, 6
mov byte [esp + 0x4f], 0
mov byte [esp + 0x3d], 0
mov byte [esp + 0x4e], 0
mov byte [esp + 0x3e], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x3a], 0
mov byte [esp + 0x3c], 0
mov byte [esp + 0x3f], 0
ja case.0x558324.5
jmp dword [eax*4 + 0x558ce8]
mov byte [esp + 0x3d], 1
jmp case.0x558324.1
mov byte [esp + 0x4e], 1
jmp 0x55876f
mov byte [esp + 0x3e], 1
jmp case.0x558324.1
mov byte [esp + 0x3b], 1
mov byte [esp + 0x3a], 1
mov byte [esp + 0x3c], 1
mov byte [esp + 0x3f], 1
mov byte [esp + 0x4f], 1
mov ebx, dword [0xb74494]
mov edi, dword [ebx + 8]
test edi, edi
je 0x55873b
mov ebp, edi
imul ebp, ebp, 0xa18
mov eax, dword [ebx + 4]
mov cl, byte [edi + eax - 1]
dec edi
sub ebp, 0xa18
test cl, cl
js 0x55848e
mov esi, dword [ebx]
add esi, ebp
je 0x55848e
mov eax, dword [esi + 0x594]
test eax, eax
je 0x5583c7
cmp eax, 9
jne 0x5583ae
mov ecx, dword [esi + 0x460]
test ecx, ecx
je 0x5583c7
cmp eax, 1
je 0x5583c7
mov ax, word [esi + 0x22]
cmp ax, 0x1d9
je 0x5583c7
cmp ax, 0x21b
jne 0x55848e
test dword [esi + 0x40], 0x20000000
jne 0x55848e
test byte [esi + 0x42d], 0x10
je 0x55848e
mov al, byte [esp + 0x4f]
test al, al
je 0x5583f5
cmp word [esi + 0x22], 0x234
jne 0x55848e
test byte [esi + 0x4a8], 0x60
jne 0x55848e
movsx ecx, word [esi + 0x22]
mov edx, dword [ecx*4 + 0xa9b0c8]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x14]
push ecx
fld dword [eax + 0x14]
mov eax, dword [esi + 0x14]
push eax
lea edx, [esp + 0x70]
push edx
fstp dword [esp + 0x28]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.0059c890
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
fld dword [esp + 0x30]
fsub dword [esp + 0x4c]
mov dword [esp + 0x34], edx
fld dword [esp + 0x34]
mov dword [esp + 0x38], eax
fsub dword [esp + 0x50]
add esp, 0xc
fld dword [esp + 0x2c]
fsub dword [esp + 0x48]
fld st(2)
fmulp st(3)
fld st(0)
fmul st(1)
faddp st(3)
fld st(1)
fmul st(2)
faddp st(3)
fxch st(2)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x858fa0]
fnstsw ax
test ah, 5
jnp 0x55849b
test edi, edi
jne 0x558375
jmp 0x558737
mov edi, dword [esp + 0x60]
push edi
mov ecx, esi
mov dword [edi], esi
call fcn.00571b70
mov eax, dword [edi]
or dword [eax + 0x40], 0x80000000
mov al, byte [esi + 0x36]
mov cl, al
and cl, 0xf8
cmp cl, 0x10
jne 0x5584c6
and al, 7
or al, 0x18
mov byte [esi + 0x36], al
movsx edx, word [esi + 0x22]
mov eax, dword [edx*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
mov edx, dword [edi]
fld dword [ecx + 0x14]
lea ecx, [esp + 0x14]
fstp dword [esp + 0x1c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov eax, dword [edx + 0x14]
push ecx
push eax
lea edx, [esp + 0x70]
push edx
call fcn.0059c890
fld dword [eax + 8]
mov edx, dword [esp + 0x2c]
fld dword [eax + 4]
mov ecx, dword [edx + 0x314]
fld dword [eax]
mov eax, dword [ecx + 0x14]
add esp, 0xc
test eax, eax
je 0x55852d
fstp dword [eax + 0x30]
mov eax, dword [ecx + 0x14]
fstp dword [eax + 0x34]
mov ecx, dword [ecx + 0x14]
fstp dword [ecx + 0x38]
jmp 0x558536
fstp dword [ecx + 4]
fstp dword [ecx + 8]
fstp dword [ecx + 0xc]
fld dword [esp + 0x48]
mov eax, dword [edx + 0x314]
fsub dword [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffe
mov dword [eax + 0x1c], ecx
fcom dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x558735
fld dword [0x858624]
fdiv dword [edx + 0x308]
fxch st(1)
fmul st(1)
fsubr dword [edx + 0x31c]
fxch st(1)
fmul dword [edx + 0x30c]
fsubp st(1)
fcom dword [0x858c58]
fst dword [edx + 0x31c]
fnstsw ax
test ah, 0x41
je 0x558599
fstp st(0)
fld dword [0x858c58]
fstp dword [edx + 0x31c]
jmp 0x558737
mov ebp, dword [0xb74490]
mov edi, dword [ebp + 8]
test edi, edi
je case.0x558324.5
mov ebx, edi
imul ebx, ebx, 0x7c4
lea ecx, [ecx]
mov edx, dword [ebp + 4]
mov al, byte [edi + edx - 1]
dec edi
sub ebx, 0x7c4
test al, al
js 0x558660
mov esi, dword [ebp]
add esi, ebx
je 0x558660
cmp dword [esi + 0x530], 0x37
je 0x558660
mov ecx, esi
call fcn.005df8f0
test al, al
jne 0x558660
mov eax, dword [esi + 0x46c]
test ah, 1
jne 0x558660
mov eax, dword [esi + 0x14]
test eax, eax
je 0x55860c
add eax, 0x30
jmp 0x55860f
lea eax, [esi + 4]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x14], ecx
fld dword [esp + 0x14]
fsub dword [esp + 0x40]
mov dword [esp + 0x18], edx
fld dword [esp + 0x18]
mov dword [esp + 0x1c], eax
fsub dword [esp + 0x44]
fld dword [esp + 0x1c]
fsub dword [esp + 0x48]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fcomp dword [0x858fa0]
fnstsw ax
test ah, 5
jnp 0x55866d
test edi, edi
jne 0x5585c0
jmp case.0x558324.5
mov edi, dword [esp + 0x60]
push edi
mov ecx, esi
mov dword [edi], esi
call fcn.00571b70
mov eax, dword [edi]
or dword [eax + 0x40], 0x80000000
movsx ecx, word [esi + 0x22]
mov edx, dword [ecx*4 + 0xa9b0c8]
mov eax, dword [edx + 0x14]
mov ecx, dword [edi]
lea edx, [esp + 0x14]
fld dword [eax + 0x14]
mov dword [esp + 0x14], 0
fstp dword [esp + 0x1c]
mov dword [esp + 0x18], 0
mov eax, dword [ecx + 0x14]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.0059c890
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x314]
add esp, 0xc
push eax
call fcn.004241c0
fld dword [esp + 0x48]
mov eax, dword [esi + 0x314]
fsub dword [esp + 0x2c]
mov ecx, dword [eax + 0x1c]
and ecx, 0xfffffffe
fcom dword [0x858b50]
mov dword [eax + 0x1c], ecx
fnstsw ax
test ah, 0x41
jne 0x558ca1
fld dword [0x858624]
push 0x3c23d70a
fdiv dword [esi + 0x308]
push ecx
fxch st(1)
fmul st(1)
fsubr dword [esi + 0x31c]
fxch st(1)
fmul dword [esi + 0x30c]
fsubp st(1)
fstp dword [esp]
call fcn.00420800
fstp dword [esi + 0x31c]
add esp, 8
jmp case.0x558324.5
fstp st(0)
mov ebp, dword [esp + 0x60]
mov al, byte [esp + 0x3d]
test al, al
jne 0x55876f
mov al, byte [esp + 0x3e]
test al, al
jne 0x55876f
mov al, byte [esp + 0x3b]
test al, al
jne 0x55876f
mov al, byte [esp + 0x3a]
test al, al
jne 0x55876f
mov al, byte [esp + 0x3c]
test al, al
jne 0x55876f
mov al, byte [esp + 0x3f]
test al, al
je case.0x558324.5
cmp dword [ebp], 0
jne case.0x558324.5
mov edx, dword [0xb7449c]
mov ebx, dword [edx + 8]
test ebx, ebx
mov dword [esp + 0x30], edx
je case.0x558324.5
mov ecx, ebx
imul ecx, ecx, 0x19c
mov eax, dword [edx + 4]
dec ebx
sub ecx, 0x19c
test byte [ebx + eax], 0x80
mov dword [esp + 0x64], ecx
jne 0x558b28
mov esi, dword [edx]
add esi, ecx
je 0x558b28
test dword [esi + 0x140], 0x40000
je 0x558b28
mov al, byte [esp + 0x3d]
test al, al
je 0x55881f
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd6c8]
cmp eax, edi
je 0x5588e0
movzx edi, word [0x8cd6cc]
cmp eax, edi
je 0x5588e0
movzx edi, word [0x8cd6d0]
cmp eax, edi
je 0x5588e0
movzx edi, word [0x8cd6d4]
cmp eax, edi
je 0x5588e0
movzx edi, word [0x8cd6d8]
cmp eax, edi
je 0x5588e0
mov al, byte [esp + 0x4e]
test al, al
je 0x55883a
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd6dc]
cmp eax, edi
je 0x5588e0
mov al, byte [esp + 0x3e]
test al, al
je 0x55887c
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd704]
cmp eax, edi
je 0x558872
movzx edi, word [0x8cd708]
cmp eax, edi
je 0x558872
movzx edi, word [0x8cd70c]
cmp eax, edi
je 0x558872
movzx edi, word [0x8cd714]
cmp eax, edi
jne 0x55887c
mov edi, dword [esi + 0xfc]
test edi, edi
je 0x5588e0
mov al, byte [esp + 0x3b]
test al, al
je 0x558893
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd724]
cmp eax, edi
je 0x5588e0
mov al, byte [esp + 0x3a]
test al, al
je 0x5588aa
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd734]
cmp eax, edi
je 0x5588e0
mov al, byte [esp + 0x3c]
test al, al
je 0x5588c1
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd738]
cmp eax, edi
je 0x5588e0
mov al, byte [esp + 0x3f]
test al, al
je 0x558b28
movsx eax, word [esi + 0x22]
movzx edi, word [0x8cd73c]
cmp eax, edi
jne 0x558b28
mov ecx, dword [eax*4 + 0xa9b0c8]
mov edx, dword [ecx + 0x14]
fld dword [edx + 0x14]
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x70]
fstp dword [esp + 0x24]
push edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
call fcn.0059c890
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
movzx ecx, word [0x8cd6c8]
mov dword [esp + 0x38], eax
movsx eax, word [esi + 0x22]
add esp, 0xc
xor edi, edi
cmp eax, ecx
mov dword [esp + 0x28], edx
je 0x558961
movzx edx, word [0x8cd6cc]
cmp eax, edx
je 0x558961
movzx ecx, word [0x8cd6d0]
cmp eax, ecx
je 0x558961
movzx edx, word [0x8cd6d8]
cmp eax, edx
jne 0x558ae3
mov eax, dword [eax*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
fld dword [ecx + 0x14]
mov eax, dword [esi + 0x14]
lea edx, [esp + 0x80]
push edx
push eax
lea ecx, [esp + 0x5c]
fchs
push ecx
fstp dword [esp + 0x94]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
call fcn.0059c890
fld dword [esp + 0x68]
fcomp dword [esp + 0x38]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x5589d2
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov edi, 2
movsx edx, word [esi + 0x22]
mov eax, dword [edx*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x14]
lea edx, [esp + 0x8c]
fld dword [ecx + 0x14]
push edx
push eax
lea eax, [esp + 0x13c]
push eax
fstp dword [esp + 0x98]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call fcn.0059c890
mov ecx, eax
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x60], eax
mov eax, dword [edx + 4]
mov dword [esp + 0x64], eax
mov edx, dword [edx + 8]
mov dword [esp + 0x68], edx
fld dword [esp + 0x68]
fcomp dword [esp + 0x38]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x558a5c
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov edi, 3
movsx ecx, word [esi + 0x22]
mov edx, dword [ecx*4 + 0xa9b0c8]
mov eax, dword [edx + 0x14]
lea ecx, [esp + 0x74]
push ecx
fld dword [eax + 0x14]
mov eax, dword [esi + 0x14]
push eax
lea edx, [esp + 0xa0]
push edx
fchs
mov dword [esp + 0x84], 0
fstp dword [esp + 0x80]
mov dword [esp + 0x88], 0
call fcn.0059c890
mov ecx, eax
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x64], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x68], eax
fld dword [esp + 0x68]
fcomp dword [esp + 0x38]
add esp, 0xc
fnstsw ax
test ah, 0x41
jne 0x558ae3
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov edi, 1
fld dword [esp + 0x24]
fsub dword [esp + 0x40]
fld dword [esp + 0x28]
fsub dword [esp + 0x44]
fld dword [esp + 0x2c]
fsub dword [esp + 0x48]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fcomp dword [0x858fa0]
fnstsw ax
test ah, 5
jnp 0x558b35
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x30]
test ebx, ebx
jne 0x558796
jmp case.0x558324.5
push ebp
mov ecx, esi
mov dword [ebp], esi
call fcn.00571b70
mov eax, dword [ebp]
or dword [eax + 0x40], 0x80000000
movsx edx, word [esi + 0x22]
mov eax, dword [edx*4 + 0xa9b0c8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp]
fld dword [ecx + 0x14]
lea ecx, [esp + 0x74]
fstp dword [esp + 0x7c]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [edx + 0x14]
push ecx
push eax
lea edx, [esp + 0xa0]
push edx
call fcn.0059c890
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x314]
add esp, 0xc
push eax
call fcn.004241c0
mov eax, dword [esi + 0x314]
and dword [eax + 0x1c], 0xfffffffe
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x1c]
test al, 4
jne 0x558bb6
test eax, 0x40000
je 0x558bc5
mov eax, dword [ecx]
push 0
call dword [eax + 0x10]
mov ecx, dword [ebp]
call fcn.00542800
fld dword [esp + 0x48]
mov eax, dword [ebp]
fsub dword [esp + 0x2c]
mov ecx, dword [eax + 0x40]
or ecx, 0x2000000
mov dword [eax + 0x40], ecx
fcom dword [0x858b50]
fnstsw ax
test ah, 0x41
jne 0x558c2c
fld dword [0x858624]
fdiv dword [esi + 0x308]
fxch st(1)
fmul st(1)
fsubr dword [esi + 0x31c]
fxch st(1)
fmul dword [esi + 0x30c]
fsubp st(1)
fcom dword [0x858c58]
fst dword [esi + 0x31c]
fnstsw ax
test ah, 0x41
je 0x558c24
fstp st(0)
fld dword [0x858c58]
fstp dword [esi + 0x31c]
jmp 0x558c2e
fstp st(0)
test edi, edi
jle case.0x558324.5
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x14]
mov edx, eax
mov ecx, dword [edx]
mov dword [esp + 0x14], ecx
fld dword [esp + 0x14]
mov ecx, dword [edx + 4]
fchs
mov edx, dword [edx + 8]
fstp dword [esp + 0x54]
mov dword [esp + 0x18], ecx
fld dword [esp + 0x18]
lea ecx, [eax + 0x20]
fchs
mov dword [esp + 0x1c], edx
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x54]
fstp dword [esp + 0x58]
fld dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
add eax, 0x20
fchs
dec edi
mov dword [eax], ecx
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
jne 0x558c32
jmp case.0x558324.5
fstp st(0)
mov esi, dword [esp + 0x20]
nop
nop
jmp 0x405fa5
jne 0x558cc7
fld dword [esi + 8]
fcomp dword [0x859b60]
fnstsw ax
test ah, 5
jp 0x558cc7
mov ecx, esi
call fcn.00556780
and byte [esi + 0x327], 0xfe
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x13c
ret