Function at 0x5d2d00
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.005d5730
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 0x5d2d5b
inc edx
test dl, dl
jne 0x5d2d67
mov dword [esp + 0x28], 1
cmp byte [esp + 0x28], 0
je 0x5d2d75
mov eax, 0xce
jmp 0x5d2d87
mov eax, edi
and eax, 0x80000
je 0x5d2d85
mov eax, 0xd1
jmp 0x5d2d87
xor eax, eax
test eax, eax
je 0x5d2dcb
cmp byte [esp + 0x28], 0
je 0x5d2da0
mov esi, 0xce
jmp 0x5d2db2
and edi, 0x80000
je 0x5d2db0
mov esi, 0xd1
jmp 0x5d2db2
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 0x5d2dcb
mov byte [esp + 0x58], 1
call fcn.004bc140
cmp dword [esp + 0x174], eax
jne 0x5d2e32
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
cmp edx, 3
je 0x5d2df6
cmp edx, 4
je 0x5d2df6
lea eax, [edx - 6]
cmp eax, 4
jbe 0x5d2df6
cmp edx, 0xb
jne 0x5d2e32
mov eax, dword [esp]
push dword [eax + 0x1c]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.005525f0
mov eax, dword [esp + 0x4c]
add esp, 0x10
cmp dword [eax], 0xb
jne 0x5d2e32
push 0x3e8
call fcn.004bc140
push eax
call fcn.004bc140
push eax
push 1
push 4
call fcn.0048a0e0
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 0x5d3e0a
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 0x5d2e91
mov eax, dword [esp + 0x38]
cmp ebp, dword [eax + 0x3a4]
jne 0x5d2e9d
mov eax, dword [esp + 0x38]
cmp ebp, dword [eax + 0x184]
jne 0x5d2eae
call fcn.00649a40
movzx eax, ax
and eax, 0x1f
jne 0x5d3e06
mov ecx, dword [esp + 0x38]
call fcn.004f4930
test al, al
je 0x5d2ece
mov ecx, ebp
push dword [esp + 0x38]
call fcn.0050f150
test al, al
je 0x5d3e06
mov edi, dword [ebp + 0x244]
cmp edi, 0x32
fldz
fldz
fldz
fldz
jne 0x5d2f09
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
test eax, eax
je 0x5d44b0
cmp eax, 1
je 0x5d44c0
mov eax, dword [esp]
mov eax, dword [eax + 0x5c]
and eax, 0x10000
jne 0x5d44d0
mov ax, word [ebp + 0x5c]
mov word [esp + 0x34], ax
movsx edx, word [esp + 0x34]
mov eax, dword [edx*4 + 0x92d4d0]
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 0x5d2f41
cmp edi, 0x37
je 0x5d2f41
cmp edi, 0x32
jne 0x5d44e0
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 0x5d44f0
cmp edi, 0x2a
mov byte [esp + 0x30], 0
mov esi, 0x978a18
je 0x5d2fc5
cmp edi, 0x36
jne 0x5d2fb5
mov al, byte [ebp + 0x14f]
shr al, 4
and al, 1
jne 0x5d2fc5
mov eax, dword [ebp + 0x258]
cmp eax, 0x1c
je 0x5d2fc5
cmp eax, 0x18
jne 0x5d2ff0
movsx eax, word [esp + 0x34]
fcompp
fcompp
mov ecx, dword [ebp + 0x4c]
push ecx
mov ecx, dword [eax*4 + 0x92d4d0]
call fcn.00566080
mov byte [esp + 0x30], 1
mov esi, eax
jmp 0x5d4463
cmp edi, 0x36
je 0x5d2ffe
cmp edi, 0x37
jne 0x5d4470
fcompp
fstp st(0)
mov esi, 0xa10250
movsx eax, word [esi + 0x28]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x14], eax
jmp 0x5d30aa
cmp byte [esp + 0x30], 0
je 0x5d3040
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 0x5d3066
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 0x5d30a6
mov byte [esp + 0x4c], 1
jmp 0x5d30b7
add edi, 0x14
inc ecx
movzx eax, cx
cmp eax, dword [esp + 0x14]
jl 0x5d3018
mov ecx, ebp
fstp st(0)
call fcn.004f4950
test al, al
je 0x5d30d1
cmp dword [ebp + 0x244], 0x2b
je 0x5d3e06
cmp byte [esp + 0x4c], 0
je 0x5d3e06
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.00503610
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
cmp ecx, 6
je 0x5d318f
cmp ecx, 0xa
je 0x5d318f
lea eax, [ecx - 3]
cmp eax, 2
jbe 0x5d318f
cmp ecx, 8
je 0x5d318f
cmp ecx, 9
jne 0x5d3196
mov byte [esp + 0x50], 1
jmp 0x5d319b
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 0x5d31cc
mov eax, dword [esp + 0x38]
mov ecx, ebp
mov dword [eax + 0x108], ebp
add eax, 0x108
push eax
call fcn.004c6ae0
mov dword [esp + 0x54], 3
cmp byte [ebp + 0x3ac], 0
je 0x5d3240
mov esi, dword [ebp + 0x3a8]
test esi, esi
je 0x5d3240
mov eax, dword [esi + 0x29c]
cmp eax, 5
jne 0x5d3240
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov eax, dword [eax]
push 0
push ebp
push dword [esp + 0x34]
push eax
call fcn.00613900
mov ecx, dword [esi + 0x1a8]
test ecx, ecx
je 0x5d3220
push dword [esp + 0x38]
call fcn.0051bdc0
jmp 0x5d3e06
mov ecx, dword [esi + 0x1ac]
test ecx, ecx
je 0x5d3e06
push dword [esp + 0x38]
call fcn.0051bdc0
jmp 0x5d3e06
mov eax, dword [ebp + 0x244]
cmp eax, 0x36
je 0x5d325b
cmp eax, 0x37
je 0x5d325b
mov ecx, ebp
push dword [esp + 0x38]
call fcn.0051bdc0
cmp byte [esp + 0x50], 0
mov dl, 4
je 0x5d3284
cmp dword [ebp + 0x258], 0x1c
je 0x5d3282
mov eax, dword [ebp + 0x244]
cmp eax, 0x2a
je 0x5d3282
cmp eax, 0x36
je 0x5d3282
cmp eax, 0x37
jne 0x5d3284
mov dl, 1
mov al, byte [esp + 0x2c]
mov ecx, ebp
push 0xa
push edx
push eax
call fcn.0052a360
mov eax, dword [ebp + 0x244]
cmp eax, 0x36
je 0x5d3377
cmp eax, 0x37
je 0x5d3377
mov ecx, dword [esp + 0x38]
call fcn.004f4950
test al, al
je 0x5d32d8
cmp byte [esp + 0x50], 0
je 0x5d32d8
cmp byte [esp + 0x58], 0
je 0x5d32d8
mov al, byte [esp + 0x2c]
push eax
push 0
push dword [0x69d510]
jmp 0x5d3362
mov ecx, dword [esp + 0x38]
call fcn.004f4950
test al, al
je 0x5d3321
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x63b], 0
je 0x5d3321
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.00525b40
jmp 0x5d3377
mov ecx, ebp
call fcn.004f4950
test al, al
je 0x5d3350
cmp byte [esp + 0x50], 0
je 0x5d3350
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 0x5d3362
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.00525b40
cmp byte [0x68dd68], 0
je 0x5d4480
mov ecx, ebp
call fcn.004885d0
test al, al
fldz
je 0x5d3abe
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.00564910
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.00564910
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.00564910
add esp, 0x24
cmp byte [esp + 0x50], 0
je 0x5d35cb
call fcn.00649a40
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.00649a40
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.00564910
add esp, 0x24
call fcn.00649a40
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.00649a40
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.00564910
add esp, 0x24
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d39b1
mov esi, dword [ebp + 0x244]
cmp esi, 0x37
je 0x5d35f0
mov eax, dword [0xa0d8a0]
add eax, 0x11
and eax, 1
je 0x5d3602
cmp esi, 0x37
jne 0x5d364d
mov eax, dword [0xa0d8a0]
add eax, 0x11
and eax, 3
jne 0x5d364d
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.00564910
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.00564910
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.00564910
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.00564910
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.00564910
add esp, 0x24
call fcn.00649a40
mov edi, eax
call fcn.00649a40
and eax, 0xffff
and edi, 0xffff
mov dword [esp + 0x80], eax
mov esi, dword [0x9b48ec]
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.00649a40
and eax, 0xffff
add esi, 0xffffffce
mov dword [esp + 0x80], esi
mov edi, dword [0x9b48f0]
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.00649a40
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.00541590
call fcn.00649a40
mov edi, eax
call fcn.00649a40
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.00563ce0
add esp, 0x28
mov eax, dword [esp]
cmp dword [eax + 0x34], 9
fldz
fldz
jne 0x5d4487
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.00564910
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.00564910
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.00564910
add esp, 0x24
fldz
mov eax, dword [ebp + 0x244]
cmp eax, 0x2a
je 0x5d3c90
cmp eax, 0x36
je 0x5d3c90
cmp eax, 0x37
je 0x5d3c90
fld dword [ebp + 0x354]
fst st(1)
fcomp dword [0x69d398]
fnstsw ax
test ah, 0x45
jne 0x5d4497
fcom dword [0x69d43c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5d3b19
fld dword [esp + 0x6c]
fcomp dword [0x69d43c]
fnstsw ax
test ah, 0x45
je 0x5d3b44
mov ecx, ebp
fstp st(0)
call fcn.004f4950
test al, al
jne 0x5d3d85
cmp byte [esp + 0x50], 0
jne 0x5d4490
mov eax, dword [esp + 0x3c]
cmp dword [eax], 1
jne 0x5d3d85
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 0x5d3b80
and ah, 0x45
test ah, 0x41
je 0x5d3b80
mov dword [esp + 0x94], 0x3f800000
jmp 0x5d3bbe
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 0x5d3bf4
fld dword [0x69d4cc]
fmul dword [esp + 0x98]
push dword [0x69d3b4]
push eax
fstp dword [esp]
fld dword [0x69d4cc]
jmp 0x5d3c11
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.004bade0
cmp byte [esp + 0x50], 0
je 0x5d3c50
mov ecx, ebp
call fcn.004f4950
test al, al
jne 0x5d3c50
movzx eax, word [esp + 0x2c]
push 0
add eax, 0x19
push eax
push 0xbb8
jmp 0x5d3c60
movzx eax, word [esp + 0x2c]
push 0
add eax, 0x19
push eax
push 0x5dc
mov ecx, ebp
call fcn.004fda10
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.004c6ae0
jmp 0x5d3d85
cmp eax, 0x36
jne 0x5d44a0
cmp byte [esp + 0x58], 0
jne 0x5d44a7
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 0x5d3ce0
and ah, 0x45
test ah, 0x41
je 0x5d3ce0
mov dword [esp + 0x94], 0x3f800000
jmp 0x5d3d1e
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 0x5d3d54
fld dword [0x69d53c]
fmul dword [esp + 0x98]
push dword [0x69d3c8]
push eax
fstp dword [esp]
fld dword [0x69d53c]
jmp 0x5d3d71
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.004bade0
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 4
mov esi, dword [eax]
cmp esi, 5
je 0x5d3da4
lea eax, [esi - 9]
cmp eax, 1
jbe 0x5d3da4
cmp esi, 0xb
jne 0x5d3dd0
cmp dword [ebp + 0x3d4], 6
jne 0x5d3dc0
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 0x12
jmp 0x5d3dfe
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 0x11
jmp 0x5d3dfe
cmp dword [ebp + 0x3d4], 6
jne 0x5d3df0
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 3
jmp 0x5d3dfe
push 0x7d0
push dword [esp + 0x3c]
push ebp
push 1
push 1
call fcn.0048a0e0
add esp, 0x14
inc dword [esp + 0x5c]
mov ax, word [esp + 0x5c]
mov ecx, dword [esp + 0x38]
cmp ax, word [ecx + 0x594]
jb 0x5d2e60
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.004d3f60
add esp, 0x2c
test eax, eax
mov dword [esp + 0xc], eax
je 0x5d42ae
cmp dword [eax + 0x29c], 0
jne 0x5d42ae
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], 4
call fcn.004bc140
cmp dword [esp + 0x38], eax
jne 0x5d3ea7
mov ecx, dword [esp + 0xc]
call fcn.005b7d80
test al, al
je 0x5d3e8e
push 1
call fcn.004bc140
mov ecx, eax
call fcn.00532090
push 0x7d0
push dword [esp + 0x3c]
push dword [esp + 0x14]
push 2
push 1
call fcn.0048a0e0
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 0x5d3f77
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 0x7d18c8
push 1
mov dword [esp + 0x144], 0x3e99999a
call fcn.00564910
fld dword [0x69d390]
fmul dword [0x7d18d8]
add esp, 0x24
push 0
fstp dword [esp + 0x128]
fld dword [0x69d390]
fmul dword [0x7d18dc]
lea eax, [esp + 0x128]
push 0
fstp dword [esp + 0x130]
fld dword [0x69d390]
fmul dword [0x7d18e0]
push 0
push 0
fstp dword [esp + 0x13c]
push dword [0x69d398]
push 0
push eax
push 0x7d18c8
push 0
call fcn.00564910
inc edi
add esp, 0x24
cmp di, 4
jl 0x5d3ec4
mov eax, dword [esp + 0x3c]
movzx ecx, byte [0x7d18eb]
cmp dword [eax], 0xb
jne 0x5d4000
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.0059b570
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 0x7d18c8
push 0x51
mov dword [esp + 0x15c], 0
call fcn.00564910
add esp, 0x24
jmp 0x5d402c
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.0059b570
mov eax, dword [esp + 0xc]
fld dword [eax + 0x204]
fcomp dword [esp + 0x70]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5d4061
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 0x5d4098
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.004c6ae0
mov dword [esp + 0x54], 2
call fcn.004bc140
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 0x5d42ae
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x1f8], 2
je 0x5d42ae
cmp byte [eax + 0x155], 3
je 0x5d412e
call fcn.00649a40
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 0x5d41d0
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x156], 1
jne 0x5d41d0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1a8]
test eax, eax
je 0x5d42ae
mov esi, dword [eax + 0x164]
cmp esi, 0x10
je 0x5d42ae
cmp esi, 8
je 0x5d42ae
cmp esi, 3
je 0x5d42ae
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x155], 3
je 0x5d41ba
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 0x5d42ae
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], 0xc8
mov ebp, dword [eax + 0x1a8]
test ebp, ebp
je 0x5d4251
cmp byte [ebp + 0x160], 2
je 0x5d4251
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 0x5d4230
call fcn.004bc140
mov ecx, ebp
push eax
push 8
call fcn.00521f30
mov eax, dword [0x974b34]
add eax, 0x2710
mov dword [ebp + 0x550], eax
mov dword [ebp + 0x168], 8
jmp 0x5d4239
mov ecx, ebp
push 3
call fcn.005224d0
mov eax, dword [0x974b34]
add eax, 0xc8
mov dword [ebp + 0x534], eax
add dword [esp + 0x48], 0xc8
xor ebp, ebp
jmp 0x5d429f
mov eax, dword [esp + 0xc]
mov edi, dword [eax + ebp*4 + 0x1ac]
test edi, edi
je 0x5d429e
cmp byte [edi + 0x160], 2
je 0x5d429e
mov esi, dword [edi + 0x3d8]
mov al, byte [esi + 0x24]
mov cl, byte [esi + 0x25]
cmp cl, al
jle 0x5d427d
mov ecx, edi
push 3
call fcn.005224d0
mov eax, dword [esp + 0x48]
add eax, dword [0x974b34]
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 0x5d4255
mov eax, dword [esp + 0x3c]
cmp dword [eax], 0xb
jne 0x5d4454
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.004d3f60
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x5d4454
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 0x7d18c8
push 1
mov dword [esp + 0x168], 0x3e99999a
call fcn.00564910
fld dword [0x69d390]
fmul dword [0x7d18d8]
add esp, 0x24
push 0
fstp dword [esp + 0x14c]
fld dword [0x69d390]
fmul dword [0x7d18dc]
lea eax, [esp + 0x14c]
push 0
fstp dword [esp + 0x154]
fld dword [0x69d390]
fmul dword [0x7d18e0]
push 0
push 0
fstp dword [esp + 0x160]
push dword [0x69d398]
push 0
push eax
push 0x7d18c8
push 0
call fcn.00564910
inc ebp
add esp, 0x24
cmp bp, 4
jl 0x5d42f0
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 0x7d18c8
push 0x51
mov dword [esp + 0x180], 0
call fcn.00564910
add esp, 0x24
cmp word [esp + 0x54], 0
jne 0x5d4435
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 0x5d4435
mov eax, dword [esp + 0x38]
mov ecx, esi
mov dword [eax + 0x108], esi
add dword [esp + 0x38], 0x108
push dword [esp + 0x38]
call fcn.004c6ae0
mov al, byte [esi + 0x50]
and al, 7
cmp al, 4
jne 0x5d4454
cmp byte [esi + 0x178], 0x14
jb 0x5d4454
mov ecx, esi
push dword [0x69d544]
call fcn.004e09b0
add esp, 0x160
mov al, 1
pop ebp
pop edi
pop esi
pop ebx
ret 8
fldz
jmp 0x5d3007
fcompp
fstp st(0)
jmp 0x5d3007
fldz
jmp 0x5d3abe
fstp st(0)
jmp 0x5d3abe
fldz
jmp 0x5d3b44
fstp st(0)
jmp 0x5d3d85
fstp st(0)
jmp 0x5d3d85
fstp st(0)
jmp 0x5d3d85
fcompp
fcompp
jmp 0x5d3e06
fcompp
fcompp
jmp 0x5d3e06
fcompp
fcompp
jmp 0x5d3e06
fcompp
fcompp
jmp 0x5d3e06
fcompp
fcompp
jmp 0x5d3e06