Function at 0x5c036a41
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2f4
mov eax, dword [0x5c05aac4]
xor eax, esp
mov dword [esp + 0x2f0], eax
test byte [0x5c05c804], 2
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push ebx
je 0x5c036a9d
call fcn.5c01ce90
cmp dword [ebx + 0x684], 0
jne 0x5c0394c5
mov ecx, ebx
call fcn.5c011121
mov ecx, dword [esp + 0x2fc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.5c0501b0
mov esp, ebp
pop ebp
ret 4
test dword [ebx + 0x1a60], 0x80000
jne 0x5c036a6d
or dword [ebx + 0x225c], 0xffffffff
or dword [ebx + 0x1a44], 0x200000
call fcn.5c01ce90
mov eax, dword [ebx + 0x225c]
xor edi, edi
mov ecx, dword [ebx + 0x1a70]
mov dword [esp + 0x74], edi
mov dword [esp + 0x80], ecx
cmp eax, 0xffffffff
je 0x5c0394af
mov edx, dword [ebx + 0x1a48]
mov dword [esp + 0x94], edx
mov dword [esp + 0x68], ecx
cmp eax, 2
jbe 0x5c036b19
mov esi, eax
mov ecx, ebx
shr esi, 1
sub dword [ebx + 0x1a54], esi
mov dword [esp + 0x74], esi
lea edx, [esi + esi]
call fcn.5c02b3f9
mov eax, dword [ebx + 0x1a70]
mov dword [esp + 0x68], eax
mov eax, dword [ebx + 0x1cd8]
mov edx, dword [ebx + 0x1a60]
mov dword [esp + 0x54], edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
mov edi, dword [ebx + 0x1a78]
mov ecx, edi
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x1a64]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x178], ecx
mov ecx, 0x8000000
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1a7c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x5c], eax
test ecx, edx
jne 0x5c036bbf
mov edx, dword [ebx + 0x1cc4]
mov esi, dword [ebx + 0x1cc0]
add edx, edi
mov ecx, dword [ebx + 0x1cc8]
add esi, edi
add ecx, edi
mov dword [esp + 0x40], edx
cmp dword [ebx + 0x1a84], 0
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
je 0x5c036c47
mov ecx, dword [ebx + 0x1cbc]
add ecx, edi
jmp 0x5c036c08
mov eax, dword [ebx + 0x1a2c]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x1a34]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x1a90]
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
test dl, 0x10
jne 0x5c036c15
test dword [ebx + 0x1a44], ecx
jne 0x5c036c15
cmp dword [ebx + 0x1a84], 0
je 0x5c036c47
mov eax, dword [ebx + 0x688]
mov ecx, dword [ebx + eax*8 + 0x1a98]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x178], ecx
jmp 0x5c036c47
mov esi, dword [ebx + 0x1a84]
xor ecx, ecx
test esi, esi
je 0x5c036c47
lea edx, [ebx + 0x1a98]
mov eax, dword [edx]
lea edx, [edx + 8]
mov dword [esp + ecx*4 + 0x178], eax
inc ecx
cmp ecx, esi
jb 0x5c036c27
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
or dword [ebx + 0x530], 0xffffffff
and dword [ebx + 0x560], 0
and dword [ebx + 0x5b8], 0
mov eax, dword [ebx + 0x1a44]
fldz
fst dword [esp + 0x58]
test eax, 0x400
je 0x5c036d9e
lea esi, [ebx + 0x514]
lea edi, [ebx + 0x504]
movsd dword es:[edi], dword [esi]
fst dword [ebx + 0x524]
fst dword [ebx + 0x528]
fstp dword [ebx + 0x52c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test edx, 0x10000000
je 0x5c036d98
mov edx, dword [ebx + 0x1a5c]
test dl, 0x40
je 0x5c036d1e
xor edi, edi
mov ecx, eax
cmp dword [ebx + 0x5f8], edi
jne 0x5c036ccb
or ecx, 0x2200
lea esi, [esp + 0x48]
mov dword [ebx + 0x1a44], ecx
mov dword [esp + 0x78], esi
mov eax, ecx
cmp dword [ebx + 0x5f0], edi
jne 0x5c036ce8
or eax, 0x4200
lea ecx, [esp + 0x48]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x60], ecx
cmp dword [ebx + 0x5ec], edi
jne 0x5c036d03
or eax, 0x10200
lea ecx, [esp + 0x48]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x70], ecx
cmp dword [ebx + 0x5f4], edi
jne 0x5c036d1e
or eax, 0x8200
lea ecx, [esp + 0x48]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x64], ecx
test dl, dl
jns 0x5c036d98
cmp dword [ebx + 0x5f8], 1
jne 0x5c036d3e
or eax, 0x2200
lea esi, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x78], esi
cmp dword [ebx + 0x5f0], 1
jne 0x5c036d5a
or eax, 0x4200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x60], ecx
cmp dword [ebx + 0x5ec], 1
jne 0x5c036d76
or eax, 0x10200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x70], ecx
cmp dword [ebx + 0x5f4], 1
mov edi, dword [esp + 0x34]
jne 0x5c036da0
or eax, 0x8200
lea ecx, [esp + 0x4c]
mov dword [ebx + 0x1a44], eax
mov dword [esp + 0x64], ecx
jmp 0x5c036da0
mov edi, dword [esp + 0x34]
jmp 0x5c036da0
fstp st(0)
mov edx, dword [ebx + 0x1a54]
lea eax, [esp + 0x248]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x7c], edx
test edx, edx
je 0x5c03933f
fld1
fstp qword [esp + 0x88]
fld qword [0x5c003160]
fstp qword [esp + 0x98]
mov eax, edi
mov dword [esp + 0x18], 2
lea ecx, [esp + 0x198]
mov dword [esp + 0x28], eax
xor esi, esi
mov dword [esp + 0x14], ecx
or edi, 0xffffffff
push ecx
mov edx, eax
mov ecx, ebx
call fcn.5c02afc0
or esi, eax
and edi, eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x60]
pop ecx
mov ecx, dword [esp + 0x14]
add ecx, 0xb0
mov dword [esp + 0x28], eax
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], ecx
jne 0x5c036df4
or dword [ebx + 0x680], esi
and dword [ebx + 0x684], edi
test edi, edi
jne 0x5c0391b4
mov edx, dword [esp + 0x84]
test edx, esi
jne 0x5c037fd5
inc dword [esp + 0x74]
lea eax, [esp + 0x198]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 2
push ecx
mov edx, eax
mov ecx, ebx
call fcn.5c02b31b
and dword [ebx + 0x5b8], 0
add esp, 4
mov esi, dword [ebx + 0x1a60]
xor edx, edx
test esi, 0x20000000
je 0x5c0370e6
mov eax, dword [esp + 0x34]
fld dword [ebx + 0x444]
mov ecx, dword [ebx + 0x1cb4]
fmul dword [eax]
fld dword [ebx + 0x454]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x464]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x474]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x38]
fstp dword [esp + 0x100]
fld dword [ebx + 0x448]
fmul dword [eax]
fld dword [ebx + 0x458]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x468]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x14]
fstp dword [esp + 0x104]
fld dword [ebx + 0x44c]
fmul dword [eax]
fld dword [ebx + 0x45c]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x46c]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esp + 0x108]
test ecx, ecx
je 0x5c0370dd
fld dword [esp + 0x58]
xor edi, edi
fst dword [esp + 0x28]
fst dword [esp + 0x100]
fst dword [esp + 0x104]
fst dword [esp + 0x108]
fld dword [esp + 0x38]
fst dword [esp + 0x44]
fld dword [esp + 0x14]
fst dword [esp + 0x24]
fld dword [esp + 0x10]
fst dword [esp + 0x18]
fxch st(3)
fst dword [esp + 0x14]
fst dword [esp + 0x38]
fstp dword [esp + 0x10]
test ecx, ecx
je 0x5c037093
mov edx, dword [esp + 0x34]
lea eax, [ebx + 0x2e4]
fxch st(1)
fstp dword [esp + 0x44]
fstp dword [esp + 0x24]
fstp dword [esp + 0x18]
fld dword [edx + edi*4 + 0xc]
inc edi
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x100]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x38]
fstp dword [esp + 0x100]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x104]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0xc]
fstp dword [esp + 0x104]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x108]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x10]
fstp dword [esp + 0x108]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [edx + 4]
fld dword [edx]
fld dword [edx + 8]
fld dword [eax - 0x20]
fmul st(2)
fld dword [eax - 0x10]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x10]
fstp dword [esp + 0x44]
fld dword [eax - 0x1c]
fmul st(2)
fld dword [eax - 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 4]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x14]
fstp dword [esp + 0x24]
fld dword [eax - 0x18]
fmulp st(2)
fld dword [eax - 8]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [eax + 8]
faddp st(1)
fadd dword [eax + 0x18]
add eax, 0x40
fstp dword [esp + 0x18]
cmp edi, ecx
jb 0x5c036fa6
fld dword [esp + 0x38]
mov edx, dword [ebx + 0x5b8]
fstp dword [esp + 0x14]
fld dword [esp + 0xc]
fstp dword [esp + 0x38]
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
jmp 0x5c037099
fstp st(1)
fstp st(0)
fstp st(0)
fld dword [esp + 0x28]
fsubr qword [esp + 0x88]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x14]
fstp dword [esp + 0x100]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x104]
fmul dword [esp + 0x18]
fadd dword [esp + 0x10]
fstp dword [esp + 0x108]
or edx, 1
mov dword [ebx + 0x5b8], edx
test esi, 0x40000000
je 0x5c037351
mov eax, dword [esp + 0x3c]
fld dword [ebx + 0x484]
mov ecx, dword [ebx + 0x1cb4]
fmul dword [eax]
fld dword [ebx + 0x488]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x48c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fstp dword [esp + 0x10c]
fld dword [ebx + 0x494]
fmul dword [eax]
fld dword [ebx + 0x498]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x49c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x38]
fstp dword [esp + 0x110]
fld dword [ebx + 0x4a4]
fmul dword [eax]
fld dword [ebx + 0x4a8]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x4ac]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x114]
test ecx, ecx
je 0x5c03732e
fld dword [esp + 0x58]
xor edx, edx
fst dword [esp + 0x28]
fst dword [esp + 0x10c]
fst dword [esp + 0x110]
fst dword [esp + 0x114]
fld dword [esp + 0x10]
fst dword [esp + 0x18]
fld dword [esp + 0x38]
fst dword [esp + 0x24]
fld dword [esp + 0xc]
fst dword [esp + 0x44]
fxch st(3)
fst dword [esp + 0x10]
fst dword [esp + 0x38]
fstp dword [esp + 0x14]
test ecx, ecx
je 0x5c0372e4
mov edi, dword [esp + 0x34]
lea eax, [ebx + 0x38c]
mov esi, dword [esp + 0x3c]
fxch st(1)
fstp dword [esp + 0x18]
fstp dword [esp + 0x24]
fstp dword [esp + 0x44]
fld dword [edi + edx*4 + 0xc]
inc edx
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x10c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x10]
fstp dword [esp + 0x10c]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x110]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x38]
fstp dword [esp + 0x110]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x114]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x114]
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esi + 4]
fld dword [esi]
fld dword [esi + 8]
fld dword [eax - 8]
fmul st(2)
fld dword [eax - 4]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [eax + 8]
fmul st(2)
fld dword [eax + 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [eax + 0x18]
fmulp st(2)
fld dword [eax + 0x1c]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [eax + 0x20]
add eax, 0x40
faddp st(1)
fstp dword [esp + 0x44]
cmp edx, ecx
jb 0x5c037200
fld dword [esp + 0x10]
mov esi, dword [ebx + 0x1a60]
fstp dword [esp + 0x10]
fld dword [esp + 0x38]
fstp dword [esp + 0x38]
fld dword [esp + 0xc]
fstp dword [esp + 0x14]
jmp 0x5c0372ea
fstp st(1)
fstp st(0)
fstp st(0)
fld dword [esp + 0x28]
fsubr qword [esp + 0x88]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x10]
fstp dword [esp + 0x10c]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x38]
fstp dword [esp + 0x110]
fmul dword [esp + 0x44]
fadd dword [esp + 0x14]
fstp dword [esp + 0x114]
test esi, 0x2000000
je 0x5c037344
lea edx, [esp + 0x10c]
mov ecx, edx
call fcn.5c050908
or dword [ebx + 0x5b8], 2
mov edx, dword [ebx + 0x5b8]
mov ecx, dword [ebx + 0x1a44]
test ecx, 0x400
je 0x5c037914
fld dword [esp + 0x58]
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fst dword [ebx + 0x50c]
fst dword [ebx + 0x524]
fst dword [ebx + 0x528]
fst dword [ebx + 0x52c]
test ecx, 0x200
je 0x5c0373ed
test ecx, 0x10000
je 0x5c0373b1
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5c0373a9
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c0373ab
xor eax, eax
mov dword [ebx + 0x540], eax
test ecx, 0x4000
je 0x5c0373cf
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c0373c7
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c0373c9
xor eax, eax
mov dword [ebx + 0x550], eax
test ecx, 0x8000
je 0x5c0373ed
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c0373e5
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c0373e7
xor eax, eax
mov dword [ebx + 0x570], eax
mov edi, dword [ebx + 0x5c0]
mov esi, ecx
test edi, edi
je 0x5c037439
fstp st(0)
mov esi, dword [edi + 0x80]
lea eax, [esp + 0x100]
push eax
push dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0x3c]
push edi
push ebx
call dword [0x5c05e150]
call esi
mov edi, dword [edi + 0x58]
add esp, 0x14
test edi, edi
jne 0x5c0373fb
mov ecx, dword [ebx + 0x1a44]
mov esi, ecx
mov edx, dword [ebx + 0x5b8]
fld dword [esp + 0x58]
test ecx, 0x12000
je 0x5c037684
test byte [ebx + 0x5b8], 8
jne 0x5c037462
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fstp dword [ebx + 0x50c]
jmp 0x5c037464
fstp st(0)
test ecx, 0x10000
je 0x5c037528
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5c03747e
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c037480
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c03749a
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fmul dword [ebx + 0x554]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0374ce
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x558]
movzx eax, cl
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0374fd
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0x4c]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], edi
jmp 0x5c037568
fld dword [ebx + 0x584]
fmul dword [ebx + 0x544]
mov edi, dword [esp + 0x30]
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fld dword [ebx + 0x588]
fmul dword [ebx + 0x548]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x54c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
test dword [ebx + 0x1a44], 0x2000
je 0x5c03762a
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c037592
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c037594
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0375ae
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fadd dword [ebx + 0x504]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0375dc
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd dword [ebx + 0x508]
movzx eax, cl
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c037605
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], edi
jmp 0x5c037663
fld dword [ebx + 0x5a4]
fld qword [esp + 0x98]
fmul st(1), st(0)
fld dword [ebx + 0x504]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x504]
fld dword [ebx + 0x5a8]
fmul st(1)
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fmul dword [ebx + 0x5ac]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
or dword [ebx + 0x5b8], 8
mov edx, dword [ebx + 0x5b8]
mov esi, dword [ebx + 0x1a44]
jmp 0x5c03768a
mov edi, dword [esp + 0x30]
fstp st(0)
test dl, 8
je 0x5c0377b8
test esi, 0x12000
jne 0x5c0376db
fld dword [ebx + 0x514]
fadd dword [ebx + 0x504]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [ebx + 0x504]
fld dword [ebx + 0x518]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x51c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
jmp 0x5c0376e1
fld dword [ebx + 0x504]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xa0]
fld dword [ebx + 0x508]
mov ecx, dword [esp + 0xa0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xa8]
fld dword [ebx + 0x50c]
mov edx, dword [esp + 0xa8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xb0]
mov esi, dword [esp + 0xb0]
mov eax, 0xff
test ecx, ecx
jns 0x5c037744
xor ecx, ecx
jmp 0x5c03774a
cmp ecx, eax
jle 0x5c03774a
mov ecx, eax
test edx, edx
jns 0x5c037752
xor edx, edx
jmp 0x5c037758
cmp edx, eax
jle 0x5c037758
mov edx, eax
test esi, esi
jns 0x5c037760
xor esi, esi
jmp 0x5c037766
cmp esi, eax
jle 0x5c037766
mov esi, eax
test dword [ebx + 0x1a44], 0x4000
jne 0x5c037782
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c0377a1
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c037790
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c037792
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
mov dword [ebx + 0x530], eax
mov edx, dword [ebx + 0x5b8]
mov esi, dword [ebx + 0x1a44]
jmp 0x5c0377f2
test esi, 0x4000
jne 0x5c0377ce
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c0377ec
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c0377e2
mov eax, dword [eax]
mov ecx, dword [eax]
and ecx, 0xff000000
jmp 0x5c0377e4
xor ecx, ecx
mov eax, dword [ebx + 0x5e8]
add eax, ecx
mov dword [ebx + 0x530], eax
test dl, 4
je 0x5c0378be
fld dword [ebx + 0x524]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xb8]
fld dword [ebx + 0x528]
mov ecx, dword [esp + 0xb8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xc0]
fld dword [ebx + 0x52c]
mov edx, dword [esp + 0xc0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xc8]
mov esi, dword [esp + 0xc8]
mov eax, 0xff
test ecx, ecx
jns 0x5c03785c
xor ecx, ecx
jmp 0x5c037862
cmp ecx, eax
jle 0x5c037862
mov ecx, eax
test edx, edx
jns 0x5c03786a
xor edx, edx
jmp 0x5c037870
cmp edx, eax
jle 0x5c037870
mov edx, eax
test esi, esi
jns 0x5c037878
xor esi, esi
jmp 0x5c03787e
cmp esi, eax
jle 0x5c03787e
mov esi, eax
test dword [ebx + 0x1a44], 0x8000
jne 0x5c03789a
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c0378b9
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c0378a8
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c0378aa
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
jmp 0x5c037904
test esi, 0x100000
jne 0x5c03790a
test dword [ebx + 0x1a60], 0x800
jne 0x5c0378df
test byte [ebx + 0x1a5c], 0x80
je 0x5c037902
mov eax, dword [edi]
jmp 0x5c037904
test esi, 0x8000
jne 0x5c0378ef
mov eax, dword [ebx + 0x5bc]
jmp 0x5c037904
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c037902
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c037904
xor eax, eax
mov dword [ebx + 0x560], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
jmp 0x5c03794f
test byte [ebx + 0x1a5c], 0xc0
mov eax, ecx
mov edx, ecx
je 0x5c03794f
test byte [ebx + 0x1a5c], 0x40
je 0x5c037936
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [ebx + 0x530], eax
test byte [ebx + 0x1a5c], 0x80
mov eax, ecx
je 0x5c03794f
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [ebx + 0x560], eax
mov eax, ecx
test eax, 0x100
je 0x5c037972
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x100]
push eax
mov ecx, ebx
call fcn.5c01a3e0
mov eax, dword [ebx + 0x1a44]
mov edx, eax
pop ecx
mov esi, dword [esp + 0x68]
test eax, eax
js 0x5c037991
mov ecx, dword [ebx + 0x1cd0]
mov eax, dword [ebx + 0x530]
mov dword [esi + ecx], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
test eax, 0x100000
jne 0x5c0379ad
mov ecx, dword [ebx + 0x1cd4]
mov eax, dword [ebx + 0x560]
mov dword [esi + ecx], eax
mov edx, dword [ebx + 0x1a44]
mov edi, dword [ebx + 0x1ccc]
and edx, 0x10000000
mov eax, dword [ebx + 0x1a60]
add edi, esi
mov dword [esp + 0x18], edi
test eax, 0x8000000
je 0x5c037ceb
test edx, edx
jne 0x5c037c6a
test dword [esp + 0x6c], 0x200000
jne 0x5c037c61
test eax, 0x4010000
jne 0x5c037a3f
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [ebx + 0x1a88], eax
jbe 0x5c037c6a
lea ecx, [ebx + 0x1ad8]
mov dword [esp + 0x38], ecx
mov esi, dword [ecx]
push esi
push dword [esp + eax*4 + 0x17c]
push edi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x38]
add edi, esi
inc eax
add ecx, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x38], ecx
cmp eax, dword [ebx + 0x1a88]
jb 0x5c037a09
jmp 0x5c037c6a
test eax, 0x10000
jne 0x5c037ad8
xor ecx, ecx
mov dword [esp + 0x10], ecx
cmp dword [ebx + 0x1a88], ecx
jbe 0x5c037c6a
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x38], eax
mov edx, dword [eax - 0x20]
mov esi, dword [eax]
mov eax, dword [eax + 0x138]
mov ecx, dword [esp + ecx*4 + 0x178]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x5c037a8e
push edx
push ecx
push edi
call sub.msvcrt.dll_memcpy
jmp 0x5c037ab0
push dword [esp + 0xc]
mov eax, edx
shr esi, 2
shr eax, 2
push edi
push ecx
lea eax, [esi + eax*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add edi, dword [esp + 0x14]
inc ecx
mov eax, dword [esp + 0x38]
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], eax
cmp ecx, dword [ebx + 0x1a88]
jb 0x5c037a66
jmp 0x5c037c6a
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c037c6a
lea eax, [ebx + 0x1ad8]
lea esi, [ebx + 0x1b40]
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], esi
mov eax, dword [esi + 8]
test eax, eax
jne 0x5c037b14
mov eax, dword [esi - 0x14]
mov ecx, dword [esp + eax*4 + 0x178]
jmp 0x5c037bfe
cmp eax, 0x20000
jne 0x5c037b27
lea ecx, [esp + 0x100]
jmp 0x5c037bfe
cmp eax, 0x10000
jne 0x5c037b3a
lea ecx, [esp + 0x10c]
jmp 0x5c037bfe
test dword [ebx + 0x1a60], 0x1000000
je 0x5c037be4
lea esi, [esp + 0x100]
lea edi, [esp + 0x118]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x118]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c050908
fld dword [esp + 0x11c]
fld dword [esp + 0x110]
fld dword [esp + 0x118]
fld dword [esp + 0x10c]
fld dword [esp + 0x120]
fld dword [esp + 0x114]
fld st(5)
mov edi, dword [esp + 0x18]
fmul st(5)
fld st(4)
mov esi, dword [esp + 0x24]
fmul st(4)
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld st(0)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x148]
fld st(2)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x14c]
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x150]
jmp 0x5c037bf7
lea edx, [esp + 0x148]
lea ecx, [esp + 0x10c]
call fcn.5c01a3b3
lea ecx, [esp + 0x148]
cmp dword [esi], 0
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
je 0x5c037c2b
push dword [esi]
mov eax, dword [esi + 4]
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x30]
jmp 0x5c037c33
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add edi, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x10]
add esi, 0x20
add dword [esp + 0x28], 4
inc ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], esi
cmp ecx, dword [ebx + 0x1c2c]
jb 0x5c037afe
jmp 0x5c037c6a
fld dword [esp + 0x58]
fst dword [edi]
fstp dword [edi + 4]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x34], eax
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c037fae
mov eax, dword [esp + 0x3c]
xor ecx, ecx
add eax, dword [ebx + 0x1a30]
mov edx, dword [esp + 0x40]
add edx, dword [ebx + 0x1a38]
mov esi, dword [ebx + 0x1a84]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
add eax, dword [ebx + 0x1a94]
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
test esi, esi
je 0x5c037fae
lea edx, [ebx + 0x1a9c]
mov eax, dword [edx]
lea edx, [edx + 8]
add dword [esp + ecx*4 + 0x178], eax
inc ecx
cmp ecx, esi
jb 0x5c037cca
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1c], eax
jmp 0x5c037fae
test edx, edx
jne 0x5c037f69
test dword [esp + 0x6c], 0x200000
jne 0x5c037f60
test eax, 0x4010000
jne 0x5c037d20
push dword [ebx + 0x1a8c]
push dword [esp + 0x20]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x5c037f69
test eax, 0x10000
jne 0x5c037dd0
mov edx, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], esi
cmp dword [ebx + 0x1a88], esi
jbe 0x5c037f69
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x14], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov eax, dword [eax + 0x138]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
test eax, eax
je 0x5c037d98
mov eax, dword [esp + 0x10]
push dword [esp + 0xc]
shr ecx, 2
shr eax, 2
push edi
push edx
lea eax, [eax + ecx*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x44]
jmp 0x5c037da0
push ecx
push edx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x34]
add esp, 0xc
add edx, dword [esp + 0x10]
add edi, dword [esp + 0x18]
inc esi
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], eax
cmp esi, dword [ebx + 0x1a88]
jb 0x5c037d4f
jmp 0x5c037f69
and dword [esp + 0x10], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c037f69
lea esi, [ebx + 0x1ad8]
lea eax, [ebx + 0x1b30]
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x5c037e08
mov ecx, dword [eax]
add ecx, dword [esp + 0x1c]
jmp 0x5c037ef8
cmp ecx, 0x20000
jne 0x5c037e1c
lea ecx, [esp + 0x100]
jmp 0x5c037ef8
cmp ecx, 0x10000
jne 0x5c037e30
lea ecx, [esp + 0x10c]
jmp 0x5c037ef8
test dword [ebx + 0x1a60], 0x1000000
je 0x5c037ede
lea esi, [esp + 0x100]
lea edi, [esp + 0x124]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x124]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c050908
fld dword [esp + 0x128]
fld dword [esp + 0x110]
fld dword [esp + 0x124]
fld dword [esp + 0x10c]
fld dword [esp + 0x12c]
fld dword [esp + 0x114]
fld st(5)
mov edi, dword [esp + 0x18]
fmul st(5)
fld st(4)
mov eax, dword [esp + 0x24]
fmul st(4)
mov esi, dword [esp + 0x28]
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld st(0)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x154]
fld st(2)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x158]
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x15c]
jmp 0x5c037ef1
lea edx, [esp + 0x154]
lea ecx, [esp + 0x10c]
call fcn.5c01a3b3
lea ecx, [esp + 0x154]
mov edx, dword [eax + 0x10]
mov esi, dword [esi]
mov dword [esp + 0xc], esi
test edx, edx
je 0x5c037f22
mov eax, dword [eax + 0x14]
push edx
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x18]
jmp 0x5c037f2a
push esi
push ecx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x1c]
add edi, esi
mov esi, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x24]
inc edx
add esi, 4
mov dword [esp + 0x18], edi
add eax, 0x20
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], eax
cmp edx, dword [ebx + 0x1c2c]
jb 0x5c037df6
jmp 0x5c037f69
fld dword [esp + 0x58]
fst dword [edi]
fstp dword [edi + 4]
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x34], ecx
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c037fae
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
add eax, ecx
add dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x30]
add eax, ecx
add edi, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x178], edi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
add ecx, dword [esp + 0x50]
sub dword [esp + 0x20], 1
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x68], ecx
jne 0x5c036e62
jmp 0x5c039330
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5c038018
push eax
lea esi, [eax + eax]
mov ecx, ebx
push esi
push dword [esp + 0x88]
push 2
pop edx
call fcn.5c0212f9
add dword [ebx + 0x1a48], esi
mov ecx, eax
mov eax, dword [esp + 0x74]
add esp, 0xc
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x5c03936e
mov edx, dword [esp + 0x84]
and dword [esp + 0x74], 0
lea ecx, [esp + 0x198]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x38], 2
test dword [ecx + 0x10], edx
jne 0x5c038045
lea eax, [ecx + 0x1c]
mov edx, ecx
push eax
mov ecx, ebx
call fcn.5c02b31b
add esp, 4
and dword [ebx + 0x5b8], 0
xor edx, edx
mov esi, dword [ebx + 0x1a60]
test esi, 0x20000000
je 0x5c0382bc
mov eax, dword [esp + 0x34]
fld dword [ebx + 0x444]
mov ecx, dword [ebx + 0x1cb4]
fmul dword [eax]
fld dword [ebx + 0x454]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x464]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x474]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x54]
fstp dword [esp + 0x100]
fld dword [ebx + 0x448]
fmul dword [eax]
fld dword [ebx + 0x458]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x468]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x478]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x20]
fstp dword [esp + 0x104]
fld dword [ebx + 0x44c]
fmul dword [eax]
fld dword [ebx + 0x45c]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x46c]
fmul dword [eax + 8]
faddp st(1)
fadd dword [ebx + 0x47c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x108]
test ecx, ecx
je 0x5c0382b3
fld dword [esp + 0x58]
xor edi, edi
fst dword [esp + 0x14]
fst dword [esp + 0x100]
fst dword [esp + 0x104]
fst dword [esp + 0x108]
fld dword [esp + 0x54]
fst dword [esp + 0x18]
fld dword [esp + 0x20]
fst dword [esp + 0x24]
fld dword [esp + 0xc]
fst dword [esp + 0x44]
fxch st(3)
fst dword [esp + 0x20]
fst dword [esp + 0x2c]
fstp dword [esp + 0x10]
test ecx, ecx
je 0x5c038269
mov edx, dword [esp + 0x34]
lea eax, [ebx + 0x2e4]
fxch st(1)
fstp dword [esp + 0x18]
fstp dword [esp + 0x24]
fstp dword [esp + 0x44]
fld dword [edx + edi*4 + 0xc]
inc edi
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x100]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x54]
fstp dword [esp + 0x100]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x104]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x2c]
fstp dword [esp + 0x104]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x108]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x108]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [edx + 4]
fld dword [edx]
fld dword [edx + 8]
fld dword [eax - 0x20]
fmul st(2)
fld dword [eax - 0x10]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x10]
fstp dword [esp + 0x18]
fld dword [eax - 0x1c]
fmul st(2)
fld dword [eax - 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 4]
fmul st(2)
faddp st(1)
fadd dword [eax + 0x14]
fstp dword [esp + 0x24]
fld dword [eax - 0x18]
fmulp st(2)
fld dword [eax - 8]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [eax + 8]
faddp st(1)
fadd dword [eax + 0x18]
add eax, 0x40
fstp dword [esp + 0x44]
cmp edi, ecx
jb 0x5c03817c
fld dword [esp + 0x54]
mov edx, dword [ebx + 0x5b8]
fstp dword [esp + 0x20]
fld dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [esp + 0xc]
fstp dword [esp + 0x10]
jmp 0x5c03826f
fstp st(1)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fsubr qword [esp + 0x88]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0x100]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x104]
fmul dword [esp + 0x44]
fadd dword [esp + 0x10]
fstp dword [esp + 0x108]
or edx, 1
mov dword [ebx + 0x5b8], edx
test esi, 0x40000000
je 0x5c038527
mov eax, dword [esp + 0x3c]
fld dword [ebx + 0x484]
mov ecx, dword [ebx + 0x1cb4]
fmul dword [eax]
fld dword [ebx + 0x488]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x48c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x54]
fstp dword [esp + 0x10c]
fld dword [ebx + 0x494]
fmul dword [eax]
fld dword [ebx + 0x498]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x49c]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x20]
fstp dword [esp + 0x110]
fld dword [ebx + 0x4a4]
fmul dword [eax]
fld dword [ebx + 0x4a8]
fmul dword [eax + 4]
faddp st(1)
fld dword [ebx + 0x4ac]
fmul dword [eax + 8]
faddp st(1)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x114]
test ecx, ecx
je 0x5c038504
fld dword [esp + 0x58]
xor edx, edx
fst dword [esp + 0x14]
fst dword [esp + 0x10c]
fst dword [esp + 0x110]
fst dword [esp + 0x114]
fld dword [esp + 0x54]
fst dword [esp + 0x18]
fld dword [esp + 0x20]
fst dword [esp + 0x24]
fld dword [esp + 0xc]
fst dword [esp + 0x44]
fxch st(3)
fst dword [esp + 0x20]
fst dword [esp + 0x2c]
fstp dword [esp + 0x10]
test ecx, ecx
je 0x5c0384ba
mov edi, dword [esp + 0x34]
lea eax, [ebx + 0x38c]
mov esi, dword [esp + 0x3c]
fxch st(1)
fstp dword [esp + 0x18]
fstp dword [esp + 0x24]
fstp dword [esp + 0x44]
fld dword [edi + edx*4 + 0xc]
inc edx
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x10c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x54]
fstp dword [esp + 0x10c]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x110]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0x2c]
fstp dword [esp + 0x110]
fld dword [esp + 0x44]
fmul st(1)
fadd dword [esp + 0x114]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fst dword [esp + 0xc]
fstp dword [esp + 0x114]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esi + 4]
fld dword [esi]
fld dword [esi + 8]
fld dword [eax - 8]
fmul st(2)
fld dword [eax - 4]
fmul st(4)
faddp st(1)
fld dword [eax]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x18]
fld dword [eax + 8]
fmul st(2)
fld dword [eax + 0xc]
fmul st(4)
faddp st(1)
fld dword [eax + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [eax + 0x18]
fmulp st(2)
fld dword [eax + 0x1c]
fmulp st(3)
fxch st(1)
faddp st(2)
fmul dword [eax + 0x20]
add eax, 0x40
faddp st(1)
fstp dword [esp + 0x44]
cmp edx, ecx
jb 0x5c0383d6
fld dword [esp + 0x54]
mov esi, dword [ebx + 0x1a60]
fstp dword [esp + 0x20]
fld dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [esp + 0xc]
fstp dword [esp + 0x10]
jmp 0x5c0384c0
fstp st(1)
fstp st(0)
fstp st(0)
fld dword [esp + 0x14]
fsubr qword [esp + 0x88]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld dword [esp + 0x18]
fmul st(1)
fadd dword [esp + 0x20]
fstp dword [esp + 0x10c]
fld dword [esp + 0x24]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x110]
fmul dword [esp + 0x44]
fadd dword [esp + 0x10]
fstp dword [esp + 0x114]
test esi, 0x2000000
je 0x5c03851a
lea edx, [esp + 0x10c]
mov ecx, edx
call fcn.5c050908
or dword [ebx + 0x5b8], 2
mov edx, dword [ebx + 0x5b8]
mov ecx, dword [ebx + 0x1a44]
test ecx, 0x400
je 0x5c038aea
fld dword [esp + 0x58]
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fst dword [ebx + 0x50c]
fst dword [ebx + 0x524]
fst dword [ebx + 0x528]
fst dword [ebx + 0x52c]
test ecx, 0x200
je 0x5c0385c3
test ecx, 0x10000
je 0x5c038587
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5c03857f
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c038581
xor eax, eax
mov dword [ebx + 0x540], eax
test ecx, 0x4000
je 0x5c0385a5
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c03859d
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c03859f
xor eax, eax
mov dword [ebx + 0x550], eax
test ecx, 0x8000
je 0x5c0385c3
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c0385bb
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c0385bd
xor eax, eax
mov dword [ebx + 0x570], eax
mov edi, dword [ebx + 0x5c0]
mov esi, ecx
test edi, edi
je 0x5c03860f
fstp st(0)
mov esi, dword [edi + 0x80]
lea eax, [esp + 0x100]
push eax
push dword [esp + 0x40]
mov ecx, esi
push dword [esp + 0x3c]
push edi
push ebx
call dword [0x5c05e150]
call esi
mov edi, dword [edi + 0x58]
add esp, 0x14
test edi, edi
jne 0x5c0385d1
mov ecx, dword [ebx + 0x1a44]
mov esi, ecx
mov edx, dword [ebx + 0x5b8]
fld dword [esp + 0x58]
test ecx, 0x12000
je 0x5c03885a
test byte [ebx + 0x5b8], 8
jne 0x5c038638
fst dword [ebx + 0x504]
fst dword [ebx + 0x508]
fstp dword [ebx + 0x50c]
jmp 0x5c03863a
fstp st(0)
test ecx, 0x10000
je 0x5c0386fe
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5c038654
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c038656
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c038670
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fmul dword [ebx + 0x554]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0386a4
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fmul dword [ebx + 0x558]
movzx eax, cl
mov dword [esp + 0xc], eax
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0386d3
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0x4c]
fmul dword [ebx + 0x55c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], edi
jmp 0x5c03873e
fld dword [ebx + 0x584]
fmul dword [ebx + 0x544]
mov edi, dword [esp + 0x30]
fadd dword [ebx + 0x504]
fstp dword [ebx + 0x504]
fld dword [ebx + 0x588]
fmul dword [ebx + 0x548]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x54c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
test dword [ebx + 0x1a44], 0x2000
je 0x5c038800
mov eax, dword [esp + 0x78]
test eax, eax
je 0x5c038768
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c03876a
xor ecx, ecx
mov eax, ecx
shr eax, 0x10
movzx eax, al
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jns 0x5c038784
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, ecx
fadd dword [ebx + 0x504]
shr eax, 8
movzx eax, al
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x504]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0387b2
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fadd dword [ebx + 0x508]
movzx eax, cl
mov dword [esp + 0xc], eax
fstp dword [ebx + 0x508]
fild dword [esp + 0xc]
test eax, eax
jns 0x5c0387db
fadd dword [0x5c0031d0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], edi
jmp 0x5c038839
fld dword [ebx + 0x5a4]
fld qword [esp + 0x98]
fmul st(1), st(0)
fld dword [ebx + 0x504]
faddp st(2)
fxch st(1)
fstp dword [ebx + 0x504]
fld dword [ebx + 0x5a8]
fmul st(1)
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fmul dword [ebx + 0x5ac]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
or dword [ebx + 0x5b8], 8
mov edx, dword [ebx + 0x5b8]
mov esi, dword [ebx + 0x1a44]
jmp 0x5c038860
mov edi, dword [esp + 0x30]
fstp st(0)
test dl, 8
je 0x5c03898e
test esi, 0x12000
jne 0x5c0388b1
fld dword [ebx + 0x514]
fadd dword [ebx + 0x504]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [ebx + 0x504]
fld dword [ebx + 0x518]
fadd dword [ebx + 0x508]
fstp dword [ebx + 0x508]
fld dword [ebx + 0x51c]
fadd dword [ebx + 0x50c]
fstp dword [ebx + 0x50c]
jmp 0x5c0388b7
fld dword [ebx + 0x504]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xd0]
fld dword [ebx + 0x508]
mov ecx, dword [esp + 0xd0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xd8]
fld dword [ebx + 0x50c]
mov edx, dword [esp + 0xd8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xe0]
mov esi, dword [esp + 0xe0]
mov eax, 0xff
test ecx, ecx
jns 0x5c03891a
xor ecx, ecx
jmp 0x5c038920
cmp ecx, eax
jle 0x5c038920
mov ecx, eax
test edx, edx
jns 0x5c038928
xor edx, edx
jmp 0x5c03892e
cmp edx, eax
jle 0x5c03892e
mov edx, eax
test esi, esi
jns 0x5c038936
xor esi, esi
jmp 0x5c03893c
cmp esi, eax
jle 0x5c03893c
mov esi, eax
test dword [ebx + 0x1a44], 0x4000
jne 0x5c038958
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x510]
jmp 0x5c038977
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c038966
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c038968
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
mov dword [ebx + 0x530], eax
mov edx, dword [ebx + 0x5b8]
mov esi, dword [ebx + 0x1a44]
jmp 0x5c0389c8
test esi, 0x4000
jne 0x5c0389a4
mov eax, dword [ebx + 0x5e8]
add eax, dword [ebx + 0x510]
jmp 0x5c0389c2
mov eax, dword [esp + 0x60]
test eax, eax
je 0x5c0389b8
mov eax, dword [eax]
mov ecx, dword [eax]
and ecx, 0xff000000
jmp 0x5c0389ba
xor ecx, ecx
mov eax, dword [ebx + 0x5e8]
add eax, ecx
mov dword [ebx + 0x530], eax
test dl, 4
je 0x5c038a94
fld dword [ebx + 0x524]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xe8]
fld dword [ebx + 0x528]
mov ecx, dword [esp + 0xe8]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf0]
fld dword [ebx + 0x52c]
mov edx, dword [esp + 0xf0]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fistp qword [esp + 0xf8]
mov esi, dword [esp + 0xf8]
mov eax, 0xff
test ecx, ecx
jns 0x5c038a32
xor ecx, ecx
jmp 0x5c038a38
cmp ecx, eax
jle 0x5c038a38
mov ecx, eax
test edx, edx
jns 0x5c038a40
xor edx, edx
jmp 0x5c038a46
cmp edx, eax
jle 0x5c038a46
mov edx, eax
test esi, esi
jns 0x5c038a4e
xor esi, esi
jmp 0x5c038a54
cmp esi, eax
jle 0x5c038a54
mov esi, eax
test dword [ebx + 0x1a44], 0x8000
jne 0x5c038a70
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [ebx + 0x5bc]
jmp 0x5c038a8f
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c038a7e
mov eax, dword [eax]
mov eax, dword [eax]
jmp 0x5c038a80
xor eax, eax
shl ecx, 8
and eax, 0xff000000
add ecx, edx
shl ecx, 8
add ecx, eax
lea eax, [ecx + esi]
jmp 0x5c038ada
test esi, 0x100000
jne 0x5c038ae0
test dword [ebx + 0x1a60], 0x800
jne 0x5c038ab5
test byte [ebx + 0x1a5c], 0x80
je 0x5c038ad8
mov eax, dword [edi]
jmp 0x5c038ada
test esi, 0x8000
jne 0x5c038ac5
mov eax, dword [ebx + 0x5bc]
jmp 0x5c038ada
mov eax, dword [esp + 0x64]
test eax, eax
je 0x5c038ad8
mov eax, dword [eax]
mov eax, dword [eax]
and eax, 0xff000000
jmp 0x5c038ada
xor eax, eax
mov dword [ebx + 0x560], eax
mov eax, dword [ebx + 0x1a44]
mov edx, eax
jmp 0x5c038b25
test byte [ebx + 0x1a5c], 0xc0
mov eax, ecx
mov edx, ecx
je 0x5c038b25
test byte [ebx + 0x1a5c], 0x40
je 0x5c038b0c
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [ebx + 0x530], eax
test byte [ebx + 0x1a5c], 0x80
mov eax, ecx
je 0x5c038b25
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [ebx + 0x560], eax
mov eax, ecx
test eax, 0x100
je 0x5c038b46
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x100]
push eax
mov ecx, ebx
call fcn.5c01a3e0
mov edx, dword [ebx + 0x1a44]
pop ecx
mov ecx, dword [ebx + 0x1a6c]
mov esi, dword [esp + 0x28]
test cl, 0x40
je 0x5c038b5e
mov eax, dword [ebx + 0x530]
mov dword [esi + 0x14], eax
test cl, cl
jns 0x5c038b6b
mov eax, dword [ebx + 0x560]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x1a60]
and edx, 0x10000000
test eax, 0x8000000
je 0x5c038ea0
test edx, edx
jne 0x5c038e23
test dword [esp + 0x6c], 0x200000
lea edi, [esi + 0x30]
mov dword [esp + 0x20], edi
jne 0x5c038e1a
test eax, 0x4010000
jne 0x5c038bf8
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [ebx + 0x1a88], eax
jbe 0x5c038e23
lea ecx, [ebx + 0x1ad8]
mov dword [esp + 0x2c], ecx
mov esi, dword [ecx]
push esi
push dword [esp + eax*4 + 0x17c]
push edi
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
add edi, esi
inc eax
add ecx, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
cmp eax, dword [ebx + 0x1a88]
jb 0x5c038bc2
jmp 0x5c038e23
test eax, 0x10000
jne 0x5c038c91
xor ecx, ecx
mov dword [esp + 0x20], ecx
cmp dword [ebx + 0x1a88], ecx
jbe 0x5c038e23
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x2c], eax
mov edx, dword [eax - 0x20]
mov esi, dword [eax]
mov eax, dword [eax + 0x138]
mov ecx, dword [esp + ecx*4 + 0x178]
mov dword [esp + 0x54], edx
mov dword [esp + 0xc], eax
test eax, eax
jne 0x5c038c47
push edx
push ecx
push edi
call sub.msvcrt.dll_memcpy
jmp 0x5c038c69
push dword [esp + 0xc]
mov eax, edx
shr esi, 2
shr eax, 2
push edi
push ecx
lea eax, [esi + eax*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov ecx, dword [esp + 0x2c]
add esp, 0xc
add edi, dword [esp + 0x54]
inc ecx
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
cmp ecx, dword [ebx + 0x1a88]
jb 0x5c038c1f
jmp 0x5c038e23
and dword [esp + 0x2c], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c038e23
lea eax, [ebx + 0x1ad8]
lea esi, [ebx + 0x1b40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
mov eax, dword [esi + 8]
test eax, eax
jne 0x5c038ccd
mov eax, dword [esi - 0x14]
mov ecx, dword [esp + eax*4 + 0x178]
jmp 0x5c038db7
cmp eax, 0x20000
jne 0x5c038ce0
lea ecx, [esp + 0x100]
jmp 0x5c038db7
cmp eax, 0x10000
jne 0x5c038cf3
lea ecx, [esp + 0x10c]
jmp 0x5c038db7
test dword [ebx + 0x1a60], 0x1000000
je 0x5c038d9d
lea esi, [esp + 0x100]
lea edi, [esp + 0x130]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x130]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c050908
fld dword [esp + 0x134]
fld dword [esp + 0x110]
fld dword [esp + 0x130]
fld dword [esp + 0x10c]
fld dword [esp + 0x138]
fld dword [esp + 0x114]
fld st(5)
mov edi, dword [esp + 0x20]
fmul st(5)
fld st(4)
mov esi, dword [esp + 0x18]
fmul st(4)
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld st(0)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x160]
fld st(2)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x164]
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x168]
jmp 0x5c038db0
lea edx, [esp + 0x160]
lea ecx, [esp + 0x10c]
call fcn.5c01a3b3
lea ecx, [esp + 0x160]
cmp dword [esi], 0
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
je 0x5c038de4
push dword [esi]
mov eax, dword [esi + 4]
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x24]
jmp 0x5c038dec
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add edi, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
add esi, 0x20
add dword [esp + 0x14], 4
inc ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], esi
cmp ecx, dword [ebx + 0x1c2c]
jb 0x5c038cb7
jmp 0x5c038e23
fld dword [esp + 0x58]
fst dword [edi]
fstp dword [edi + 4]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x34], eax
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c03916a
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
add edi, dword [ebx + 0x1a38]
add edx, dword [ebx + 0x1a94]
add eax, dword [ebx + 0x1a30]
mov esi, dword [ebx + 0x1a84]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x4c], edx
test esi, esi
je 0x5c03916a
lea edx, [ebx + 0x1a9c]
mov eax, dword [edx]
lea edx, [edx + 8]
add dword [esp + ecx*4 + 0x178], eax
inc ecx
cmp ecx, esi
jb 0x5c038e83
mov eax, dword [esp + 0x178]
jmp 0x5c039166
test edx, edx
jne 0x5c039125
test dword [esp + 0x6c], 0x200000
lea edi, [esi + 0x30]
mov dword [esp + 0x20], edi
jne 0x5c03911c
test eax, 0x4010000
jne 0x5c038edc
push dword [ebx + 0x1a8c]
push dword [esp + 0x20]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x5c039125
test eax, 0x10000
jne 0x5c038f8c
mov eax, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], esi
cmp dword [ebx + 0x1a88], esi
jbe 0x5c039129
lea eax, [ebx + 0x1af8]
mov dword [esp + 0x10], eax
mov edx, dword [eax]
mov ecx, dword [eax - 0x20]
mov eax, dword [eax + 0x138]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
mov dword [esp + 0xc], eax
test eax, eax
je 0x5c038f54
mov eax, dword [esp + 0x20]
push dword [esp + 0xc]
shr ecx, 2
shr eax, 2
push edi
push edx
lea eax, [eax + ecx*4]
mov esi, dword [eax*4 + 0x5c00169c]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x38]
jmp 0x5c038f5c
push ecx
push edx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x20]
add esp, 0xc
add edx, dword [esp + 0x20]
add edi, dword [esp + 0x54]
inc esi
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x10], eax
cmp esi, dword [ebx + 0x1a88]
jb 0x5c038f0b
jmp 0x5c039125
and dword [esp + 0x2c], 0
cmp dword [ebx + 0x1c2c], 0
jbe 0x5c039125
lea esi, [ebx + 0x1ad8]
lea eax, [ebx + 0x1b30]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov ecx, dword [eax + 0x18]
test ecx, ecx
jne 0x5c038fc4
mov ecx, dword [eax]
add ecx, dword [esp + 0x1c]
jmp 0x5c0390b4
cmp ecx, 0x20000
jne 0x5c038fd8
lea ecx, [esp + 0x100]
jmp 0x5c0390b4
cmp ecx, 0x10000
jne 0x5c038fec
lea ecx, [esp + 0x10c]
jmp 0x5c0390b4
test dword [ebx + 0x1a60], 0x1000000
je 0x5c03909a
lea esi, [esp + 0x100]
lea edi, [esp + 0x13c]
movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x13c]
mov ecx, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.5c068cbb
fld dword [esp + 0x140]
fld dword [esp + 0x110]
fld dword [esp + 0x13c]
fld dword [esp + 0x10c]
fld dword [esp + 0x144]
fld dword [esp + 0x114]
fld st(5)
mov edi, dword [esp + 0x20]
fmul st(5)
fld st(4)
mov eax, dword [esp + 0x18]
fmul st(4)
mov esi, dword [esp + 0x14]
faddp st(1)
fld st(2)
fmul st(2)
faddp st(1)
fadd st(0), st(0)
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fld st(0)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x16c]
fld st(2)
fmulp st(4)
fxch st(4)
fsubrp st(3)
fxch st(2)
fstp dword [esp + 0x170]
fmulp st(1)
fsubp st(1)
fstp dword [esp + 0x174]
jmp 0x5c0390ad
lea edx, [esp + 0x16c]
lea ecx, [esp + 0x10c]
call fcn.5c01a3b3
lea ecx, [esp + 0x16c]
mov edx, dword [eax + 0x10]
mov esi, dword [esi]
mov dword [esp + 0xc], esi
test edx, edx
je 0x5c0390de
mov eax, dword [eax + 0x14]
push edx
push edi
push ecx
mov esi, dword [eax*4 + 0x5c0016b0]
mov ecx, esi
call dword [0x5c05e150]
call esi
mov esi, dword [esp + 0x18]
jmp 0x5c0390e6
push esi
push ecx
push edi
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x38]
add edi, esi
mov esi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esp + 0x18]
inc edx
add esi, 4
mov dword [esp + 0x20], edi
add eax, 0x20
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
cmp edx, dword [ebx + 0x1c2c]
jb 0x5c038fb2
jmp 0x5c039125
fld dword [esp + 0x58]
fst dword [edi]
fstp dword [esi + 0x34]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
add dword [esp + 0x34], edx
test dword [ebx + 0x1a44], 0x40000000
jne 0x5c03916a
mov ecx, dword [esp + 0x40]
add dword [esp + 0x3c], edx
add ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
add ecx, edx
add eax, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x178], eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x84]
add ecx, 0xb0
sub dword [esp + 0x38], 1
mov dword [esp + 0x28], ecx
jne 0x5c038030
lea eax, [esp + 0x248]
mov ecx, ebx
push eax
lea edx, [esp + 0x19c]
call fcn.5c021500
pop ecx
mov ecx, eax
mov dword [esp + 0x54], ecx
test ecx, ecx
jne 0x5c03936e
jmp 0x5c039330
mov edx, dword [ebx + 0x1a60]
mov eax, dword [esp + 0x34]
and edx, 0x8000000
mov edi, dword [esp + 0x5c]
add eax, edi
mov esi, dword [ebx + 0x1a44]
mov dword [esp + 0xc], eax
and esi, 0x40000000
jne 0x5c039281
test edx, edx
je 0x5c03924c
mov ecx, dword [esp + 0x3c]
add ecx, dword [ebx + 0x1a30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x40]
add ecx, dword [ebx + 0x1a38]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
add ecx, dword [ebx + 0x1a94]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
xor ecx, ecx
cmp dword [ebx + 0x1a84], ecx
jbe 0x5c039281
lea edi, [ebx + 0x1a9c]
mov eax, dword [edi]
lea edi, [edi + 8]
add dword [esp + ecx*4 + 0x178], eax
inc ecx
cmp ecx, dword [ebx + 0x1a84]
jb 0x5c039226
mov edi, dword [esp + 0x178]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], edi
jmp 0x5c039285
mov ecx, dword [esp + 0x40]
add dword [esp + 0x3c], edi
add ecx, edi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x30]
add ecx, edi
mov edi, dword [esp + 0x1c]
add edi, dword [esp + 0x5c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x178], edi
jmp 0x5c039285
mov edi, dword [esp + 0x1c]
add eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
test edx, edx
je 0x5c0392fb
test esi, esi
jne 0x5c039330
add ecx, dword [ebx + 0x1a94]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
add eax, dword [ebx + 0x1a38]
add edx, dword [ebx + 0x1a30]
mov esi, dword [ebx + 0x1a84]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
test esi, esi
je 0x5c039330
lea edx, [ebx + 0x1a9c]
mov eax, dword [edx]
lea edx, [edx + 8]
add dword [esp + ecx*4 + 0x178], eax
inc ecx
cmp ecx, esi
jb 0x5c0392dd
mov eax, dword [esp + 0x178]
mov dword [esp + 0x1c], eax
jmp 0x5c039330
mov dword [esp + 0x34], eax
test esi, esi
jne 0x5c039330
mov edx, dword [esp + 0x5c]
add ecx, edx
mov eax, dword [esp + 0x40]
add dword [esp + 0x3c], edx
add eax, edx
add edi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x178], edi
sub dword [esp + 0x7c], 1
mov edi, dword [esp + 0x34]
jne 0x5c036dd6
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5c03936a
push eax
lea esi, [eax + eax]
mov ecx, ebx
push esi
push dword [esp + 0x88]
push 2
pop edx
call fcn.5c0212f9
add esp, 0xc
mov ecx, eax
add dword [ebx + 0x1a48], esi
jmp 0x5c03936e
mov ecx, dword [esp + 0x54]
test dword [ebx + 0x1a60], 0x100000
jne 0x5c039482
fld dword [ebx + 0x68c]
fld dword [ebx + 0x1b24]
fadd st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fst dword [esp + 0x54]
fstp dword [ebx + 0x1b24]
fld dword [ebx + 0x1b28]
fadd st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fst dword [esp + 0x7c]
fstp dword [ebx + 0x1b28]
fld dword [ebx + 0x1b1c]
fsub st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fst dword [ebx + 0x1b1c]
fld dword [ebx + 0x1b20]
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fst dword [esp + 0xc]
fstp dword [ebx + 0x1b20]
fld dword [ebx + 0x624]
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c03940b
fstp dword [ebx + 0x1b1c]
jmp 0x5c03940d
fstp st(0)
fld dword [ebx + 0x628]
fstp dword [esp + 0x50]
fld dword [esp + 0xc]
fld dword [esp + 0x50]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x5c039432
fstp dword [ebx + 0x1b20]
jmp 0x5c039434
fstp st(0)
fld dword [ebx + 0x62c]
fstp dword [esp + 0x50]
fld dword [esp + 0x54]
fld dword [esp + 0x50]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c039459
fstp dword [ebx + 0x1b24]
jmp 0x5c03945b
fstp st(0)
fld dword [ebx + 0x630]
fstp dword [esp + 0x50]
fld dword [esp + 0x7c]
fld dword [esp + 0x50]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5c039480
fstp dword [ebx + 0x1b28]
jmp 0x5c039482
fstp st(0)
mov eax, dword [ebx + 0x1a48]
mov dword [ebx + 0x1a58], eax
mov eax, dword [ebx + 0x1a48]
sub eax, dword [esp + 0x94]
imul eax, dword [ebx + 0x1a64]
mov dword [ebx + 0x1a74], eax
mov eax, ecx
jmp 0x5c036a86
and dword [ebx + 0x1a44], 0xffdfffff
cmp dword [ebx + 0x684], edi
je 0x5c036a7f
xor eax, eax
jmp 0x5c036a86