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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x160
mov eax, dword [esp + 0x174]
mov dword [esp + 0x38], eax
mov eax, ecx
mov ebx, dword [esp + 0x178]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax]
push eax
call fcn.005d5710
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x2c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 4]
mov byte [esp + 0x5c], 0
mov edi, dword [eax + 0x5c]
mov eax, edi
xor edx, edx
and eax, 0x2000
pop ecx
jne 0x5d2d3b
inc edx
test dl, dl
jne 0x5d2d47
mov dword [esp + 0x28], 1
cmp byte [esp + 0x28], 0
je 0x5d2d55
mov eax, 0xce
jmp 0x5d2d67
mov eax, edi
and eax, 0x80000
je 0x5d2d65
mov eax, 0xd1
jmp 0x5d2d67
xor eax, eax
test eax, eax
je 0x5d2dab
cmp byte [esp + 0x28], 0
je 0x5d2d80
mov esi, 0xce
jmp 0x5d2d92
and edi, 0x80000
je 0x5d2d90
mov esi, 0xd1
jmp 0x5d2d92
xor esi, esi
mov eax, dword [esp + 0x38]
push esi
mov eax, dword [eax + 0x4c]
push eax
call fcn.00407780
test eax, eax
pop ecx
pop ecx
je 0x5d2dab
mov byte [esp + 0x58], 1
call fcn.004bc120
cmp dword [esp + 0x174], eax
jne 0x5d2e12
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
cmp edx, 3
je 0x5d2dd6
cmp edx, 4
je 0x5d2dd6
lea eax, [edx - 6]
cmp eax, 4
jbe 0x5d2dd6
cmp edx, 0xb
jne 0x5d2e12
mov eax, dword [esp]
push dword [eax + 0x1c]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.005525d0
mov eax, dword [esp + 0x4c]
add esp, 0x10
cmp dword [eax], 0xb
jne 0x5d2e12
push 0x3e8
call fcn.004bc120
push eax
call fcn.004bc120
push eax
push 1
push 4
call fcn.0048a0d0
add esp, 0x14
mov eax, dword [esp + 0x38]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], eax
add dword [esp + 0x64], 4
add dword [esp + 0x64], 0x30
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], eax
jmp 0x5d3dea
movzx ecx, word [esp + 0x5c]
mov eax, dword [esp + 0x38]
mov byte [esp + 0x4c], 0
mov ebp, dword [eax + ecx*4 + 0x56c]
mov eax, dword [eax + 0x3d4]
mov edi, dword [ebp + 0x3d4]
cmp edi, eax
jne 0x5d2e71
mov eax, dword [esp + 0x38]
cmp ebp, dword [eax + 0x3a4]
jne 0x5d2e7d
mov eax, dword [esp + 0x38]
cmp ebp, dword [eax + 0x184]
jne 0x5d2e8e
call fcn.006499f0
movzx eax, ax
and eax, 0x1f
jne 0x5d3de6
mov ecx, dword [esp + 0x38]
call fcn.004f4910
test al, al
je 0x5d2eae
mov ecx, ebp
push dword [esp + 0x38]
call fcn.0050f130
test al, al
je 0x5d3de6
mov edi, dword [ebp + 0x244]
cmp edi, 0x32
fldz
fldz
fldz
fldz
jne 0x5d2ee9
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5d4490
cmp eax, 1
je 0x5d44a0
mov eax, dword [esp]
mov eax, dword [eax + 0x5c]
and eax, 0x10000
jne 0x5d44b0
mov ax, word [ebp + 0x5c]
mov word [esp + 0x34], ax
movsx edx, word [esp + 0x34]
mov eax, dword [edx*4 + 0x92d4c8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp]
fld dword [eax + 0x1c]
fadd dword [ecx + 0xc]
mov al, byte [ebp + 0x51]
and al, 1
fstp st(4)
jne 0x5d2f21
cmp edi, 0x37
je 0x5d2f21
cmp edi, 0x32
jne 0x5d44c0
mov dword [esp + 0x10], ebp
add dword [esp + 0x10], 4
add dword [esp + 0x10], 0x30
mov eax, dword [esp + 0x10]
fld dword [eax + 8]
fsub dword [ebx + 8]
fstp st(1)
fld dword [eax + 4]
fsub dword [ebx + 4]
fstp st(2)
fld dword [eax]
fsub dword [ebx]
fstp st(3)
fld st(1)
fstp st(2)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(3)
fmul st(0)
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x5d44d0
cmp edi, 0x2a
mov byte [esp + 0x30], 0
mov esi, 0x978a10
je 0x5d2fa5
cmp edi, 0x36
jne 0x5d2f95
mov al, byte [ebp + 0x14f]
shr al, 4
and al, 1
jne 0x5d2fa5
mov eax, dword [ebp + 0x258]
cmp eax, 0x1c
je 0x5d2fa5
cmp eax, 0x18
jne 0x5d2fd0
movsx eax, word [esp + 0x34]
fcompp
fcompp
mov ecx, dword [ebp + 0x4c]
push ecx
mov ecx, dword [eax*4 + 0x92d4c8]
call fcn.00566060
mov byte [esp + 0x30], 1
mov esi, eax
jmp 0x5d4443
cmp edi, 0x36
je 0x5d2fde
cmp edi, 0x37
jne 0x5d4450
fcompp
fstp st(0)
mov esi, 0xa10248
movsx eax, word [esi + 0x28]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x14], eax
jmp 0x5d308a
cmp byte [esp + 0x30], 0
je 0x5d3020
mov eax, dword [esi + 0x34]
add eax, edi
fld dword [eax]
fsub dword [ebx]
fstp dword [esp + 0x74]
fld dword [eax + 4]
fsub dword [ebx + 4]
fstp dword [esp + 0x78]
fld dword [eax + 8]
jmp 0x5d3046
mov edx, dword [esp + 0x10]
mov eax, dword [esi + 0x34]
fld dword [edx]
add eax, edi
fadd dword [eax]
fsub dword [ebx]
fstp dword [esp + 0x74]
fld dword [edx + 4]
fadd dword [eax + 4]
fsub dword [ebx + 4]
fstp dword [esp + 0x78]
fld dword [edx + 8]
fadd dword [eax + 8]
fsub dword [ebx + 8]
fstp dword [esp + 0x7c]
mov eax, dword [esi + 0x34]
fld dword [eax + edi + 0xc]
mov eax, dword [esp]
fadd dword [eax + 0x1c]
fstp st(1)
fld dword [esp + 0x78]
fmul st(0)
fld dword [esp + 0x74]
fmul st(0)
faddp st(1)
fld dword [esp + 0x7c]
fmul st(0)
faddp st(1)
fld st(1)
fmul st(0)
fcompp
fnstsw ax
test ah, 0x45
jne 0x5d3086
mov byte [esp + 0x4c], 1
jmp 0x5d3097
add edi, 0x14
inc ecx
movzx eax, cx
cmp eax, dword [esp + 0x14]
jl 0x5d2ff8
mov ecx, ebp
fstp st(0)
call fcn.004f4930
test al, al
je 0x5d30b1
cmp dword [ebp + 0x244], 0x2b
je 0x5d3de6
cmp byte [esp + 0x4c], 0
je 0x5d3de6
fld dword [ebp + 0x354]
fstp dword [esp + 0x6c]
fld dword [0x69d4a4]
fmul dword [esp + 0x74]
lea edi, [esp + 0x88]
fadd dword [ebx]
fstp dword [esp + 0xc0]
fld dword [0x69d4a4]
fmul dword [esp + 0x78]
lea esi, [esp + 0xc0]
fadd dword [ebx + 4]
fstp dword [esp + 0xc4]
fld dword [0x69d4a4]
fmul dword [esp + 0x7c]
fadd dword [ebx + 8]
fstp dword [esp + 0xc8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x60]
mov ecx, ebp
fld dword [eax]
mov eax, dword [esp + 0x10]
fsub dword [eax]
mov eax, dword [esp + 0x64]
fstp dword [esp + 0x94]
fld dword [eax + 4]
mov eax, dword [esp + 0x10]
fsub dword [eax + 4]
lea eax, [esp + 0x94]
push eax
fstp dword [esp + 0x9c]
call fcn.005035f0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
cmp ecx, 6
je 0x5d316f
cmp ecx, 0xa
je 0x5d316f
lea eax, [ecx - 3]
cmp eax, 2
jbe 0x5d316f
cmp ecx, 8
je 0x5d316f
cmp ecx, 9
jne 0x5d3176
mov byte [esp + 0x50], 1
jmp 0x5d317b
mov byte [esp + 0x50], 0
mov eax, dword [esp + 0x38]
fld dword [0x69d398]
fcomp dword [eax + 0x104]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x5d31ac
mov eax, dword [esp + 0x38]
mov ecx, ebp
mov dword [eax + 0x108], ebp
add eax, 0x108
push eax
call fcn.004c6ac0
mov dword [esp + 0x54], 3
cmp byte [ebp + 0x3ac], 0
je 0x5d3220
mov esi, dword [ebp + 0x3a8]
test esi, esi
je 0x5d3220
mov eax, dword [esi + 0x29c]
cmp eax, 5
jne 0x5d3220
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov eax, dword [eax]
push 0
push ebp
push dword [esp + 0x34]
push eax
call fcn.00613920
mov ecx, dword [esi + 0x1a8]
test ecx, ecx
je 0x5d3200
push dword [esp + 0x38]
call fcn.0051bda0
jmp 0x5d3de6
mov ecx, dword [esi + 0x1ac]
test ecx, ecx
je 0x5d3de6
push dword [esp + 0x38]
call fcn.0051bda0
jmp 0x5d3de6
mov eax, dword [ebp + 0x244]
cmp eax, 0x36
je 0x5d323b
cmp eax, 0x37
je 0x5d323b
mov ecx, ebp
push dword [esp + 0x38]
call fcn.0051bda0
cmp byte [esp + 0x50], 0
mov dl, 4
je 0x5d3264
cmp dword [ebp + 0x258], 0x1c
je 0x5d3262
mov eax, dword [ebp + 0x244]
cmp eax, 0x2a
je 0x5d3262
cmp eax, 0x36
je 0x5d3262
cmp eax, 0x37
jne 0x5d3264
mov dl, 1
mov al, byte [esp + 0x2c]
mov ecx, ebp
push 0xa
push edx
push eax
call fcn.0052a340
mov eax, dword [ebp + 0x244]
cmp eax, 0x36
je 0x5d3357
cmp eax, 0x37
je 0x5d3357
mov ecx, dword [esp + 0x38]
call fcn.004f4930
test al, al
je 0x5d32b8
cmp byte [esp + 0x50], 0
je 0x5d32b8
cmp byte [esp + 0x58], 0
je 0x5d32b8
mov al, byte [esp + 0x2c]
push eax
push 0
push dword [0x69d510]
jmp 0x5d3342
mov ecx, dword [esp + 0x38]
call fcn.004f4930
test al, al
je 0x5d3301
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x63b], 0
je 0x5d3301
mov al, byte [esp + 0x2c]
mov ecx, ebp
push eax
mov eax, dword [esp + 4]
fild dword [eax + 0x14]
push 0
push eax
fmul dword [0x69d530]
fstp dword [esp]
mov eax, dword [esp + 0x48]
mov eax, dword [eax]
push eax
push dword [esp + 0x184]
call fcn.00525b20
jmp 0x5d3357
mov ecx, ebp
call fcn.004f4930
test al, al
je 0x5d3330
cmp byte [esp + 0x50], 0
je 0x5d3330
mov al, byte [esp + 0x2c]
push eax
mov eax, dword [esp + 4]
fild dword [eax + 0x14]
push 0
push eax
fmul dword [0x69d3b4]
fstp dword [esp]
jmp 0x5d3342
mov al, byte [esp + 0x2c]
push eax
mov eax, dword [esp + 4]
fild dword [eax + 0x14]
push 0
push eax
fstp dword [esp]
mov eax, dword [esp + 0x48]
mov ecx, ebp
mov eax, dword [eax]
push eax
push dword [esp + 0x184]
call fcn.00525b20
cmp byte [0x68dd68], 0
je 0x5d4460
mov ecx, ebp
call fcn.004885d0
test al, al
fldz
je 0x5d3a9e
fld dword [esp + 0x78]
fmul st(0)
fld dword [esp + 0x74]
fmul st(0)
faddp st(1)
fld dword [esp + 0x7c]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [0x69d3dc]
fmul st(1)
fdivr dword [0x69d3c8]
lea edi, [esp + 0x9c]
push 0
push 0
push 0
push 0
fst st(1)
fmul dword [esp + 0x84]
fstp dword [esp + 0xdc]
fld st(0)
fmul dword [esp + 0x88]
lea esi, [esp + 0xdc]
fstp dword [esp + 0xe0]
fld st(0)
fmul dword [esp + 0x8c]
fstp dword [esp + 0xe4]
movsd dword es:[edi], dword [esi]
fstp st(0)
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x98]
lea ecx, [esp + 0xac]
push dword [0x69d398]
push 0
push ecx
push eax
push 6
call fcn.005648f0
lea eax, [esp + 0xac]
add esp, 0x24
lea edx, [esp + 0x9c]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push edx
push eax
push 6
call fcn.005648f0
lea eax, [esp + 0xac]
add esp, 0x24
lea edi, [esp + 0x9c]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push edi
push eax
push 6
call fcn.005648f0
add esp, 0x24
cmp byte [esp + 0x50], 0
je 0x5d35ab
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
fmul dword [0x69d3d4]
fmul dword [0x69d390]
fadd dword [0x69d534]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
call fcn.006499f0
and eax, 0xffff
lea esi, [esp + 0x9c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x88]
fild dword [esp + 0x80]
push 0
push 0
fmul dword [0x69d3d4]
push 0
push 0
fmul dword [0x69d390]
push dword [0x69d398]
push 0
fadd dword [0x69d534]
push esi
push eax
push 6
fadd dword [esp + 0xc4]
fstp dword [esp + 0xc4]
call fcn.005648f0
add esp, 0x24
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
fmul dword [0x69d3d4]
fmul dword [0x69d390]
fadd dword [0x69d534]
fadd dword [esp + 0x9c]
fstp dword [esp + 0x9c]
call fcn.006499f0
and eax, 0xffff
lea ecx, [esp + 0x9c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x88]
fild dword [esp + 0x80]
push 0
push 0
fmul dword [0x69d3d4]
push 0
push 0
fmul dword [0x69d390]
push dword [0x69d398]
push 0
fadd dword [0x69d534]
push ecx
push eax
push 6
fadd dword [esp + 0xc4]
fstp dword [esp + 0xc4]
call fcn.005648f0
add esp, 0x24
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d3991
mov esi, dword [ebp + 0x244]
cmp esi, 0x37
je 0x5d35d0
mov eax, dword [0xa0d898]
add eax, 0x11
and eax, 1
je 0x5d35e2
cmp esi, 0x37
jne 0x5d362d
mov eax, dword [0xa0d898]
add eax, 0x11
and eax, 3
jne 0x5d362d
lea eax, [esp + 0x88]
mov dword [esp + 0xd8], 0
lea edx, [esp + 0xd8]
mov dword [esp + 0xdc], 0
push 0
push 0
push 0
push 0
push dword [0x69d394]
push 0
push edx
push eax
push 0x4c
mov dword [esp + 0x104], 0
call fcn.005648f0
add esp, 0x24
fld dword [esp + 0x9c]
fadd dword [0x69d398]
lea eax, [esp + 0x88]
push 0
fstp dword [esp + 0xe8]
fld dword [esp + 0xa4]
fadd dword [0x69d398]
lea edi, [esp + 0xe8]
push 0
fstp dword [esp + 0xf0]
fld dword [esp + 0xac]
fadd dword [0x69d394]
push 0
push 0
fstp dword [esp + 0xfc]
push dword [0x69d398]
push 0
push edi
push eax
push 7
call fcn.005648f0
fld dword [esp + 0xc0]
fadd dword [0x69d398]
lea eax, [esp + 0xac]
add esp, 0x24
push 0
fstp dword [esp + 0xf4]
fld dword [esp + 0xa4]
fadd dword [0x69d398]
lea esi, [esp + 0xf4]
push 0
fstp dword [esp + 0xfc]
fld dword [esp + 0xac]
fadd dword [0x69d394]
push 0
push 0
fstp dword [esp + 0x108]
push dword [0x69d398]
push 0
push esi
push eax
push 6
call fcn.005648f0
fld dword [esp + 0xc0]
fadd dword [0x69d398]
lea eax, [esp + 0xac]
add esp, 0x24
push 0
fstp dword [esp + 0x100]
fld dword [esp + 0xa4]
fadd dword [0x69d398]
lea ecx, [esp + 0x100]
push 0
fstp dword [esp + 0x108]
fld dword [esp + 0xac]
fadd dword [0x69d390]
push 0
push 0
fstp dword [esp + 0x114]
push dword [0x69d398]
push 0
push ecx
push eax
push 6
call fcn.005648f0
lea eax, [esp + 0xac]
add esp, 0x24
mov dword [esp + 0x108], 0
lea edx, [esp + 0x108]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push edx
push eax
push 0xa
mov dword [esp + 0x134], 0x3c23d70a
mov dword [esp + 0x130], 0
call fcn.005648f0
add esp, 0x24
call fcn.006499f0
mov edi, eax
call fcn.006499f0
and eax, 0xffff
and edi, 0xffff
mov dword [esp + 0x80], eax
mov esi, dword [0x9b48e4]
fild dword [esp + 0x80]
mov dword [esp + 0x80], edi
mov dword [esp + 0xbc], 0
add esi, 0xffffffce
fmul dword [0x69d3d4]
fmul dword [0x69d400]
fadd dword [0x69d514]
fstp dword [esp + 0xb4]
fild dword [esp + 0x80]
fmul dword [0x69d3d4]
fmul dword [0x69d418]
fadd dword [0x69d390]
fstp dword [esp + 0xb8]
call fcn.006499f0
and eax, 0xffff
add esi, 0xffffffce
mov dword [esp + 0x80], esi
mov edi, dword [0x9b48e8]
fild dword [esp + 0x80]
mov dword [esp + 0x80], eax
add edi, 0xffffffce
fild dword [esp + 0x80]
fmul dword [0x69d3d4]
fmulp st(1)
fnstcw word [esp + 0x68]
mov eax, dword [esp + 0x68]
or byte [esp + 0x69], 0xc
fldcw word [esp + 0x68]
mov dword [esp + 0x68], eax
fistp dword [esp + 0x80]
mov eax, dword [esp + 0x80]
fldcw word [esp + 0x68]
add eax, 0x32
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
fstp dword [esp + 0xa8]
call fcn.006499f0
and eax, 0xffff
add edi, 0xffffffce
mov dword [esp + 0x80], edi
lea ecx, [esp + 0x114]
fild dword [esp + 0x80]
mov dword [esp + 0x80], eax
mov dword [esp + 0xb0], 0x3f800000
fild dword [esp + 0x80]
push 0
push 0
fmul dword [0x69d3d4]
push 0
push 0
fmulp st(1)
fnstcw word [esp + 0x78]
mov eax, dword [esp + 0x78]
or byte [esp + 0x79], 0xc
fldcw word [esp + 0x78]
mov dword [esp + 0x78], eax
fistp dword [esp + 0x90]
mov eax, dword [esp + 0x90]
fldcw word [esp + 0x78]
add eax, 0x32
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fstp dword [esp + 0xbc]
call fcn.00541570
call fcn.006499f0
mov edi, eax
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
movzx esi, di
lea edi, [esp + 0x114]
fmul dword [0x69d3d4]
and esi, 1
push 0
fmul dword [0x69d538]
push esi
push 0
fadd dword [0x69d390]
push 0
push edi
push eax
fstp dword [esp]
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xcc]
push 0
push ecx
push eax
push 0x29
call fcn.00563cc0
add esp, 0x28
mov eax, dword [esp]
cmp dword [eax + 0x34], 9
fldz
fldz
jne 0x5d4467
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x38]
fld dword [0x69d390]
add esi, 0x24
add edi, 4
fmul dword [esi + 8]
fld dword [0x69d414]
fmul dword [edi + 8]
lea eax, [esp + 0x88]
push 0
faddp st(1)
fstp st(1)
fld dword [0x69d390]
fmul dword [esi + 4]
fld dword [0x69d414]
fmul dword [edi + 4]
push 0
push 0
faddp st(1)
fstp st(2)
fld dword [0x69d390]
fmul dword [esi]
fld dword [0x69d414]
fmul dword [edi]
push 0
push dword [0x69d398]
faddp st(1)
fadd dword [esp + 0xb0]
push 0
fstp dword [esp + 0xb4]
fld dword [esp + 0xb8]
fadd st(2)
fstp dword [esp + 0xb8]
fld dword [esp + 0xbc]
lea edx, [esp + 0xb4]
fadd st(1)
fstp dword [esp + 0xbc]
fcompp
push edx
push eax
push 8
call fcn.005648f0
lea eax, [esp + 0xac]
add esp, 0x24
lea esi, [esp + 0x9c]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push esi
push eax
push 8
call fcn.005648f0
lea eax, [esp + 0xac]
add esp, 0x24
lea edi, [esp + 0x9c]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push edi
push eax
push 8
call fcn.005648f0
add esp, 0x24
fldz
mov eax, dword [ebp + 0x244]
cmp eax, 0x2a
je 0x5d3c70
cmp eax, 0x36
je 0x5d3c70
cmp eax, 0x37
je 0x5d3c70
fld dword [ebp + 0x354]
fst st(1)
fcomp dword [0x69d398]
fnstsw ax
test ah, 0x45
jne 0x5d4477
fcom dword [0x69d43c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5d3af9
fld dword [esp + 0x6c]
fcomp dword [0x69d43c]
fnstsw ax
test ah, 0x45
je 0x5d3b24
mov ecx, ebp
fstp st(0)
call fcn.004f4930
test al, al
jne 0x5d3d65
cmp byte [esp + 0x50], 0
jne 0x5d4470
mov eax, dword [esp + 0x3c]
cmp dword [eax], 1
jne 0x5d3d65
fldz
fld dword [esp + 0x98]
fstp st(1)
fmul st(0)
fld dword [esp + 0x94]
fmul st(0)
faddp st(1)
fcom dword [0x69d398]
fnstsw ax
test ah, 4
jne 0x5d3b60
and ah, 0x45
test ah, 0x41
je 0x5d3b60
mov dword [esp + 0x94], 0x3f800000
jmp 0x5d3b9e
fld st(0)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [0x69d3c8]
fdiv st(1)
fstp st(1)
fld dword [esp + 0x94]
fmul st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fmul st(1)
fstp dword [esp + 0x98]
mov al, byte [ebp + 0x14c]
and al, 0xfe
mov byte [ebp + 0x14c], al
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d3bd4
fld dword [0x69d4cc]
fmul dword [esp + 0x98]
push dword [0x69d3b4]
push eax
fstp dword [esp]
fld dword [0x69d4cc]
jmp 0x5d3bf1
fld dword [0x69d4d8]
fmul dword [esp + 0x98]
push dword [0x69d3f8]
push eax
fstp dword [esp]
fld dword [0x69d4d8]
fmul dword [esp + 0x9c]
push eax
mov ecx, ebp
fstp dword [esp]
fstp st(0)
call fcn.004badc0
cmp byte [esp + 0x50], 0
je 0x5d3c30
mov ecx, ebp
call fcn.004f4930
test al, al
jne 0x5d3c30
movzx eax, word [esp + 0x2c]
push 0
add eax, 0x19
push eax
push 0xbb8
jmp 0x5d3c40
movzx eax, word [esp + 0x2c]
push 0
add eax, 0x19
push eax
push 0x5dc
mov ecx, ebp
call fcn.004fd9f0
mov eax, dword [esp + 0x38]
mov dword [eax + 0x3a4], ebp
add eax, 0x3a4
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x3a4]
call fcn.004c6ac0
jmp 0x5d3d65
cmp eax, 0x36
jne 0x5d4480
cmp byte [esp + 0x58], 0
jne 0x5d4487
fld dword [esp + 0x98]
fstp st(1)
fmul st(0)
fld dword [esp + 0x94]
fmul st(0)
faddp st(1)
fcom dword [0x69d398]
fnstsw ax
test ah, 4
jne 0x5d3cc0
and ah, 0x45
test ah, 0x41
je 0x5d3cc0
mov dword [esp + 0x94], 0x3f800000
jmp 0x5d3cfe
fld st(0)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [0x69d3c8]
fdiv st(1)
fstp st(1)
fld dword [esp + 0x94]
fmul st(1)
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fmul st(1)
fstp dword [esp + 0x98]
mov al, byte [ebp + 0x14c]
and al, 0xfe
mov byte [ebp + 0x14c], al
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d3d34
fld dword [0x69d53c]
fmul dword [esp + 0x98]
push dword [0x69d3c8]
push eax
fstp dword [esp]
fld dword [0x69d53c]
jmp 0x5d3d51
fld dword [0x69d4d8]
fmul dword [esp + 0x98]
push dword [0x69d3f8]
push eax
fstp dword [esp]
fld dword [0x69d4d8]
fmul dword [esp + 0x9c]
push eax
mov ecx, ebp
fstp dword [esp]
fstp st(0)
call fcn.004badc0
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 4
mov esi, dword [eax]
cmp esi, 5
je 0x5d3d84
lea eax, [esi - 9]
cmp eax, 1
jbe 0x5d3d84
cmp esi, 0xb
jne 0x5d3db0
cmp dword [ebp + 0x3d4], 6
jne 0x5d3da0
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 0x12
jmp 0x5d3dde
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 0x11
jmp 0x5d3dde
cmp dword [ebp + 0x3d4], 6
jne 0x5d3dd0
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 3
jmp 0x5d3dde
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 1
call fcn.0048a0d0
add esp, 0x14
inc dword [esp + 0x5c]
mov ax, word [esp + 0x5c]
mov ecx, dword [esp + 0x38]
cmp ax, word [ecx + 0x594]
jb 0x5d2e40
mov eax, dword [esp]
push 0
push 0
push 0
push 0
push 1
push 0
push 0
push dword [eax + 0x1c]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.004d3f40
add esp, 0x2c
test eax, eax
mov dword [esp + 0xc], eax
je 0x5d428e
cmp dword [eax + 0x29c], 0
jne 0x5d428e
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 4
call fcn.004bc120
cmp dword [esp + 0x38], eax
jne 0x5d3e87
mov ecx, dword [esp + 0xc]
call fcn.005b7d60
test al, al
je 0x5d3e6e
push 1
call fcn.004bc120
mov ecx, eax
call fcn.00532070
push 0x7d0
push dword [esp + 0x3c]
push dword [esp + 0x14]
push 2
push 1
call fcn.0048a0d0
add esp, 0x14
mov eax, dword [esp + 0xc]
fld dword [eax + 0x204]
mov eax, dword [esp + 0x3c]
fstp dword [esp + 0x70]
cmp dword [eax], 0xb
jne 0x5d3f57
xor edi, edi
mov dword [esp + 0x118], 0
lea eax, [esp + 0x118]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push eax
mov dword [esp + 0x138], 0
push 0x7d18c0
push 1
mov dword [esp + 0x144], 0x3e99999a
call fcn.005648f0
fld dword [0x69d390]
fmul dword [0x7d18d0]
add esp, 0x24
push 0
fstp dword [esp + 0x128]
fld dword [0x69d390]
fmul dword [0x7d18d4]
lea eax, [esp + 0x128]
push 0
fstp dword [esp + 0x130]
fld dword [0x69d390]
fmul dword [0x7d18d8]
push 0
push 0
fstp dword [esp + 0x13c]
push dword [0x69d398]
push 0
push eax
push 0x7d18c0
push 0
call fcn.005648f0
inc edi
add esp, 0x24
cmp di, 4
jl 0x5d3ea4
mov eax, dword [esp + 0x3c]
movzx ecx, byte [0x7d18e3]
cmp dword [eax], 0xb
jne 0x5d3fe0
mov eax, dword [esp]
push ecx
fild dword [eax + 0x14]
mov eax, dword [esp + 0x10]
fld dword [0x69d540]
mov eax, dword [eax + 0x120]
fmul dword [eax + 4]
push eax
fmulp st(1)
fstp dword [esp]
mov ecx, dword [esp + 0x14]
call fcn.0059b550
mov dword [esp + 0x130], 0
lea eax, [esp + 0x130]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push eax
mov dword [esp + 0x150], 0
push 0x7d18c0
push 0x51
mov dword [esp + 0x15c], 0
call fcn.005648f0
add esp, 0x24
jmp 0x5d400c
mov eax, ecx
push eax
mov eax, dword [esp + 4]
fild dword [eax + 0x14]
mov eax, dword [esp + 0x10]
fld dword [0x69d42c]
mov eax, dword [eax + 0x120]
fmul dword [eax + 4]
push eax
fmulp st(1)
fstp dword [esp]
mov ecx, dword [esp + 0x14]
call fcn.0059b550
mov eax, dword [esp + 0xc]
fld dword [eax + 0x204]
fcomp dword [esp + 0x70]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5d4041
mov eax, dword [esp + 0x3c]
mov cl, byte [eax]
mov eax, dword [esp + 0xc]
mov byte [eax + 0x234], cl
mov ecx, dword [esp + 0x174]
mov dword [eax + 0x238], ecx
mov eax, dword [esp + 0x38]
fld dword [0x69d398]
fcomp dword [eax + 0x104]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x5d4078
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov dword [eax + 0x108], ecx
add eax, 0x108
mov ecx, dword [esp + 0xc]
push eax
call fcn.004c6ac0
mov dword [esp + 0x54], 2
call fcn.004bc120
movsx edx, byte [eax + 0x504]
lea edx, [edx*8]
lea edx, [edx + edx*2]
add edx, eax
add edx, 0x408
cmp edx, dword [esp + 0x3c]
jne 0x5d428e
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x1f8], 2
je 0x5d428e
cmp byte [eax + 0x155], 3
je 0x5d410e
call fcn.006499f0
and eax, 0xffff
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
fmul dword [0x69d3d4]
fmul dword [0x69d3c8]
fadd dword [0x69d398]
fcomp dword [0x69d39c]
fnstsw ax
test ah, 0x45
jne 0x5d41b0
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x156], 1
jne 0x5d41b0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1a8]
test eax, eax
je 0x5d428e
mov esi, dword [eax + 0x164]
cmp esi, 0x10
je 0x5d428e
cmp esi, 8
je 0x5d428e
cmp esi, 3
je 0x5d428e
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x155], 3
je 0x5d419a
movsx eax, byte [eax + 0x160]
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
fmul dword [0x69d408]
fnstcw word [esp + 0x68]
mov eax, dword [esp + 0x68]
or byte [esp + 0x69], 0xc
fldcw word [esp + 0x68]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xc]
fistp dword [esp + 0x80]
fldcw word [esp + 0x68]
mov ecx, dword [esp + 0x80]
mov byte [eax + 0x160], cl
mov eax, dword [esp + 0xc]
mov byte [eax + 0x155], 3
jmp 0x5d428e
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 0xc8
mov ebp, dword [eax + 0x1a8]
test ebp, ebp
je 0x5d4231
cmp byte [ebp + 0x160], 2
je 0x5d4231
mov edx, dword [ebp + 0x3d8]
mov al, byte [edx + 0x25]
mov byte [esp + 0x40], al
mov cl, byte [edx + 0x24]
cmp byte [esp + 0x40], cl
jle 0x5d4210
call fcn.004bc120
mov ecx, ebp
push eax
push 8
call fcn.00521f10
mov eax, dword [0x974b2c]
add eax, 0x2710
mov dword [ebp + 0x550], eax
mov dword [ebp + 0x168], 8
jmp 0x5d4219
mov ecx, ebp
push 3
call fcn.005224b0
mov eax, dword [0x974b2c]
add eax, 0xc8
mov dword [ebp + 0x534], eax
add dword [esp + 0x48], 0xc8
xor ebp, ebp
jmp 0x5d427f
mov eax, dword [esp + 0xc]
mov edi, dword [eax + ebp*4 + 0x1ac]
test edi, edi
je 0x5d427e
cmp byte [edi + 0x160], 2
je 0x5d427e
mov esi, dword [edi + 0x3d8]
mov al, byte [esi + 0x24]
mov cl, byte [esi + 0x25]
cmp cl, al
jle 0x5d425d
mov ecx, edi
push 3
call fcn.005224b0
mov eax, dword [esp + 0x48]
add eax, dword [0x974b2c]
mov dword [edi + 0x534], eax
add dword [esp + 0x48], 0xc8
inc ebp
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x1cc]
cmp ebp, eax
jl 0x5d4235
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d4434
mov eax, dword [esp]
push 0
push 0
push 1
push 0
push 0
push 1
push 0
push dword [eax + 0x1c]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.004d3f40
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x5d4434
xor ebp, ebp
mov eax, eax
lea eax, [eax]
mov dword [esp + 0x13c], 0
lea eax, [esp + 0x13c]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push eax
mov dword [esp + 0x15c], 0
push 0x7d18c0
push 1
mov dword [esp + 0x168], 0x3e99999a
call fcn.005648f0
fld dword [0x69d390]
fmul dword [0x7d18d0]
add esp, 0x24
push 0
fstp dword [esp + 0x14c]
fld dword [0x69d390]
fmul dword [0x7d18d4]
lea eax, [esp + 0x14c]
push 0
fstp dword [esp + 0x154]
fld dword [0x69d390]
fmul dword [0x7d18d8]
push 0
push 0
fstp dword [esp + 0x160]
push dword [0x69d398]
push 0
push eax
push 0x7d18c0
push 0
call fcn.005648f0
inc ebp
add esp, 0x24
cmp bp, 4
jl 0x5d42d0
mov dword [esp + 0x154], 0
lea eax, [esp + 0x154]
push 0
push 0
push 0
push 0
push dword [0x69d398]
push 0
push eax
mov dword [esp + 0x174], 0
push 0x7d18c0
push 0x51
mov dword [esp + 0x180], 0
call fcn.005648f0
add esp, 0x24
cmp word [esp + 0x54], 0
jne 0x5d4415
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 4
mov eax, dword [esp + 0x38]
fld dword [0x69d398]
fcomp dword [eax + 0x104]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x5d4415
mov eax, dword [esp + 0x38]
mov ecx, esi
mov dword [eax + 0x108], esi
add dword [esp + 0x38], 0x108
push dword [esp + 0x38]
call fcn.004c6ac0
mov al, byte [esi + 0x50]
and al, 7
cmp al, 4
jne 0x5d4434
cmp byte [esi + 0x178], 0x14
jb 0x5d4434
mov ecx, esi
push dword [0x69d544]
call fcn.004e0990
add esp, 0x160
mov al, 1
pop ebp
pop edi
pop esi
pop ebx
ret 8
fldz
jmp 0x5d2fe7
fcompp
fstp st(0)
jmp 0x5d2fe7
fldz
jmp 0x5d3a9e
fstp st(0)
jmp 0x5d3a9e
fldz
jmp 0x5d3b24
fstp st(0)
jmp 0x5d3d65
fstp st(0)
jmp 0x5d3d65
fstp st(0)
jmp 0x5d3d65
fcompp
fcompp
jmp 0x5d3de6
fcompp
fcompp
jmp 0x5d3de6
fcompp
fcompp
jmp 0x5d3de6
fcompp
fcompp
jmp 0x5d3de6
fcompp
fcompp
jmp 0x5d3de6