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

Disassembly:
push 0x488
mov eax, 0x103199a0
call fcn.1027911b
mov edi, ecx
mov dword [ebp - 0x374], edi
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x340], eax
inc ecx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x384], eax
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x3c]
mov esi, eax
mov dword [ebp - 0x3bc], esi
test esi, esi
je 0x10088f05
mov eax, dword [esi]
push esi
call dword [eax]
and dword [ebp - 4], 0
test esi, esi
je 0x10088f1c
mov ecx, esi
call fcn.1007aa0c
test al, al
jne 0x1008a4ea
mov eax, dword [ebp - 0x340]
test byte [eax + 0x133], 4
je 0x10088f32
and byte [edi + 0x85], 0xfb
mov ecx, edi
call fcn.1008fdb3
mov ecx, dword [ebp - 0x340]
xor eax, eax
mov byte [ebp - 0x339], al
mov byte [ebp - 0x341], al
mov edx, dword [ecx + 0x12b]
test edx, edx
je 0x10088f6f
cmp edx, 2
je 0x10088f66
cmp edx, 3
je 0x10088f66
cmp edx, 4
jne 0x10088f6f
mov byte [ebp - 0x33a], 1
jmp 0x10088f75
mov byte [ebp - 0x33a], al
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x3ac], eax
xor eax, eax
inc eax
cmp byte [ebp - 0x33a], 0
mov byte [ebp - 4], al
je 0x10088fff
mov eax, dword [edi + 0x24]
cmp edx, 2
sete byte [ebp - 0x339]
test eax, eax
je 0x10088fc8
cmp edx, 3
je 0x10088fbd
cmp edx, 4
jne 0x10088fc8
mov eax, dword [eax]
mov ecx, dword [edi + 0x24]
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x340]
test al, al
je 0x10088fc8
xor eax, eax
inc eax
mov byte [ebp - 0x341], al
jmp 0x10088fd2
xor eax, eax
mov byte [ebp - 0x341], 0
inc eax
cmp dword [ecx + 0x12b], 4
jne 0x10088fff
push eax
push 0x31
call fcn.10025730
test eax, eax
je 0x10088ff1
push edi
mov ecx, eax
call fcn.10085ebe
jmp 0x10088ff3
xor eax, eax
mov dword [ebp - 0x388], eax
mov dword [ebp - 0x3ac], eax
test byte [edi + 0x84], 0x20
jne 0x10089026
test byte [edi + 0x85], 0x80
jne 0x10089026
cmp byte [ebp - 0x339], 0
jne 0x10089026
mov ecx, edi
call fcn.10087f43
jmp 0x1008a4d4
mov esi, dword [0x10666fb4]
lea ecx, [ebp - 0x338]
add esi, 4
push esi
mov dword [ebp - 0x34c], esi
call fcn.10085df1
mov ecx, dword [ebp - 0x340]
mov byte [ebp - 4], 2
test byte [ecx + 0x133], 0x20
je 0x10089067
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x7c]
test al, al
je 0x10089067
xor eax, eax
lea ecx, [eax + 1]
jmp 0x10089069
xor cl, cl
xor eax, eax
mov byte [ebp - 0x343], cl
mov dword [ebp - 0x380], eax
mov dword [ebp - 0x3b4], eax
mov byte [ebp - 4], 3
test cl, cl
je 0x100892eb
lea ecx, [ebp - 0xc8]
call fcn.10040483
test byte [edi + 0x86], 0x80
mov byte [ebp - 4], 4
je 0x100890dc
mov ecx, dword [edi + 0x1c]
lea eax, [ebp - 0x494]
and byte [ebp - 0x414], 0xfc
push eax
call fcn.10087a2f
lea eax, [ebp - 0x494]
push eax
lea ecx, [ebp - 0x68]
call fcn.1004045f
push eax
lea ecx, [ebp - 0xc8]
call fcn.100404d6
lea ecx, [ebp - 0x68]
call fcn.100404c6
jmp 0x100890eb
lea eax, [esi + 0x20]
push eax
lea ecx, [ebp - 0xc8]
call fcn.10040526
xor eax, eax
inc eax
push eax
push 0x300
call fcn.10025730
mov dword [ebp - 0x3b0], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x10089125
movss xmm0, dword [esi + 0x1c]
push esi
push ecx
lea ecx, [ebp - 0xc8]
movss dword [esp], xmm0
push ecx
mov ecx, eax
call fcn.10071f72
mov esi, eax
jmp 0x10089127
xor esi, esi
mov edi, dword [ebp - 0x34c]
push esi
mov dword [ebp - 0x380], esi
mov byte [ebp - 4], 4
mov ecx, dword [edi + 0x78]
mov dword [ebp - 0x3b4], esi
call fcn.100723ff
push dword [edi + 0x78]
mov ecx, dword [ebp - 0x374]
push esi
call fcn.1008c785
mov ecx, edi
call fcn.1008ca0b
lea ecx, [ebp - 0x338]
call fcn.1008c1dd
test al, al
mov ecx, edi
sete al
shl al, 3
xor al, byte [ecx + 0x80]
and al, 8
xor byte [ecx + 0x80], al
lea eax, [ebp - 0x3b4]
push eax
lea ecx, [edi + 0x78]
call fcn.100ab916
push esi
lea ecx, [ebp - 0x338]
call fcn.1008c818
mov edi, dword [ebp - 0x374]
test byte [edi + 0x86], 6
jne 0x100891fe
mov ecx, edi
call fcn.1008c253
test al, al
je 0x100891c4
mov eax, dword [ebp - 0x340]
mov al, byte [eax + 0x133]
test al, 0x18
jne 0x100891fe
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x100891e0
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
jne 0x100891e0
mov ecx, dword [edi + 0x24]
call fcn.1008c1b7
test al, al
jne 0x100891fe
mov ecx, edi
call fcn.1006d971
test al, al
je 0x100891fa
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x89]
and al, 0x38
cmp al, 0x10
je 0x100891fe
xor cl, cl
jmp 0x10089203
xor eax, eax
lea ecx, [eax + 1]
mov esi, dword [ebp - 0x34c]
movss xmm0, dword [0x1034096c]
mov al, byte [esi + 0x80]
xor al, cl
xor ecx, ecx
inc ecx
and al, cl
xor byte [esi + 0x80], al
mov eax, dword [ebp - 0x340]
mov cl, byte [esi + 0x80]
comiss xmm0, dword [eax + 0x12f]
ja 0x1008928d
mov eax, dword [edi + 0x30]
comiss xmm0, dword [eax + 0x6c]
ja 0x1008928d
mov ecx, edi
call fcn.1006d9be
test al, al
jne 0x10089287
push 0
mov ecx, edi
call fcn.1008b691
mov dword [ebp - 0x354], eax
test eax, eax
je 0x10089296
push 7
mov ecx, eax
call fcn.10069898
test al, al
jne 0x1008927e
mov ecx, dword [ebp - 0x354]
push 0xd
call fcn.10069898
test al, al
je 0x10089296
or byte [esi + 0x80], 8
jmp 0x10089296
mov cl, byte [esi + 0x80]
or cl, 8
mov byte [esi + 0x80], cl
xor eax, eax
inc eax
test byte [esi + 0x80], al
jne 0x100892da
test byte [edi + 0x86], 0x10
je 0x100892da
push edi
call fcn.1008480b
test eax, eax
je 0x100892d0
mov ecx, eax
call fcn.1008495d
mov cl, byte [esi + 0x80]
xor cl, al
xor eax, eax
inc eax
and cl, al
xor byte [esi + 0x80], cl
jmp 0x100892da
push 0xd21d3
call fcn.10153dc1
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 3
call fcn.100404c6
jmp 0x1008933a
mov cl, byte [esi + 0x80]
and cl, 0xfe
mov byte [esi + 0x80], cl
mov eax, dword [edi + 0x30]
mov byte [ebp - 0x342], cl
movss xmm0, dword [eax + 0x6c]
mulss xmm0, dword [esi + 0x1c]
movss dword [esi + 0x1c], xmm0
test cl, 8
jne 0x10089322
mov ecx, edi
call fcn.1006d9be
test al, al
je 0x10089325
xor eax, eax
inc eax
mov cl, byte [ebp - 0x342]
shl al, 3
xor al, cl
and al, 8
xor al, cl
mov byte [esi + 0x80], al
movss xmm0, dword [esi + 0x1c]
andps xmm0, xmmword [0x10341f20]
movss xmm1, dword [0x10341e10]
comiss xmm1, xmm0
mov al, byte [ebp - 0x339]
jb 0x10089361
test al, al
je 0x1008a4af
movsd xmm0, qword [edi + 0x60]
xorps xmm1, xmm1
subsd xmm0, qword [edi + 0x50]
comisd xmm0, xmm1
jb 0x1008938b
movsd xmm0, qword [edi + 0x68]
subsd xmm0, qword [edi + 0x58]
comisd xmm0, xmm1
jb 0x1008938b
xor edx, edx
inc edx
mov cl, dl
jmp 0x10089390
xor edx, edx
xor cl, cl
inc edx
mov byte [ebp - 0x344], cl
test al, al
jne 0x100893a2
cmp byte [ebp - 0x341], al
je 0x100893ac
mov byte [ebp - 0x345], dl
test cl, cl
jne 0x100893b3
mov byte [ebp - 0x345], 0
mov edx, dword [ebp - 0x340]
xor eax, eax
inc eax
test byte [edx + 0x133], al
je 0x10089400
cmp byte [ebp - 0x343], 0
jne 0x100893da
test cl, cl
jne 0x100893da
test byte [edi + 0x84], 0x40
jne 0x10089400
cmp dword [edi + 0x20], 0
setne al
test al, al
sete al
test al, al
jne 0x10089400
mov eax, dword [edi + 0x20]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
test ecx, ecx
je 0x10089400
xor ecx, ecx
inc ecx
mov al, cl
jmp 0x10089405
xor ecx, ecx
xor al, al
inc ecx
test byte [edi + 0x84], 0x40
mov byte [ebp - 0x346], al
je 0x1008945c
test al, al
je 0x1008945c
push 0
lea eax, [ebp - 0x70]
mov byte [ebp - 0x342], cl
push eax
mov ecx, edi
call fcn.10087102
push 4
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x3a8]
call fcn.1003d0f9
lea eax, [ebp - 0x3a8]
push eax
mov eax, dword [ebp - 0x340]
mov ecx, dword [eax + 0x117]
call fcn.1003cbff
mov edx, dword [ebp - 0x340]
jmp 0x10089463
mov byte [ebp - 0x342], 0
mov eax, dword [ebp - 0x384]
test eax, eax
je 0x1008947f
test byte [edx + 0x133], 0x80
jne 0x1008947f
push eax
push edx
mov ecx, edi
call fcn.1008fddb
mov ecx, edi
call fcn.1006d971
mov byte [ebp - 0x341], al
test al, al
je 0x100894bc
cmp byte [ebp - 0x344], 0
je 0x100894bc
mov ecx, dword [edi + 0x30]
movss xmm0, dword [ecx + 0x80]
ucomiss xmm0, dword [0x10341e04]
lahf
test ah, 0x44
jnp 0x100894bc
xor eax, eax
inc eax
mov byte [ebp - 0x34d], al
jmp 0x100894c3
mov byte [ebp - 0x34d], 0
push 0x2b
call fcn.10080f6c
test eax, eax
je 0x100894e5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
cmp eax, 2
jne 0x100894e5
xor eax, eax
inc eax
mov byte [ebp - 0x339], al
jmp 0x100894ec
mov byte [ebp - 0x339], 0
cmp dword [edi + 0x24], 0
je 0x1008957a
cmp byte [ebp - 0x344], 0
je 0x1008957a
cmp byte [ebp - 0x33a], 0
jne 0x1008957a
cmp byte [ebp - 0x341], 0
je 0x1008956f
mov eax, dword [edi + 0x30]
movsd xmm0, qword [edi + 0x60]
subsd xmm0, qword [edi + 0x50]
mov cl, byte [eax + 0x84]
mov al, byte [eax + 0x85]
movzx edx, al
movzx eax, cl
add edx, eax
movd xmm1, edx
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
jbe 0x1008957a
mov eax, dword [edi + 0x30]
movsd xmm0, qword [edi + 0x68]
subsd xmm0, qword [edi + 0x58]
mov cl, byte [eax + 0x86]
mov al, byte [eax + 0x87]
movzx edx, al
movzx eax, cl
add edx, eax
movd xmm1, edx
cvtdq2pd xmm1, xmm1
comisd xmm0, xmm1
jbe 0x1008957a
xor eax, eax
inc eax
mov byte [ebp - 0x33a], al
jmp 0x10089581
mov byte [ebp - 0x33a], 0
mov eax, dword [ebp - 0x340]
lea ecx, [eax + 0xf3]
movsd xmm0, qword [ecx]
mov dword [ebp - 0x3b0], ecx
movsd qword [ebp - 0x3ec], xmm0
mov dword [ebp - 0x3fc], ecx
movsd qword [ebp - 0x3f4], xmm0
lea edx, [eax + 0xfb]
movsd xmm0, qword [edx]
mov dword [ebp - 0x3b8], edx
movsd qword [ebp - 0x3e4], xmm0
mov dword [ebp - 0x40c], edx
movsd qword [ebp - 0x404], xmm0
mov eax, dword [edi + 0x30]
movss xmm1, dword [0x10341f20]
movss xmm3, dword [0x10341e10]
mov byte [ebp - 4], 7
movss xmm0, dword [eax + 0x44]
andps xmm0, xmm1
comiss xmm3, xmm0
jb 0x10089654
movss xmm0, dword [eax + 0x48]
andps xmm0, xmm1
comiss xmm3, xmm0
jb 0x10089654
movss xmm0, dword [eax + 0x4c]
andps xmm0, xmm1
comiss xmm3, xmm0
jb 0x10089654
movss xmm1, dword [eax + 0x5c]
movss xmm2, dword [0x1034096c]
comiss xmm1, xmm2
jbe 0x10089629
subss xmm1, xmm2
jmp 0x10089633
movaps xmm0, xmm2
subss xmm0, xmm1
movaps xmm1, xmm0
comiss xmm3, xmm1
jb 0x10089654
movss xmm0, dword [eax + 0x60]
comiss xmm0, xmm2
jbe 0x10089648
subss xmm0, xmm2
jmp 0x1008964f
subss xmm2, xmm0
movaps xmm0, xmm2
comiss xmm3, xmm0
jae 0x1008965f
xorps xmm0, xmm0
movsd qword [ecx], xmm0
movsd qword [edx], xmm0
cmp byte [ebp - 0x343], 0
jne 0x10089952
and byte [ebp - 0x78], 0xfc
lea eax, [ebp - 0xf8]
push eax
call fcn.1003d8aa
mov ecx, dword [edi + 0x1c]
xor eax, eax
inc eax
mov byte [ebp - 0x378], al
test ecx, ecx
je 0x100896bc
mov eax, dword [ecx]
call dword [eax + 0x4c]
test al, al
je 0x100896bc
mov eax, dword [edi + 0x1c]
mov ecx, dword [esi + 0x78]
mov esi, dword [eax + 0x10]
mov eax, dword [ecx]
call dword [eax + 8]
xor edx, edx
inc edx
movzx ecx, dl
xor edx, edx
cmp eax, esi
mov esi, dword [ebp - 0x34c]
cmove ecx, edx
mov byte [ebp - 0x378], cl
push dword [ebp - 0x378]
lea eax, [ebp - 0xf8]
mov ecx, edi
push eax
call fcn.100874b4
test al, al
je 0x100896f4
lea eax, [ebp - 0xf8]
push eax
lea ecx, [ebp - 0x68]
call fcn.1004045f
push eax
lea ecx, [esi + 0x20]
call fcn.10041572
lea ecx, [ebp - 0x68]
call fcn.100404c6
test byte [edi + 0x84], 0x40
je 0x100897cf
movsd xmm0, qword [edi + 0x60]
lea eax, [ebp - 0x360]
subsd xmm0, qword [edi + 0x50]
movsd xmm1, qword [edi + 0x68]
lea ecx, [ebp - 0x3a4]
subsd xmm1, qword [edi + 0x58]
and dword [ebp - 0x360], 0
and dword [ebp - 0x35c], 0
cvtpd2ps xmm0, xmm0
push eax
movss dword [ebp - 0x358], xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x354], xmm0
call fcn.10071ef1
lea eax, [esi + 0x20]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x3a4]
call fcn.10071dac
push esi
lea ecx, [ebp - 0x3a4]
call fcn.10071a73
cmp dword [esi + 0x10], 0
je 0x1008977b
push dword [esi + 0x10]
call fcn.102a9552
pop ecx
mov al, byte [esi + 0x18]
mov ecx, esi
and dword [esi + 0x10], 0
and al, 0xfe
and dword [esi + 0x14], 0
or al, 2
mov byte [esi + 0x18], al
lea eax, [ebp - 0x3a4]
push eax
mov dword [esi + 4], 0xe9612e12
mov dword [esi], 0xe9612e12
mov dword [esi + 0xc], 0x69e12e12
mov dword [esi + 8], 0x69e12e12
call fcn.10071a73
cmp dword [ebp - 0x394], 0
mov byte [ebp - 4], 7
je 0x100897cf
push dword [ebp - 0x394]
call fcn.102a9552
pop ecx
mov al, byte [edi + 0x87]
test al, 0x70
jne 0x100897e1
test al, al
jns 0x10089952
mov ecx, edi
call fcn.1008b707
fstp qword [ebp - 0x358]
mov ecx, edi
call fcn.1008b75c
fstp qword [ebp - 0x368]
mov ecx, edi
call fcn.1008b72e
fstp qword [ebp - 0x37c]
mov ecx, edi
call fcn.1008b6d9
lea ecx, [ebp - 0x3a4]
fstp qword [ebp - 0x370]
call fcn.1006e905
cmp dword [ebp - 0x394], 0
movsd xmm0, qword [ebp - 0x358]
cvtpd2ps xmm0, xmm0
mov byte [ebp - 4], 9
movss dword [ebp - 0x3cc], xmm0
movsd xmm0, qword [ebp - 0x368]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x3c8], xmm0
movsd xmm0, qword [ebp - 0x37c]
subsd xmm0, qword [ebp - 0x358]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x3c4], xmm0
movsd xmm0, qword [ebp - 0x370]
subsd xmm0, qword [ebp - 0x368]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x3c0], xmm0
je 0x10089899
push dword [ebp - 0x394]
call fcn.102a9552
pop ecx
mov al, byte [ebp - 0x38c]
lea esi, [ebp - 0x3cc]
and dword [ebp - 0x394], 0
lea edi, [ebp - 0x3a4]
and dword [ebp - 0x390], 0
lea ecx, [ebp - 0x3a4]
and al, 0xfe
or al, 2
mov byte [ebp - 0x38c], al
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x34c]
and byte [ebp - 0x38c], 0xfc
lea eax, [esi + 0x20]
push eax
call fcn.10071dac
push esi
lea ecx, [ebp - 0x3a4]
call fcn.10071a73
cmp dword [esi + 0x10], 0
je 0x100898fe
push dword [esi + 0x10]
call fcn.102a9552
pop ecx
mov al, byte [esi + 0x18]
mov ecx, esi
and dword [esi + 0x10], 0
and al, 0xfe
and dword [esi + 0x14], 0
or al, 2
mov byte [esi + 0x18], al
lea eax, [ebp - 0x3a4]
push eax
mov dword [esi + 4], 0xe9612e12
mov dword [esi], 0xe9612e12
mov dword [esi + 0xc], 0x69e12e12
mov dword [esi + 8], 0x69e12e12
call fcn.10071a73
cmp dword [ebp - 0x394], 0
mov byte [ebp - 4], 7
je 0x10089952
push dword [ebp - 0x394]
call fcn.102a9552
pop ecx
mov eax, dword [ebp - 0x340]
lea edi, [ebp - 0x398]
add eax, 0x11b
cmp byte [ebp - 0x33a], 0
mov esi, eax
mov dword [ebp - 0x378], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x10089c8a
mov esi, dword [ebp - 0x34c]
lea ecx, [ebp - 0x218]
push esi
call fcn.10085df1
mov edi, dword [ebp - 0x374]
mov ecx, dword [ebp - 0x340]
mov byte [ebp - 4], 0xa
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x89]
shl eax, 0x17
sar eax, 0x1d
mov dword [esi + 0x7c], eax
mov eax, dword [edi + 0x30]
cmp dword [eax], 0
setne al
xor edx, edx
xor al, byte [ecx + 0x134]
inc edx
and al, dl
xor byte [ecx + 0x134], al
mov ecx, edi
call fcn.1008c56d
test al, al
je 0x100899e7
push 0x31
call fcn.10080f6c
test eax, eax
je 0x100899e7
xor eax, eax
lea ecx, [eax + 1]
jmp 0x100899e9
xor cl, cl
cmp byte [ebp - 0x341], 0
mov byte [ebp - 0x33a], cl
je 0x10089c12
mov eax, dword [edi + 0x30]
test byte [eax + 0x89], 0x38
jne 0x10089c12
and byte [ebp - 0x414], 0xfc
lea eax, [ebp - 0x494]
push eax
mov ecx, edi
call fcn.10086fea
lea eax, [esi + 0x20]
push eax
lea ecx, [ebp - 0xc8]
call fcn.100403b6
lea eax, [ebp - 0x494]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x68]
call fcn.1004045f
push eax
lea ecx, [esi + 0x20]
call fcn.10041572
lea ecx, [ebp - 0x68]
call fcn.100404c6
push 0
push 3
lea ecx, [esi + 0x20]
call fcn.10040b4c
xor eax, eax
lea ecx, [esi + 0x20]
inc eax
push eax
fstp qword [ebp - 0x358]
push 3
call fcn.10040b4c
mov ecx, edi
fstp qword [ebp - 0x368]
call fcn.1008fcf3
test al, al
je 0x10089b29
movsd xmm0, qword [ebp - 0x358]
addsd xmm0, qword [0x10341e28]
push ecx
push ecx
movsd qword [ebp - 0x370], xmm0
fld qword [ebp - 0x370]
fstp qword [esp]
call fcn.1029ad63
mov eax, dword [ebp - 0x378]
fstp qword [ebp - 0x370]
movsd xmm0, qword [ebp - 0x370]
subsd xmm0, qword [ebp - 0x358]
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
movsd xmm0, qword [ebp - 0x368]
addsd xmm0, qword [0x10341e28]
movsd qword [ebp - 0x358], xmm0
fld qword [ebp - 0x358]
fstp qword [esp]
call fcn.1029ad63
mov eax, dword [ebp - 0x340]
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
subsd xmm0, qword [ebp - 0x368]
pop ecx
pop ecx
addsd xmm0, qword [eax + 0x123]
movsd qword [eax + 0x123], xmm0
push 0
push 3
lea ecx, [esi + 0x20]
call fcn.10040b4c
mov eax, dword [ebp - 0x378]
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
push ecx
addsd xmm0, qword [eax]
push ecx
lea ecx, [esi + 0x20]
movsd qword [esp], xmm0
push 0
push 3
call fcn.10041cbe
xor eax, eax
lea ecx, [esi + 0x20]
inc eax
push eax
push 3
call fcn.10040b4c
mov eax, dword [ebp - 0x340]
push ecx
fstp qword [ebp - 0x358]
push ecx
movsd xmm0, qword [eax + 0x123]
lea ecx, [esi + 0x20]
addsd xmm0, qword [ebp - 0x358]
xor eax, eax
inc eax
movsd qword [esp], xmm0
push eax
push 3
call fcn.10041cbe
cmp byte [ebp - 0x33a], 0
je 0x10089be3
movsd xmm0, qword [edi + 0x68]
subsd xmm0, qword [edi + 0x58]
mov ecx, dword [0x10666fb4]
push 0x10642738
push ecx
push ecx
mov eax, dword [ecx]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movsd xmm0, qword [edi + 0x60]
subsd xmm0, qword [edi + 0x50]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [eax + 8]
jmp 0x10089bf2
mov ecx, dword [edi + 0x24]
push dword [ebp - 0x340]
push edi
mov eax, dword [ecx]
call dword [eax + 0x54]
lea eax, [ebp - 0xc8]
push eax
lea ecx, [esi + 0x20]
call fcn.10040526
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xa
call fcn.100404c6
jmp 0x10089c60
test cl, cl
je 0x10089c51
movsd xmm0, qword [edi + 0x68]
subsd xmm0, qword [edi + 0x58]
mov ecx, dword [0x10666fb4]
push 0x10642738
push ecx
push ecx
mov eax, dword [ecx]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movsd xmm0, qword [edi + 0x60]
subsd xmm0, qword [edi + 0x50]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [eax + 8]
jmp 0x10089c60
mov ecx, dword [edi + 0x24]
push dword [ebp - 0x340]
push edi
mov eax, dword [ecx]
call dword [eax + 0x54]
mov ecx, dword [edi + 0x24]
push edi
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp - 0x340]
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
and byte [eax + 0x134], 0xfe
call fcn.100862f0
jmp 0x10089d9a
mov edi, dword [ebp - 0x374]
mov ecx, edi
call fcn.1008fcf3
mov esi, dword [ebp - 0x34c]
test al, al
je 0x10089d9a
push 0
add esi, 0x20
push 3
mov ecx, esi
call fcn.10040b4c
push 0
fstp qword [ebp - 0x358]
push 3
mov ecx, esi
call fcn.10040b4c
movsd xmm0, qword [ebp - 0x358]
addsd xmm0, qword [0x10341e28]
fstp qword [ebp - 0x368]
push ecx
push ecx
movsd qword [ebp - 0x358], xmm0
fld qword [ebp - 0x358]
fstp qword [esp]
call fcn.1029ad63
mov eax, dword [ebp - 0x378]
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
subsd xmm0, qword [ebp - 0x368]
pop ecx
pop ecx
mov ecx, esi
addsd xmm0, qword [eax]
movsd qword [eax], xmm0
xor eax, eax
inc eax
push eax
push 3
call fcn.10040b4c
xor eax, eax
mov ecx, esi
inc eax
push eax
fstp qword [ebp - 0x358]
push 3
call fcn.10040b4c
movsd xmm0, qword [ebp - 0x358]
addsd xmm0, qword [0x10341e28]
fstp qword [ebp - 0x368]
push ecx
push ecx
movsd qword [ebp - 0x358], xmm0
fld qword [ebp - 0x358]
fstp qword [esp]
call fcn.1029ad63
mov eax, dword [ebp - 0x340]
mov esi, dword [ebp - 0x34c]
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
subsd xmm0, qword [ebp - 0x368]
pop ecx
pop ecx
addsd xmm0, qword [eax + 0x123]
movsd qword [eax + 0x123], xmm0
cmp byte [ebp - 0x345], 0
je 0x10089dff
push esi
lea ecx, [ebp - 0x218]
call fcn.10085df1
and dword [esi + 0x7c], 0
movsd xmm0, qword [edi + 0x68]
subsd xmm0, qword [edi + 0x58]
mov ecx, dword [0x10666fb4]
push 0x10642728
push ecx
push ecx
mov eax, dword [ecx]
cvtpd2ps xmm0, xmm0
mov byte [ebp - 4], 0xc
movss dword [esp + 4], xmm0
movsd xmm0, qword [edi + 0x60]
subsd xmm0, qword [edi + 0x50]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [eax + 8]
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
call fcn.100862f0
cmp byte [ebp - 0x346], 0
je 0x1008a170
cmp dword [edi + 0x20], 0
setne al
test al, al
sete al
test al, al
sete al
test al, al
je 0x1008a170
mov edx, dword [ebp - 0x340]
and dword [ebp - 0x36c], 0
and dword [ebp - 0x354], 0
mov al, byte [edx + 0x133]
mov cl, al
shr cl, 3
and cl, 1
mov byte [ebp - 0x346], cl
mov cl, al
shr cl, 4
and cl, 1
mov byte [ebp - 0x345], cl
mov cl, byte [edi + 0x86]
shl cl, 2
xor cl, al
and cl, 8
xor cl, al
mov byte [edx + 0x133], cl
mov al, byte [edi + 0x86]
shl al, 2
xor al, cl
and al, 0x10
xor al, cl
cmp byte [ebp - 0x343], 0
mov byte [edx + 0x133], al
je 0x10089fb5
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x4c]
test al, al
je 0x10089faf
mov eax, dword [esi + 0x78]
mov dword [ebp - 0x36c], eax
xor eax, eax
inc eax
push eax
push 0x300
call fcn.10025730
mov dword [ebp - 0x354], eax
mov byte [ebp - 4], 0xd
test eax, eax
je 0x10089edc
push 0
push ecx
mov dword [esp], 0x3f800000
mov ecx, eax
push 0
call fcn.10071f72
jmp 0x10089ede
xor eax, eax
mov ecx, dword [esi + 0x78]
mov byte [ebp - 4], 7
mov dword [esi + 0x78], eax
test ecx, ecx
je 0x10089ef2
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov al, byte [0x10666f80]
xor edx, edx
mov ecx, dword [esi + 0x78]
inc edx
shr al, 2
and al, dl
add al, al
xor al, byte [ecx + 0x2f9]
and al, 2
xor byte [ecx + 0x2f9], al
mov ecx, dword [esi + 0x78]
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x150], eax
mov eax, dword [ebp - 0x36c]
mov ecx, dword [esi + 0x78]
mov al, byte [eax + 0x2fa]
shr al, 2
and al, dl
shl al, 2
xor al, byte [ecx + 0x2fa]
and al, 4
xor byte [ecx + 0x2fa], al
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0x34]
cmp eax, 2
jne 0x10089f86
movsd xmm0, qword [edi + 0xd8]
mov eax, dword [esi + 0x78]
movsd xmm1, qword [edi + 0xe0]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x18], xmm0
cvtpd2ps xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [eax + 0x30], xmm0
movsd qword [eax + 0x20], xmm0
jmp 0x10089f90
push 0x1994d6
call fcn.10153dc1
push dword [esi + 0x78]
mov ecx, dword [ebp - 0x36c]
call fcn.100723ff
mov ecx, dword [0x10666fb4]
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov dword [ebp - 0x354], eax
mov edx, dword [ebp - 0x340]
mov esi, dword [edi + 0x20]
mov ecx, dword [edi + 0x20]
mov esi, dword [esi]
cmp esi, dword [ecx + 4]
je 0x1008a057
mov ecx, dword [esi]
test byte [ecx + 0x86], 0x80
je 0x1008a036
test byte [edx + 0x133], 0x40
jne 0x1008a036
lea ecx, [edx + 0x113]
cmp dword [ecx], 0
mov dword [ebp - 0x364], ecx
setne al
test al, al
sete al
test al, al
je 0x1008a02c
xor eax, eax
inc eax
push eax
push 0xc
call fcn.10025730
test eax, eax
je 0x1008a010
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
jmp 0x1008a012
xor eax, eax
mov ecx, dword [ebp - 0x364]
mov edx, dword [ecx]
mov dword [ecx], eax
test edx, edx
je 0x1008a02c
push edx
call fcn.10086731
mov ecx, dword [ebp - 0x364]
mov ecx, dword [ecx]
push esi
call fcn.1008fee4
jmp 0x1008a042
push dword [ebp - 0x384]
mov eax, dword [ecx]
push edx
call dword [eax + 0x44]
mov eax, dword [edi + 0x20]
add esi, 4
mov edx, dword [ebp - 0x340]
cmp esi, dword [eax + 4]
jne 0x10089fc6
cmp dword [ebp - 0x36c], 0
je 0x1008a13c
cmp byte [ebp - 0x339], 0
mov esi, dword [ebp - 0x34c]
je 0x1008a10b
push esi
lea ecx, [ebp - 0x218]
call fcn.10085df1
and dword [esi + 0x7c], 0
xor edx, edx
movaps xmm0, xmmword [0x10358960]
inc edx
mov ecx, dword [0x10666fb4]
push edx
movups xmmword [ebp - 0x3cc], xmm0
lea edx, [ebp - 0x3cc]
mov byte [ebp - 4], 0xe
movsd xmm0, qword [edi + 0xe0]
mov eax, dword [ecx]
push edx
sub esp, 0x18
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x14], 0x40800000
mov dword [esp + 0x10], 0x40800000
mov dword [esp + 0xc], 0x40800000
mov dword [esp + 8], 0x40800000
movss dword [esp + 4], xmm0
movsd xmm0, qword [edi + 0xd8]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [eax + 0x10]
lea ecx, [ebp - 0x218]
mov byte [ebp - 0x339], 0
mov byte [ebp - 4], 7
call fcn.100862f0
mov ecx, dword [0x10666fb4]
lea edi, [esi + 0x78]
mov esi, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x1c]
push eax
push dword [ebp - 0x354]
mov ecx, esi
call fcn.10073ef3
push dword [ebp - 0x36c]
mov ecx, edi
call fcn.10038c76
mov edi, dword [ebp - 0x374]
mov eax, dword [ebp - 0x340]
mov cl, byte [ebp - 0x346]
mov dl, byte [ebp - 0x345]
shl cl, 3
xor cl, byte [eax + 0x133]
and cl, 8
shl dl, 4
xor cl, byte [eax + 0x133]
xor dl, cl
and dl, 0x10
xor dl, cl
mov byte [eax + 0x133], dl
mov esi, dword [ebp - 0x34c]
push 0
push 3
lea ecx, [esi + 0x20]
call fcn.10040b4c
mov eax, dword [ebp - 0x378]
push ecx
fstp qword [ebp - 0x358]
push ecx
movsd xmm0, qword [eax]
lea ecx, [esi + 0x20]
addsd xmm0, qword [ebp - 0x358]
movsd qword [esp], xmm0
push 0
push 3
call fcn.10041cbe
xor eax, eax
lea ecx, [esi + 0x20]
inc eax
push eax
push 3
call fcn.10040b4c
mov eax, dword [ebp - 0x340]
push ecx
fstp qword [ebp - 0x358]
push ecx
movsd xmm0, qword [eax + 0x123]
lea ecx, [esi + 0x20]
addsd xmm0, qword [ebp - 0x358]
xor eax, eax
inc eax
movsd qword [esp], xmm0
push eax
push 3
call fcn.10041cbe
cmp byte [ebp - 0x34d], 0
je 0x1008a25a
push esi
lea ecx, [ebp - 0x218]
call fcn.10085df1
mov eax, dword [edi + 0x30]
mov ecx, edi
mov byte [ebp - 4], 0xf
mov eax, dword [eax + 0x89]
shl eax, 0x17
sar eax, 0x1d
mov dword [esi + 0x7c], eax
mov esi, dword [edi + 0x30]
movzx eax, byte [esi + 0x87]
push eax
movzx eax, byte [esi + 0x85]
push eax
movzx eax, byte [esi + 0x86]
push eax
movzx eax, byte [esi + 0x84]
push eax
lea eax, [esi + 0x74]
push eax
call fcn.1008a500
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
call fcn.100862f0
mov esi, dword [ebp - 0x34c]
cmp byte [ebp - 0x339], 0
je 0x1008a339
push esi
lea ecx, [ebp - 0x218]
call fcn.10085df1
and dword [esi + 0x7c], 0
lea ecx, [ebp - 0x494]
mov eax, dword [edi]
and byte [ebp - 0x414], 0xfc
push ecx
mov ecx, edi
mov byte [ebp - 4], 0x10
call dword [eax + 0x48]
lea eax, [ebp - 0x494]
push eax
lea ecx, [ebp - 0xc8]
call fcn.1004045f
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [esi + 0x20]
call fcn.10041572
movaps xmm0, xmmword [0x10358960]
xor edx, edx
mov ecx, dword [0x10666fb4]
inc edx
push edx
movups xmmword [ebp - 0x3cc], xmm0
lea edx, [ebp - 0x3cc]
movsd xmm0, qword [edi + 0xe0]
mov eax, dword [ecx]
push edx
sub esp, 0x18
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x14], 0x40800000
mov dword [esp + 0x10], 0x40800000
mov dword [esp + 0xc], 0x40800000
mov dword [esp + 8], 0x40800000
movss dword [esp + 4], xmm0
movsd xmm0, qword [edi + 0xd8]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
call dword [eax + 0x10]
lea ecx, [ebp - 0xc8]
call fcn.100404c6
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
call fcn.100862f0
mov eax, dword [ebp - 0x340]
test byte [eax + 0x133], 2
je 0x1008a3c0
cmp byte [ebp - 0x344], 0
je 0x1008a3c0
push dword [edi + 0x10]
mov ecx, 0x10666f58
call fcn.1007aa22
test al, al
jne 0x1008a37a
mov eax, dword [edi + 0x24]
test eax, eax
je 0x1008a3c0
push dword [eax + 0x10]
mov ecx, 0x10666f58
call fcn.1007aa22
test al, al
je 0x1008a3c0
push esi
lea ecx, [ebp - 0x218]
call fcn.10085df1
movaps xmm0, xmmword [0x103462b0]
mov ecx, edi
and dword [esi + 0x7c], 0
push 4
pop eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x3cc]
mov byte [ebp - 4], 0x12
push eax
movups xmmword [ebp - 0x3cc], xmm0
call fcn.1008a500
lea ecx, [ebp - 0x218]
mov byte [ebp - 4], 7
call fcn.100862f0
mov esi, dword [ebp - 0x340]
test byte [esi + 0x133], 0x80
jne 0x1008a468
cmp dword [ebp - 0x384], 0
je 0x1008a417
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
cmp eax, 2
jne 0x1008a417
lea eax, [ebp - 0x354]
lea ecx, [edi + 0x18]
push eax
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x384]
push eax
call fcn.10079baf
test al, al
je 0x1008a417
mov eax, dword [ebp - 0x354]
xor ecx, ecx
inc ecx
mov byte [eax + esi + 0xe9], cl
push 0
lea eax, [ebp - 0x3dc]
mov ecx, edi
push eax
call fcn.10087197
lea eax, [ebp - 0x3dc]
mov ecx, esi
push eax
call fcn.10087e8c
mov esi, dword [ebp - 0x380]
test esi, esi
je 0x1008a462
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x34]
cmp eax, 2
jne 0x1008a462
push esi
mov esi, dword [ebp - 0x340]
lea eax, [ebp - 0x3dc]
push eax
mov ecx, esi
call fcn.100869b1
jmp 0x1008a468
mov esi, dword [ebp - 0x340]
cmp byte [ebp - 0x342], 0
je 0x1008a47b
mov eax, dword [esi + 0x117]
add dword [eax + 4], 0xffffffe0
mov edi, dword [ebp - 0x378]
lea esi, [ebp - 0x398]
mov eax, dword [ebp - 0x3b8]
movsd xmm0, qword [ebp - 0x3e4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd qword [eax], xmm0
mov eax, dword [ebp - 0x3b0]
movsd xmm0, qword [ebp - 0x3ec]
movsd qword [eax], xmm0
mov eax, dword [ebp - 0x380]
mov byte [ebp - 4], 2
test eax, eax
je 0x1008a4c3
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea ecx, [ebp - 0x338]
call fcn.100862f0
mov esi, dword [ebp - 0x3bc]
mov eax, dword [ebp - 0x388]
test eax, eax
je 0x1008a4ea
push eax
lea ecx, [ebp - 0x3ac]
call fcn.1008676d
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x1008a4f8
mov eax, dword [esi]
push esi
call dword [eax + 4]
call fcn.102790cd
ret 8