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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x100a80a4]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0xc4], ebx
mov eax, dword [ebx + 0x30]
test eax, 0x200000
je 0x10078d74
mov ecx, dword [ebx + 0x24]
fld dword [ecx + 0xf68c]
fld dword [ecx + 0xf690]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fld st(0)
fucom st(2)
fnstsw ax
test ah, 0x44
jp 0x10078cf6
fstp st(0)
fstp st(0)
fstp st(0)
fldz
fst dword [esp + 0x10]
jmp 0x10078d16
fsubrp st(2)
fld qword [0x1000b6f8]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x14]
fchs
fld dword [esp + 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x10]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fstp dword [ecx + 0x90]
fld dword [esp + 0x10]
fstp dword [ecx + 0x94]
mov eax, dword [ecx + 0xf638]
cmp eax, 0xa
ja 0x10078d3e
mov eax, 0xa
cmp dword [ecx + 0xf63c], 9
mov dword [ecx + 0xf638], eax
jbe 0x10078d57
mov dword [ecx + 0xf63c], 9
cmp dword [ecx + 0xf640], 0xa
jae 0x10078d6a
mov dword [ecx + 0xf640], 0xa
and dword [ebx + 0x30], 0xffdfffff
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x18]
test cl, 4
jne 0x10079683
test al, 0x10
je 0x1007914d
fld dword [ebx + 0x728]
fld dword [ebx + 0x72c]
fmul dword [ebx + 0x578]
fld dword [ebx + 0x568]
fmul st(2)
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [ebx + 0x730]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [ebx + 0x734]
faddp st(1)
fstp dword [ebx + 0x628]
fld dword [ebx + 0x57c]
fmul dword [ebx + 0x72c]
fld dword [ebx + 0x56c]
fmulp st(2)
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x730]
faddp st(1)
fld dword [ebx + 0x734]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [ebx + 0x62c]
fld dword [ebx + 0x728]
fmul dword [ebx + 0x570]
fld dword [ebx + 0x580]
fmul dword [ebx + 0x72c]
faddp st(1)
fld dword [ebx + 0x730]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x734]
fmul dword [ebx + 0x5a0]
faddp st(1)
fstp dword [ebx + 0x630]
fld dword [ebx + 0x584]
fmul dword [ebx + 0x72c]
fld dword [ebx + 0x728]
fmul dword [ebx + 0x574]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [ebx + 0x730]
faddp st(1)
fld dword [ebx + 0x734]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [ebx + 0x634]
fld dword [ebx + 0x568]
fmul dword [ebx + 0x738]
fld dword [ebx + 0x73c]
fmul dword [ebx + 0x578]
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [ebx + 0x740]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [ebx + 0x744]
faddp st(1)
fstp dword [ebx + 0x638]
fld dword [ebx + 0x738]
fmul dword [ebx + 0x56c]
fld dword [ebx + 0x57c]
fmul dword [ebx + 0x73c]
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [ebx + 0x740]
faddp st(1)
fld dword [ebx + 0x744]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [ebx + 0x63c]
fld dword [ebx + 0x73c]
fmul dword [ebx + 0x580]
fld dword [ebx + 0x738]
fmul dword [ebx + 0x570]
faddp st(1)
fld dword [ebx + 0x740]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x5a0]
fmul dword [ebx + 0x744]
faddp st(1)
fstp dword [ebx + 0x640]
fld dword [ebx + 0x738]
fmul dword [ebx + 0x574]
fld dword [ebx + 0x584]
fmul dword [ebx + 0x73c]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [ebx + 0x740]
faddp st(1)
fld dword [ebx + 0x744]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [ebx + 0x644]
fld dword [ebx + 0x74c]
fmul dword [ebx + 0x578]
fld dword [ebx + 0x568]
fmul dword [ebx + 0x748]
faddp st(1)
fld dword [ebx + 0x750]
fmul dword [ebx + 0x588]
faddp st(1)
fld dword [ebx + 0x754]
fmul dword [ebx + 0x598]
faddp st(1)
fstp dword [ebx + 0x648]
fld dword [ebx + 0x57c]
fmul dword [ebx + 0x74c]
fld dword [ebx + 0x748]
fmul dword [ebx + 0x56c]
faddp st(1)
fld dword [ebx + 0x750]
fmul dword [ebx + 0x58c]
faddp st(1)
fld dword [ebx + 0x754]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [ebx + 0x64c]
fld dword [ebx + 0x74c]
fmul dword [ebx + 0x580]
fld dword [ebx + 0x570]
fmul dword [ebx + 0x748]
faddp st(1)
fld dword [ebx + 0x750]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x754]
fmul dword [ebx + 0x5a0]
faddp st(1)
fstp dword [ebx + 0x650]
fld dword [ebx + 0x584]
fmul dword [ebx + 0x74c]
fld dword [ebx + 0x748]
fmul dword [ebx + 0x574]
faddp st(1)
fld dword [ebx + 0x750]
fmul dword [ebx + 0x594]
faddp st(1)
fld dword [ebx + 0x754]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [ebx + 0x654]
fld dword [ebx + 0x568]
fmul dword [ebx + 0x758]
fld dword [ebx + 0x75c]
fmul dword [ebx + 0x578]
faddp st(1)
fld dword [ebx + 0x760]
fmul dword [ebx + 0x588]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [ebx + 0x764]
faddp st(1)
fstp dword [ebx + 0x658]
fld dword [ebx + 0x57c]
fmul dword [ebx + 0x75c]
fld dword [ebx + 0x758]
fmul dword [ebx + 0x56c]
faddp st(1)
fld dword [ebx + 0x760]
fmul dword [ebx + 0x58c]
faddp st(1)
fld dword [ebx + 0x764]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [ebx + 0x65c]
fld dword [ebx + 0x580]
fmul dword [ebx + 0x75c]
fld dword [ebx + 0x570]
fmul dword [ebx + 0x758]
faddp st(1)
fld dword [ebx + 0x760]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x5a0]
fmul dword [ebx + 0x764]
faddp st(1)
fstp dword [ebx + 0x660]
fld dword [ebx + 0x584]
fmul dword [ebx + 0x75c]
fld dword [ebx + 0x758]
fmul dword [ebx + 0x574]
faddp st(1)
fld dword [ebx + 0x760]
fmul dword [ebx + 0x594]
faddp st(1)
fld dword [ebx + 0x764]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [ebx + 0x664]
and dword [ebx + 0x30], 0xffffffef
mov eax, dword [ebx + 0x30]
test al, 1
je 0x10079577
fld dword [ebx + 0x5b8]
fstp qword [esp + 0x18]
fld dword [ebx + 0x62c]
fld dword [ebx + 0x628]
fld dword [ebx + 0x5a8]
fst qword [esp + 0x50]
fld dword [ebx + 0x5c8]
fstp qword [esp + 0x28]
fld dword [ebx + 0x630]
fld dword [ebx + 0x5d8]
fst qword [esp + 0x48]
fld dword [ebx + 0x634]
fxch st(3)
fmul st(4)
fld st(5)
fmul qword [esp + 0x18]
faddp st(1)
fld st(2)
fmul qword [esp + 0x28]
faddp st(1)
fld st(3)
fmulp st(2)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [ebx + 0x5bc]
fst qword [esp + 0x88]
fld dword [ebx + 0x5ac]
fst qword [esp + 0x40]
fld dword [ebx + 0x5cc]
fst qword [esp + 0x80]
fld dword [ebx + 0x5dc]
fstp qword [esp + 0x30]
fxch st(1)
fmul st(5)
fxch st(2)
fmul st(6)
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [esp + 0x30]
fmul st(3)
faddp st(1)
fstp dword [esp + 0xc]
fld dword [ebx + 0x5c0]
fst qword [esp + 0x98]
fld dword [ebx + 0x5b0]
fst qword [esp + 0x90]
fld dword [ebx + 0x5d0]
fst qword [esp + 0xa0]
fld dword [ebx + 0x5e0]
fstp qword [esp + 0x38]
fxch st(1)
fmul st(5)
fxch st(2)
fmul st(6)
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [esp + 0x38]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x10]
fld dword [ebx + 0x5c4]
fstp qword [esp + 0xb0]
fld dword [ebx + 0x5b4]
fst qword [esp + 0xa8]
fld dword [ebx + 0x5d4]
fld dword [ebx + 0x5e4]
fstp qword [esp + 0xb8]
fxch st(1)
fmulp st(4)
fld qword [esp + 0xb0]
fmulp st(5)
fxch st(3)
faddp st(4)
fmul st(2)
faddp st(3)
fmul qword [esp + 0xb8]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x24]
fld dword [ebx + 0x63c]
fld dword [ebx + 0x638]
fld dword [ebx + 0x640]
fld dword [ebx + 0x644]
fld st(2)
fmul qword [esp + 0x50]
fld st(4)
fmul qword [esp + 0x18]
faddp st(1)
fld st(2)
fmul qword [esp + 0x28]
faddp st(1)
fld st(1)
fmul qword [esp + 0x48]
faddp st(1)
fstp dword [esp + 0x20]
fld st(2)
fmul qword [esp + 0x40]
fld st(4)
fmul qword [esp + 0x88]
faddp st(1)
fld st(2)
fmul qword [esp + 0x80]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x5c]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
fmul qword [esp + 0x98]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x60]
fld qword [esp + 0xa8]
fmulp st(3)
fld qword [esp + 0xb0]
fmulp st(4)
fxch st(2)
faddp st(3)
fmul st(3)
faddp st(2)
fmul qword [esp + 0xb8]
faddp st(1)
fstp dword [esp + 0x64]
fld dword [ebx + 0x64c]
fld dword [ebx + 0x648]
fld dword [ebx + 0x650]
fld dword [ebx + 0x654]
fld st(2)
fmul qword [esp + 0x50]
fld st(4)
fmul qword [esp + 0x18]
faddp st(1)
fld st(2)
fmul qword [esp + 0x28]
faddp st(1)
fld st(1)
fmul qword [esp + 0x48]
faddp st(1)
fstp dword [esp + 0x68]
fld st(2)
fmul qword [esp + 0x40]
fld st(4)
fmul qword [esp + 0x88]
faddp st(1)
fld st(2)
fmul qword [esp + 0x80]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x6c]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
mov eax, dword [ebx + 0x24]
fmul qword [esp + 0x98]
mov ecx, dword [eax + 0xf638]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x70]
fld qword [esp + 0xa8]
fmulp st(3)
fld qword [esp + 0xb0]
fmulp st(4)
fxch st(2)
faddp st(3)
fmul st(3)
faddp st(2)
fmul qword [esp + 0xb8]
faddp st(1)
fstp dword [esp + 0x74]
fld dword [ebx + 0x65c]
fld dword [ebx + 0x658]
fld dword [ebx + 0x660]
fld dword [ebx + 0x664]
fld st(2)
fmul qword [esp + 0x50]
fld st(4)
fmul qword [esp + 0x18]
faddp st(1)
fld st(2)
fmul qword [esp + 0x28]
faddp st(1)
fld st(1)
fmul qword [esp + 0x48]
faddp st(1)
fstp dword [esp + 0x78]
fld st(2)
fmul qword [esp + 0x40]
fld st(4)
fmul qword [esp + 0x88]
faddp st(1)
fld st(2)
fmul qword [esp + 0x80]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x7c]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
fmul qword [esp + 0x98]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x38]
faddp st(1)
fstp dword [esp + 0x80]
fld qword [esp + 0xa8]
fmulp st(3)
fld qword [esp + 0xb0]
fmulp st(4)
fxch st(2)
faddp st(3)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul qword [esp + 0xb8]
faddp st(1)
fstp dword [esp + 0x88]
cmp ecx, 7
ja 0x100794ce
mov ecx, 7
cmp dword [eax + 0xf63c], 3
mov dword [eax + 0xf638], ecx
jbe 0x100794e7
mov dword [eax + 0xf63c], 3
cmp dword [eax + 0xf640], 7
jae 0x100794fa
mov dword [eax + 0xf640], 7
fld dword [esp + 0x14]
fstp dword [eax + 0x30]
fld dword [esp + 0xc]
fstp dword [eax + 0x34]
fld dword [esp + 0x10]
fstp dword [eax + 0x38]
fld dword [esp + 0x24]
fstp dword [eax + 0x3c]
fld dword [esp + 0x20]
fstp dword [eax + 0x40]
fld dword [esp + 0x5c]
fstp dword [eax + 0x44]
fld dword [esp + 0x60]
fstp dword [eax + 0x48]
fld dword [esp + 0x64]
fstp dword [eax + 0x4c]
fld dword [esp + 0x68]
fstp dword [eax + 0x50]
fld dword [esp + 0x6c]
fstp dword [eax + 0x54]
fld dword [esp + 0x70]
fstp dword [eax + 0x58]
fld dword [esp + 0x74]
fstp dword [eax + 0x5c]
fld dword [esp + 0x78]
fstp dword [eax + 0x60]
fld dword [esp + 0x7c]
fstp dword [eax + 0x64]
fld dword [esp + 0x80]
fstp dword [eax + 0x68]
fld dword [esp + 0x88]
fstp dword [eax + 0x6c]
and dword [ebx + 0x30], 0xfffffffe
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x18]
mov ecx, eax
test dl, 1
je 0x100795e7
test eax, 0x1000
je 0x100795e7
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0xf638]
cmp eax, 0xe
ja 0x1007959b
mov eax, 0xe
cmp dword [edi + 0xf63c], 0xa
mov dword [edi + 0xf638], eax
jbe 0x100795b4
mov dword [edi + 0xf63c], 0xa
cmp dword [edi + 0xf640], 0xe
jae 0x100795c7
mov dword [edi + 0xf640], 0xe
add edi, 0xa0
lea esi, [ebx + 0x628]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and dword [ebx + 0x30], 0xffffefff
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x18]
mov eax, ecx
test dl, 2
je 0x1007a42a
test ecx, 0x100
je 0x1007a42a
mov edi, dword [ebx + 0x20]
lea eax, [ebx + 0x628]
push eax
lea eax, [esp + 0xf4]
push eax
mov edx, dword [edi]
mov esi, dword [edx + 0x14]
mov ecx, esi
call dword [0x100ae518]
mov ecx, edi
call esi
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0xf638]
cmp eax, 0x12
ja 0x10079634
mov eax, 0x12
cmp dword [edi + 0xf63c], 0xe
mov dword [edi + 0xf638], eax
jbe 0x1007964d
mov dword [edi + 0xf63c], 0xe
cmp dword [edi + 0xf640], 0x12
jae 0x10079660
mov dword [edi + 0xf640], 0x12
add edi, 0xe0
lea esi, [esp + 0xf0]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and dword [ebx + 0x30], 0xfffffeff
mov eax, dword [ebx + 0x30]
jmp 0x1007a42a
test cl, 8
je 0x100799e3
test eax, 0x80000
je 0x100796f6
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0xf638]
cmp eax, 0x16
ja 0x100796a6
mov eax, 0x16
cmp dword [edi + 0xf63c], 0x12
mov dword [edi + 0xf638], eax
jbe 0x100796bf
mov dword [edi + 0xf63c], 0x12
cmp dword [edi + 0xf640], 0x16
jae 0x100796d2
mov dword [edi + 0xf640], 0x16
lea edx, [ebx + 0x568]
add edi, 0x120
mov ecx, 0x10
mov esi, edx
rep movsd dword es:[edi], dword [esi]
and dword [ebx + 0x30], 0xfff7ffff
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x18]
jmp 0x100796fc
lea edx, [ebx + 0x568]
test eax, 0x100000
je 0x10079782
test cl, 2
je 0x10079782
mov edi, dword [ebx + 0x20]
lea ecx, [esp + 0xf0]
push edx
push ecx
mov eax, dword [edi]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x100ae518]
mov ecx, edi
call esi
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0xf638]
cmp eax, 0x1a
ja 0x10079738
mov eax, 0x1a
cmp dword [edi + 0xf63c], 0x16
mov dword [edi + 0xf638], eax
jbe 0x10079751
mov dword [edi + 0xf63c], 0x16
cmp dword [edi + 0xf640], 0x1a
jae 0x10079764
mov dword [edi + 0xf640], 0x1a
add edi, 0x160
lea esi, [esp + 0xf0]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and dword [ebx + 0x30], 0xffefffff
mov eax, dword [ebx + 0x30]
test eax, 0x40000
je 0x100797e5
mov edi, dword [ebx + 0x24]
mov eax, dword [edi + 0xf638]
cmp eax, 0x1e
ja 0x1007979c
mov eax, 0x1e
cmp dword [edi + 0xf63c], 0x1a
mov dword [edi + 0xf638], eax
jbe 0x100797b5
mov dword [edi + 0xf63c], 0x1a
cmp dword [edi + 0xf640], 0x1e
jae 0x100797c8
mov dword [edi + 0xf640], 0x1e
add edi, 0x1a0
lea esi, [ebx + 0x5a8]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and dword [ebx + 0x30], 0xfffbffff
mov eax, dword [ebx + 0x30]
test eax, 0x10000
je 0x10079807
mov ecx, dword [ebx + 0x24]
lea eax, [ebx + 0x728]
push eax
push 0
call fcn.100785f0
and dword [ebx + 0x30], 0xfffeffff
mov eax, dword [ebx + 0x30]
movzx ecx, word [ebx + 0x260]
mov edx, 0xffff
cmp cx, dx
je 0x100798af
mov eax, ecx
mov edi, edi
mov ecx, dword [ebx + 0x24]
movzx edx, ax
cmp edx, dword [ecx + 0xf630]
jae 0x10079888
mov esi, dword [ecx + 0xf638]
mov edi, edx
shl edi, 7
add edi, dword [ecx + 0xf628]
sub edi, ecx
shr edi, 4
lea eax, [edi + 4]
cmp esi, eax
ja 0x1007984d
mov esi, eax
mov dword [ecx + 0xf638], esi
cmp dword [ecx + 0xf64c], edi
jbe 0x10079861
mov dword [ecx + 0xf64c], edi
cmp dword [ecx + 0xf650], eax
jae 0x1007986f
mov dword [ecx + 0xf650], eax
mov eax, edx
shl edi, 4
shl eax, 6
lea esi, [ebx + 0x728]
add esi, eax
add edi, ecx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and byte [edx + ebx + 0x464], 0xfe
movzx eax, word [ebx + edx*2 + 0x60]
mov edx, 0xffff
mov ecx, eax
mov word [ebx + 0x260], ax
cmp cx, dx
jne 0x10079820
mov eax, dword [ebx + 0x30]
and eax, 0xfbffffff
test byte [ebx + 0x18], 2
mov dword [ebx + 0x30], eax
je 0x1007a42a
test eax, 0x20000
je 0x100798fd
mov edi, dword [ebx + 0x20]
lea eax, [ebx + 0x728]
push eax
lea eax, [esp + 0xf4]
push eax
mov edx, dword [edi]
mov esi, dword [edx + 0x14]
mov ecx, esi
call dword [0x100ae518]
mov ecx, edi
call esi
mov ecx, dword [ebx + 0x24]
lea eax, [esp + 0xf0]
push eax
push 0
call fcn.10078660
movzx eax, word [ebx + 0x462]
mov ecx, 0xffff
cmp ax, cx
je 0x100799d4
mov dword [esp + 0xc], eax
mov edi, dword [ebx + 0x20]
movzx eax, ax
shl eax, 6
add eax, 0x728
mov esi, dword [edi]
add eax, ebx
push eax
lea eax, [esp + 0xf4]
push eax
mov esi, dword [esi + 0x14]
mov ecx, esi
call dword [0x100ae518]
mov ecx, edi
call esi
mov eax, dword [ebx + 0x24]
mov ecx, dword [esp + 0xc]
movzx edx, cx
cmp edx, dword [eax + 0xf630]
jae 0x100799a9
mov esi, dword [eax + 0xf638]
mov edi, edx
shl edi, 7
add edi, dword [eax + 0xf628]
sub edi, eax
add edi, 0x40
shr edi, 4
lea ecx, [edi + 4]
cmp esi, ecx
ja 0x10079974
mov esi, ecx
mov dword [eax + 0xf638], esi
cmp dword [eax + 0xf64c], edi
jbe 0x10079988
mov dword [eax + 0xf64c], edi
cmp dword [eax + 0xf650], ecx
jae 0x10079996
mov dword [eax + 0xf650], ecx
shl edi, 4
lea esi, [esp + 0xf0]
add edi, eax
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
and byte [ebx + edx + 0x464], 0xfd
movzx eax, word [ebx + edx*2 + 0x262]
mov edx, 0xffff
mov ecx, eax
mov word [ebx + 0x462], ax
mov dword [esp + 0xc], eax
cmp cx, dx
jne 0x10079916
and dword [ebx + 0x30], 0xf7ffffff
mov eax, dword [ebx + 0x30]
jmp 0x1007a42a
mov edx, dword [ebx + 8]
mov esi, 0x1000
shr edx, 0x12
mov edi, eax
and edx, 3
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], edx
xor edx, edx
mov dword [esp + 0x20], 0x10
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], edx
lea esp, [esp]
mov eax, edi
mov ecx, dword [esp + 0x10]
test dword [esp + 0x20], edi
je 0x10079e52
mov eax, edx
shl eax, 6
fld dword [eax + ebx + 0x728]
fld dword [ebx + 0x578]
fmul dword [eax + ebx + 0x72c]
fld dword [ebx + 0x568]
fmul st(2)
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [eax + ebx + 0x730]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [eax + ebx + 0x734]
faddp st(1)
fstp dword [eax + ebx + 0x628]
fld dword [ebx + 0x57c]
fmul dword [eax + ebx + 0x72c]
fld dword [ebx + 0x56c]
fmulp st(2)
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [eax + ebx + 0x730]
faddp st(1)
fld dword [eax + ebx + 0x734]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [eax + ebx + 0x62c]
fld dword [ebx + 0x580]
fmul dword [eax + ebx + 0x72c]
fld dword [ebx + 0x570]
fmul dword [eax + ebx + 0x728]
faddp st(1)
fld dword [eax + ebx + 0x730]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [eax + ebx + 0x734]
fmul dword [ebx + 0x5a0]
faddp st(1)
fstp dword [eax + ebx + 0x630]
fld dword [ebx + 0x584]
fmul dword [eax + ebx + 0x72c]
fld dword [eax + ebx + 0x728]
fmul dword [ebx + 0x574]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [eax + ebx + 0x730]
faddp st(1)
fld dword [eax + ebx + 0x734]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [eax + ebx + 0x634]
fld dword [eax + ebx + 0x738]
fmul dword [ebx + 0x568]
fld dword [eax + ebx + 0x73c]
fmul dword [ebx + 0x578]
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [eax + ebx + 0x740]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [eax + ebx + 0x744]
faddp st(1)
fstp dword [eax + ebx + 0x638]
fld dword [eax + ebx + 0x738]
fmul dword [ebx + 0x56c]
fld dword [ebx + 0x57c]
fmul dword [eax + ebx + 0x73c]
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [eax + ebx + 0x740]
faddp st(1)
fld dword [eax + ebx + 0x744]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [eax + ebx + 0x63c]
fld dword [ebx + 0x580]
fmul dword [eax + ebx + 0x73c]
fld dword [ebx + 0x570]
fmul dword [eax + ebx + 0x738]
faddp st(1)
fld dword [ebx + 0x590]
fmul dword [eax + ebx + 0x740]
faddp st(1)
fld dword [ebx + 0x5a0]
fmul dword [eax + ebx + 0x744]
faddp st(1)
fstp dword [eax + ebx + 0x640]
fld dword [eax + ebx + 0x738]
fmul dword [ebx + 0x574]
fld dword [ebx + 0x584]
fmul dword [eax + ebx + 0x73c]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [eax + ebx + 0x740]
faddp st(1)
fld dword [eax + ebx + 0x744]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [eax + ebx + 0x644]
fld dword [eax + ebx + 0x74c]
fmul dword [ebx + 0x578]
fld dword [ebx + 0x568]
fmul dword [eax + ebx + 0x748]
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [eax + ebx + 0x750]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [eax + ebx + 0x754]
faddp st(1)
fstp dword [eax + ebx + 0x648]
fld dword [ebx + 0x57c]
fmul dword [eax + ebx + 0x74c]
fld dword [eax + ebx + 0x748]
fmul dword [ebx + 0x56c]
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [eax + ebx + 0x750]
faddp st(1)
fld dword [eax + ebx + 0x754]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [eax + ebx + 0x64c]
fld dword [ebx + 0x580]
fmul dword [eax + ebx + 0x74c]
fld dword [ebx + 0x570]
fmul dword [eax + ebx + 0x748]
faddp st(1)
fld dword [eax + ebx + 0x750]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x5a0]
fmul dword [eax + ebx + 0x754]
faddp st(1)
fstp dword [eax + ebx + 0x650]
fld dword [ebx + 0x584]
fmul dword [eax + ebx + 0x74c]
fld dword [eax + ebx + 0x748]
fmul dword [ebx + 0x574]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [eax + ebx + 0x750]
faddp st(1)
fld dword [eax + ebx + 0x754]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [eax + ebx + 0x654]
fld dword [eax + ebx + 0x758]
fmul dword [ebx + 0x568]
fld dword [eax + ebx + 0x75c]
fmul dword [ebx + 0x578]
faddp st(1)
fld dword [ebx + 0x588]
fmul dword [eax + ebx + 0x760]
faddp st(1)
fld dword [ebx + 0x598]
fmul dword [eax + ebx + 0x764]
faddp st(1)
fstp dword [eax + ebx + 0x658]
fld dword [eax + ebx + 0x758]
fmul dword [ebx + 0x56c]
fld dword [ebx + 0x57c]
fmul dword [eax + ebx + 0x75c]
mov edi, dword [esp + 0x20]
faddp st(1)
fld dword [ebx + 0x58c]
fmul dword [eax + ebx + 0x760]
faddp st(1)
fld dword [eax + ebx + 0x764]
fmul dword [ebx + 0x59c]
faddp st(1)
fstp dword [eax + ebx + 0x65c]
fld dword [eax + ebx + 0x75c]
fmul dword [ebx + 0x580]
fld dword [eax + ebx + 0x758]
fmul dword [ebx + 0x570]
faddp st(1)
fld dword [eax + ebx + 0x760]
fmul dword [ebx + 0x590]
faddp st(1)
fld dword [ebx + 0x5a0]
fmul dword [eax + ebx + 0x764]
faddp st(1)
fstp dword [eax + ebx + 0x660]
fld dword [eax + ebx + 0x758]
fmul dword [ebx + 0x574]
fld dword [ebx + 0x584]
fmul dword [eax + ebx + 0x75c]
faddp st(1)
fld dword [ebx + 0x594]
fmul dword [eax + ebx + 0x760]
faddp st(1)
fld dword [eax + ebx + 0x764]
fmul dword [ebx + 0x5a4]
faddp st(1)
fstp dword [eax + ebx + 0x664]
mov eax, edi
not eax
and dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x30]
jmp 0x10079e56
mov edi, dword [esp + 0x20]
add edi, edi
mov dword [esp + 0x20], edi
test ecx, eax
je 0x1007a2cd
mov eax, edx
shl eax, 6
fld dword [ebx + eax + 0x62c]
fld dword [ebx + 0x5b8]
fstp qword [esp + 0x28]
fld dword [ebx + eax + 0x628]
fld dword [ebx + 0x5a8]
fst qword [esp + 0xa8]
fld dword [ebx + eax + 0x630]
fld dword [ebx + 0x5c8]
fst qword [esp + 0xa0]
fld dword [ebx + 0x5d8]
fst qword [esp + 0x98]
fld dword [ebx + eax + 0x634]
fxch st(4)
fmul st(5)
fld qword [esp + 0x28]
fmul st(7)
faddp st(1)
fxch st(2)
fmul st(3)
faddp st(2)
fmul st(3)
faddp st(1)
fstp dword [esp + 0x88]
fld dword [ebx + 0x5bc]
fst qword [esp + 0x38]
fld dword [ebx + 0x5ac]
fst qword [esp + 0x90]
fld dword [ebx + 0x5cc]
fst qword [esp + 0xc8]
fld dword [ebx + 0x5dc]
fstp qword [esp + 0x30]
fxch st(1)
fmul st(5)
fxch st(2)
fmul st(6)
faddp st(2)
fmul st(2)
faddp st(1)
fld qword [esp + 0x30]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x80]
fld dword [ebx + 0x5c0]
fst qword [esp + 0xd8]
fld dword [ebx + 0x5b0]
fst qword [esp + 0xd0]
fld dword [ebx + 0x5d0]
fst qword [esp + 0xe0]
fld dword [ebx + 0x5e0]
fstp qword [esp + 0x40]
fxch st(2)
fmul st(6)
fxch st(1)
fmul st(5)
faddp st(1)
fxch st(1)
fmul st(2)
faddp st(1)
fld qword [esp + 0x40]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x7c]
fld dword [ebx + 0x5c4]
fstp qword [esp + 0x48]
fld dword [ebx + 0x5b4]
fst qword [esp + 0xe8]
fld dword [ebx + 0x5d4]
fld dword [ebx + 0x5e4]
fstp qword [esp + 0x50]
fxch st(1)
fmulp st(4)
fld qword [esp + 0x48]
fmulp st(5)
fxch st(3)
faddp st(4)
fmul st(2)
faddp st(3)
fmul qword [esp + 0x50]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x78]
fld dword [ebx + eax + 0x63c]
fld dword [ebx + eax + 0x638]
fld dword [ebx + eax + 0x640]
fld dword [ebx + eax + 0x644]
fld st(2)
fmul qword [esp + 0xa8]
fld st(4)
fmul qword [esp + 0x28]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x98]
faddp st(1)
fstp dword [esp + 0x74]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
fmul qword [esp + 0x38]
faddp st(1)
fld st(2)
fmul qword [esp + 0xc8]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x70]
fld st(2)
fmul qword [esp + 0xd0]
fld st(4)
fmul qword [esp + 0xd8]
faddp st(1)
fld st(2)
fmul qword [esp + 0xe0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x6c]
fld qword [esp + 0xe8]
fmulp st(3)
fld qword [esp + 0x48]
fmulp st(4)
fxch st(2)
faddp st(3)
fmul st(3)
faddp st(2)
fmul qword [esp + 0x50]
faddp st(1)
fstp dword [esp + 0x68]
fld dword [ebx + eax + 0x64c]
fld dword [ebx + eax + 0x648]
fld dword [ebx + eax + 0x650]
fld dword [ebx + eax + 0x654]
fld st(2)
fmul qword [esp + 0xa8]
fld st(4)
fmul qword [esp + 0x28]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x98]
faddp st(1)
fstp dword [esp + 0x64]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
fmul qword [esp + 0x38]
faddp st(1)
fld st(2)
fmul qword [esp + 0xc8]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x60]
mov ecx, dword [ebx + 0x24]
fld st(2)
fmul qword [esp + 0xd0]
fld st(4)
fmul qword [esp + 0xd8]
faddp st(1)
fld st(2)
fmul qword [esp + 0xe0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x5c]
fld qword [esp + 0xe8]
fmulp st(3)
fld qword [esp + 0x48]
fmulp st(4)
fxch st(2)
faddp st(3)
fmul st(3)
faddp st(2)
fmul qword [esp + 0x50]
faddp st(1)
fstp dword [esp + 0xb8]
fld dword [ebx + eax + 0x65c]
fld dword [ebx + eax + 0x658]
fld dword [ebx + eax + 0x660]
fld dword [ebx + eax + 0x664]
fld st(2)
fmul qword [esp + 0xa8]
fld st(4)
fmul qword [esp + 0x28]
faddp st(1)
fld st(2)
fmul qword [esp + 0xa0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x98]
faddp st(1)
fstp dword [esp + 0xb0]
fld st(2)
fmul qword [esp + 0x90]
fld st(4)
fmul qword [esp + 0x38]
faddp st(1)
fld st(2)
fmul qword [esp + 0xc8]
faddp st(1)
fld st(1)
fmul qword [esp + 0x30]
faddp st(1)
fstp dword [esp + 0x38]
fld st(2)
fmul qword [esp + 0xd0]
fld st(4)
fmul qword [esp + 0xd8]
faddp st(1)
fld st(2)
fmul qword [esp + 0xe0]
faddp st(1)
fld st(1)
fmul qword [esp + 0x40]
faddp st(1)
fstp dword [esp + 0x30]
fld qword [esp + 0xe8]
fmulp st(3)
fld qword [esp + 0x48]
fmulp st(4)
fxch st(2)
faddp st(3)
fmulp st(3)
fxch st(1)
faddp st(2)
fmul qword [esp + 0x50]
faddp st(1)
fstp dword [esp + 0x28]
test edx, edx
jne 0x1007a1f5
lea eax, [edx + 3]
jmp 0x1007a1fd
add eax, 0x3a0
shr eax, 4
mov edi, dword [ecx + 0xf638]
lea esi, [eax + 4]
cmp edi, esi
ja 0x1007a20c
mov edi, esi
mov dword [ecx + 0xf638], edi
cmp dword [ecx + 0xf63c], eax
jbe 0x1007a220
mov dword [ecx + 0xf63c], eax
cmp dword [ecx + 0xf640], esi
jae 0x1007a22e
mov dword [ecx + 0xf640], esi
fld dword [esp + 0x88]
add eax, eax
mov esi, dword [esp + 0x24]
fstp dword [ecx + eax*8]
fld dword [esp + 0x80]
fstp dword [ecx + eax*8 + 4]
fld dword [esp + 0x7c]
fstp dword [ecx + eax*8 + 8]
fld dword [esp + 0x78]
fstp dword [ecx + eax*8 + 0xc]
fld dword [esp + 0x74]
fstp dword [ecx + eax*8 + 0x10]
fld dword [esp + 0x70]
fstp dword [ecx + eax*8 + 0x14]
fld dword [esp + 0x6c]
fstp dword [ecx + eax*8 + 0x18]
fld dword [esp + 0x68]
fstp dword [ecx + eax*8 + 0x1c]
fld dword [esp + 0x64]
fstp dword [ecx + eax*8 + 0x20]
fld dword [esp + 0x60]
fstp dword [ecx + eax*8 + 0x24]
fld dword [esp + 0x5c]
fstp dword [ecx + eax*8 + 0x28]
fld dword [esp + 0xb8]
fstp dword [ecx + eax*8 + 0x2c]
fld dword [esp + 0xb0]
fstp dword [ecx + eax*8 + 0x30]
fld dword [esp + 0x38]
fstp dword [ecx + eax*8 + 0x34]
fld dword [esp + 0x30]
fstp dword [ecx + eax*8 + 0x38]
fld dword [esp + 0x28]
fstp dword [ecx + eax*8 + 0x3c]
mov ecx, dword [esp + 0x10]
mov eax, ecx
not eax
and dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x30]
add ecx, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [ebx + 0x18]
test cl, 1
je 0x1007a35e
test esi, eax
je 0x1007a358
mov ecx, dword [ebx + 0x24]
test edx, edx
jne 0x1007a2ef
lea edi, [edx + 0xa]
jmp 0x1007a2fd
mov edi, edx
shl edi, 6
add edi, 0x460
shr edi, 4
mov esi, dword [ecx + 0xf638]
lea eax, [edi + 4]
cmp esi, eax
ja 0x1007a30c
mov esi, eax
mov dword [ecx + 0xf638], esi
cmp dword [ecx + 0xf63c], edi
jbe 0x1007a320
mov dword [ecx + 0xf63c], edi
cmp dword [ecx + 0xf640], eax
jae 0x1007a32e
mov dword [ecx + 0xf640], eax
shl edi, 4
lea esi, [ebx + 0x628]
mov eax, edx
add edi, ecx
shl eax, 6
mov ecx, 0x10
add esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
mov eax, esi
mov ecx, dword [ebx + 0x18]
not eax
and dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x30]
add esi, esi
mov dword [esp + 0x24], esi
test cl, 2
je 0x1007a415
mov ecx, dword [esp + 0xc]
test ecx, eax
je 0x1007a40f
mov edi, dword [ebx + 0x20]
mov eax, edx
shl eax, 6
mov dword [esp + 0x28], eax
add eax, 0x628
add eax, ebx
mov edx, dword [edi]
push eax
lea eax, [esp + 0xf4]
push eax
mov esi, dword [edx + 0x14]
mov ecx, esi
call dword [0x100ae518]
mov ecx, edi
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x24]
test edx, edx
jne 0x1007a3b0
lea edi, [edx + 0xe]
jmp 0x1007a3bd
mov edi, dword [esp + 0x28]
add edi, 0x520
shr edi, 4
mov esi, dword [eax + 0xf638]
lea ecx, [edi + 4]
cmp esi, ecx
ja 0x1007a3cc
mov esi, ecx
mov dword [eax + 0xf638], esi
cmp dword [eax + 0xf63c], edi
jbe 0x1007a3e0
mov dword [eax + 0xf63c], edi
cmp dword [eax + 0xf640], ecx
jae 0x1007a3ee
mov dword [eax + 0xf640], ecx
shl edi, 4
lea esi, [esp + 0xf0]
add edi, eax
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc]
mov eax, ecx
not eax
and dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x30]
add ecx, ecx
mov dword [esp + 0xc], ecx
mov esi, dword [esp + 0x24]
inc edx
mov edi, eax
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x18]
jbe 0x10079a20
lea esi, [ebx + 0x4928]
mov dword [esp + 0xc], esi
test eax, 0x800000
je 0x1007a45b
mov ecx, dword [ebx + 0x24]
lea eax, [ebx + 0x568]
push eax
push dword [ebx + 0x4d24]
push esi
call fcn.10078a70
and dword [ebx + 0x30], 0xff7fffff
mov eax, dword [ebx + 0x30]
test eax, 0x2000000
je 0x1007a59e
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x4d24]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x1007a596
mov ebx, dword [esp + 0x18]
fld qword [0x1000b628]
lea eax, [ebx + 0xf694]
mov dword [esp + 0x14], eax
imul edi, dword [eax], 0x70
mov esi, dword [esi]
add edi, dword [ebx + 0xf620]
mov eax, dword [esi + 0x24]
mov dword [edi], eax
mov eax, dword [esi + 0x28]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x30]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 4]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 8]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0xc]
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [edi + 0x1c], eax
mov eax, dword [esi + 0x14]
mov dword [edi + 0x20], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x28], eax
mov eax, dword [esi + 0x20]
mov dword [edi + 0x2c], eax
fld dword [esi + 0x54]
fstp dword [edi + 0x50]
fld dword [esi + 0x58]
fstp dword [edi + 0x54]
fld dword [esi + 0x5c]
fstp dword [edi + 0x58]
fld dword [esi + 0x50]
fstp dword [edi + 0x5c]
fmul dword [esi + 0x60]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call sub.msvcrt.dll__CIcos
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [edi + 0x60]
fld dword [esi + 0x64]
fmul qword [0x1000b628]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call sub.msvcrt.dll__CIcos
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [edi + 0x64]
fld dword [esi + 0x4c]
fstp dword [edi + 0x68]
sub edi, ebx
shr edi, 4
cmp dword [ebx + 0xf644], edi
jbe 0x1007a552
mov dword [ebx + 0xf644], edi
add edi, 7
cmp dword [ebx + 0xf648], edi
jae 0x1007a563
mov dword [ebx + 0xf648], edi
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 4
fld qword [0x1000b628]
add eax, 4
sub dword [esp + 0x10], 1
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
jne 0x1007a493
mov ebx, dword [esp + 0xc4]
fstp st(0)
mov eax, dword [ebx + 0x30]
and eax, 0xfdffffff
mov dword [ebx + 0x30], eax
mov ecx, dword [esp + 0x134]
pop edi
pop esi
mov dword [ebx + 0x34], eax
pop ebx
xor ecx, esp
call fcn.100a1500
mov esp, ebp
pop ebp
ret