Function at 0x1002a390
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a7a9d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf8
mov eax, dword [0x100ee940]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x9c], edi
mov esi, dword [ebx + 8]
push ecx
push dword [esi + 8]
push dword [esi + 4]
call fcn.100333b0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x6c], ecx
lea ecx, [ebp - 0x74]
push eax
mov dword [ebp - 0x3c], esi
call fcn.10041f90
movss dword [ebp - 0x20], xmm0
fld dword [ebp - 0x20]
fstp dword [esp]
movaps xmmword [ebp - 0xb0], xmm0
call fcn.1009608f
add esp, 4
test ax, ax
jle 0x1002a42d
mov dword [edi + 0x20], 3
jmp 0x1002b46a
movaps xmm1, xmmword [ebp - 0xb0]
ucomiss xmm1, dword [0x100e39b8]
lahf
test ah, 0x44
jp 0x1002a450
movss xmm1, dword [0x100e3a14]
movaps xmmword [ebp - 0xb0], xmm1
mov eax, dword [edi + 0x34]
cmp eax, dword [edi + 0x38]
je 0x1002a5e7
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 4]
lea esi, [edi + 0x10c]
lea edi, [esi + 8]
mov dword [ebp - 0x90], edx
mov dword [ebp - 0x94], edi
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x78], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x74], edx
movss dword [ebp - 0x70], xmm1
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x8c], eax
cmp eax, edx
jne 0x1002a517
cmp dword [esi + 8], ecx
jne 0x1002a520
mov edx, dword [esi + 8]
mov esi, dword [esi]
mov ecx, eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x7c]
imul ecx, edx
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x85]
mov dword [ebp - 0x48], eax
lea eax, [edi + 0x10c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x1c], esi
mov eax, ecx
mov dword [ebp - 0x8c], ecx
cdq
xor ecx, ecx
and edx, 3
add edx, eax
and edx, 0xfffffffc
test edx, edx
jle 0x1002a5ae
nop
mov eax, dword [ebp - 0x78]
movss xmm1, dword [ebp - 0x70]
shufps xmm1, xmm1, 0
movups xmm0, xmmword [eax + ecx*4]
divps xmm0, xmm1
movups xmmword [esi + ecx*4], xmm0
add ecx, 4
cmp ecx, edx
jge 0x1002a5ae
mov esi, dword [ebp - 0x1c]
jmp 0x1002a4f0
lea eax, [esi + 8]
mov dword [ebp - 0x94], eax
test edx, edx
je 0x1002a53e
test ecx, ecx
je 0x1002a53e
mov eax, 0x7fffffff
cdq
idiv ecx
mov edx, dword [ebp - 0x90]
cmp edx, eax
jg 0x1002b490
mov eax, dword [ebp - 0x94]
imul ecx, edx
mov eax, dword [eax]
imul eax, dword [ebp - 0x8c]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
je 0x1002a595
mov eax, dword [esi]
test eax, eax
je 0x1002a56b
push dword [eax - 4]
call fcn.10089bd6
mov ecx, dword [ebp - 0x20]
add esp, 4
test ecx, ecx
jle 0x1002a58f
call fcn.100277b0
mov ecx, dword [ebp - 0x98]
mov edx, ecx
mov dword [esi], eax
mov eax, dword [ebp - 0x90]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
jmp 0x1002a4a8
mov dword [esi], 0
mov ecx, dword [ebp - 0x98]
mov edx, ecx
mov eax, dword [ebp - 0x90]
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
jmp 0x1002a4a8
push dword [ebp - 0x8c]
lea ecx, [ebp - 0x50]
call fcn.100550e0
add esp, 4
lea eax, [edi + 0x10c]
lea ecx, [edi + 0x50]
push eax
push edi
call fcn.10032b80
lea eax, [edi + 0x10c]
push eax
push edi
lea ecx, [edi + 0xb4]
call fcn.10032870
jmp 0x1002ab85
mov edx, dword [edi + 0x3c]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x50], esi
movups xmm0, xmmword [ebp - 0x5c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0xe0], xmm0
mov dword [ebp - 0xc8], eax
movq xmm0, qword [ebp - 0x4c]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x54], ecx
lea ecx, [ebp - 0x48]
push eax
mov dword [ebp - 0x8c], edx
movq qword [ebp - 0xd0], xmm0
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], edx
movss dword [ebp - 0xb8], xmm1
call fcn.1004c730
lea ecx, [edi + 0x44]
mov dword [ebp - 4], 0
mov esi, dword [ecx + 4]
lea eax, [ecx + 8]
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x90], eax
cmp esi, edx
jne 0x1002a680
cmp dword [eax], edx
je 0x1002a708
jmp 0x1002a686
mov dword [ebp - 0x90], eax
test edx, edx
je 0x1002a6a7
mov eax, 0x7fffffff
cdq
idiv dword [ebp - 0x8c]
mov edx, dword [ebp - 0x8c]
cmp edx, eax
jg 0x1002b495
lea ecx, [edi + 0x44]
mov eax, edx
imul eax, edx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
imul eax, esi
mov esi, dword [ebp - 0x98]
cmp esi, eax
je 0x1002a6f1
mov eax, dword [ecx]
test eax, eax
je 0x1002a6db
push dword [eax - 4]
call fcn.10089bd6
add esp, 4
lea ecx, [edi + 0x44]
test esi, esi
jle 0x1002a6eb
mov ecx, esi
call fcn.100277b0
mov dword [edi + 0x44], eax
jmp 0x1002a6f1
mov dword [ecx], 0
mov ecx, dword [ebp - 0x8c]
mov esi, ecx
mov dword [edi + 0x48], ecx
mov dword [edi + 0x4c], ecx
mov dword [ebp - 0x94], ecx
lea ecx, [edi + 0x44]
mov eax, dword [ecx]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x85]
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x2c], eax
call fcn.100411c0
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 4]
and eax, 0x80000003
jns 0x1002a745
dec eax
or eax, 0xfffffffc
inc eax
neg eax
xor edx, edx
and eax, 3
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x20], edx
jle 0x1002a8a0
xor edi, edi
sub esi, edi
mov dword [ebp - 0x90], 0
and esi, 0xfffffffc
add esi, edi
mov dword [ebp - 0x98], esi
test edi, edi
jle 0x1002a7cc
mov esi, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 4]
imul eax, esi
add eax, dword [ebp - 0x90]
movss xmm0, dword [ecx + eax*4]
divss xmm0, dword [edx + 0x10]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
imul eax, esi
add eax, edx
inc edx
mov dword [ebp - 0x90], edx
movss dword [ecx + eax*4], xmm0
cmp edx, edi
jl 0x1002a781
mov esi, dword [ebp - 0x98]
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x90], edi
cmp edi, esi
jge 0x1002a82a
nop word [eax + eax]
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
movss xmm0, dword [eax + 0x10]
mov eax, dword [eax + 4]
imul ecx, edx
shufps xmm0, xmm0, 0
add ecx, dword [ebp - 0x90]
movups xmm1, xmmword [eax + ecx*4]
mov eax, dword [ebp - 0x34]
divps xmm1, xmm0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
imul eax, edx
add eax, dword [ebp - 0x90]
movups xmmword [ecx + eax*4], xmm1
mov eax, dword [ebp - 0x90]
add eax, 4
mov dword [ebp - 0x90], eax
cmp eax, esi
jl 0x1002a7e0
cmp esi, dword [ebp - 0x94]
jge 0x1002a86f
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 0xc]
imul eax, dword [ebp - 0x8c]
mov ecx, dword [edx + 4]
add eax, esi
movss xmm0, dword [ecx + eax*4]
divss xmm0, dword [edx + 0x10]
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
imul eax, edx
add eax, esi
inc esi
movss dword [ecx + eax*4], xmm0
cmp esi, dword [ebp - 0x94]
jl 0x1002a832
add edi, dword [ebp - 0x18]
and edi, 0x80000003
jns 0x1002a87f
dec edi
or edi, 0xfffffffc
inc edi
mov esi, dword [ebp - 0x94]
cmp esi, edi
cmovl edi, esi
inc edx
mov dword [ebp - 0x8c], edx
cmp edx, dword [ebp - 0x20]
jl 0x1002a760
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 4], 0xffffffff
cmp byte [edi + 0x27], 0
je 0x1002a95a
mov esi, dword [edi + 0x34]
test esi, esi
je 0x1002a8c8
mov eax, 0x7fffffff
cdq
idiv esi
cmp esi, eax
jg 0x1002b49a
mov eax, dword [edi + 8]
mov ecx, esi
imul eax, dword [edi + 4]
imul ecx, esi
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x1002a902
mov eax, dword [edi]
test eax, eax
je 0x1002a8ef
push dword [eax - 4]
call fcn.10089bd6
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x1002a8fc
call fcn.100277b0
mov dword [edi], eax
jmp 0x1002a902
mov dword [edi], 0
mov dword [edi + 4], esi
xor edx, edx
mov dword [edi + 8], esi
mov ecx, dword [edi]
mov dword [ebp - 0x20], ecx
test esi, esi
jle 0x1002a95a
movss xmm1, dword [0x100e3a14]
lea eax, [esi*4]
mov dword [ebp - 0x18], eax
xor eax, eax
test esi, esi
jle 0x1002a94e
nop dword [eax + eax]
cmp eax, edx
jne 0x1002a939
movaps xmm0, xmm1
jmp 0x1002a93c
xorps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
mov esi, dword [edi + 4]
add ecx, 4
cmp eax, esi
jl 0x1002a930
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [edi + 8]
jl 0x1002a925
cmp byte [edi + 0x28], 0
je 0x1002aa16
mov esi, dword [edi + 0x34]
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x98], ecx
test esi, esi
je 0x1002a988
test ecx, ecx
je 0x1002a988
mov eax, 0x7fffffff
cdq
idiv ecx
cmp esi, eax
jg 0x1002b49a
mov eax, dword [edi + 8]
imul eax, dword [edi + 4]
imul ecx, esi
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x1002a9c0
mov eax, dword [edi]
test eax, eax
je 0x1002a9ad
push dword [eax - 4]
call fcn.10089bd6
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x1002a9ba
call fcn.100277b0
mov dword [edi], eax
jmp 0x1002a9c0
mov dword [edi], 0
mov eax, dword [ebp - 0x98]
xor edx, edx
mov dword [edi + 4], esi
mov dword [edi + 8], eax
mov ecx, dword [edi]
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x1002aa16
lea eax, [esi*4]
mov dword [ebp - 0x18], eax
xor eax, eax
test esi, esi
jle 0x1002aa0a
cmp eax, edx
jne 0x1002a9f5
movss xmm0, dword [0x100e3a14]
jmp 0x1002a9f8
xorps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
mov esi, dword [edi + 4]
add ecx, 4
cmp eax, esi
jl 0x1002a9e7
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [edi + 8]
jl 0x1002a9e1
cmp byte [edi + 0x29], 0
je 0x1002aac5
mov esi, dword [edi + 0x38]
test esi, esi
je 0x1002aa37
mov eax, 0x7fffffff
cdq
idiv esi
cmp esi, eax
jg 0x1002b49a
mov eax, dword [edi + 0x14]
mov ecx, esi
imul eax, dword [edi + 0x10]
imul ecx, esi
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x1002aa74
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1002aa5f
push dword [eax - 4]
call fcn.10089bd6
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x1002aa6d
call fcn.100277b0
mov dword [edi + 0xc], eax
jmp 0x1002aa74
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], esi
xor edx, edx
mov dword [edi + 0x14], esi
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x20], ecx
test esi, esi
jle 0x1002aac5
lea eax, [esi*4]
mov dword [ebp - 0x18], eax
xor eax, eax
test esi, esi
jle 0x1002aab9
cmp eax, edx
jne 0x1002aaa4
movss xmm0, dword [0x100e3a14]
jmp 0x1002aaa7
xorps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
mov esi, dword [edi + 0x10]
add ecx, 4
cmp eax, esi
jl 0x1002aa96
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [edi + 0x14]
jl 0x1002aa90
cmp byte [edi + 0x2a], 0
je 0x1002ab85
mov esi, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x98], ecx
test esi, esi
je 0x1002aaf3
test ecx, ecx
je 0x1002aaf3
mov eax, 0x7fffffff
cdq
idiv ecx
cmp esi, eax
jg 0x1002b49a
mov eax, dword [edi + 0x14]
imul eax, dword [edi + 0x10]
imul ecx, esi
mov dword [ebp - 0x18], ecx
cmp ecx, eax
je 0x1002ab2e
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1002ab19
push dword [eax - 4]
call fcn.10089bd6
mov ecx, dword [ebp - 0x18]
add esp, 4
test ecx, ecx
jle 0x1002ab27
call fcn.100277b0
mov dword [edi + 0xc], eax
jmp 0x1002ab2e
mov dword [edi + 0xc], 0
mov eax, dword [ebp - 0x98]
xor edx, edx
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], eax
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x20], ecx
test eax, eax
jle 0x1002ab85
lea eax, [esi*4]
mov dword [ebp - 0x18], eax
xor eax, eax
test esi, esi
jle 0x1002ab79
cmp eax, edx
jne 0x1002ab64
movss xmm0, dword [0x100e3a14]
jmp 0x1002ab67
xorps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
mov esi, dword [edi + 0x10]
add ecx, 4
cmp eax, esi
jl 0x1002ab56
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [edi + 0x14]
jl 0x1002ab50
mov eax, dword [edi + 0x44]
mov edx, dword [edi + 0x48]
movss xmm0, dword [eax]
call fcn.100019e0
movaps xmm1, xmm0
movss dword [ebp - 0x94], xmm0
movss dword [ebp - 0x20], xmm1
mov eax, edx
cmp dword [edi + 0x4c], edx
mov esi, 1
cmovl eax, dword [edi + 0x4c]
cmp eax, esi
jle 0x1002ac10
mov eax, dword [edi + 0x44]
lea ecx, [edx*4 + 4]
inc edx
mov dword [ebp - 0x94], ecx
lea edx, [eax + edx*4]
nop word [eax + eax]
movss xmm0, dword [edx]
call fcn.100019e0
comiss xmm0, xmm1
lea ecx, [ebp - 0x20]
lea eax, [ebp - 0x18]
movss dword [ebp - 0x18], xmm0
cmovbe eax, ecx
add edx, dword [ebp - 0x94]
inc esi
movss xmm1, dword [eax]
movss dword [ebp - 0x20], xmm1
mov ecx, dword [edi + 0x48]
cmp dword [edi + 0x4c], ecx
cmovl ecx, dword [edi + 0x4c]
cmp esi, ecx
jl 0x1002abd0
movss dword [ebp - 0x94], xmm1
lea esi, [edi + 0x44]
mov dword [ebp - 0x18], esi
nop word [eax + eax]
mov ecx, dword [edi + 0x3c]
mov eax, 1
mov byte [ebp - 0x85], 1
mov dword [ebp - 0x90], eax
cmp ecx, eax
jle 0x1002af8d
nop dword [eax]
xor edx, edx
mov dword [ebp - 0x8c], edx
test eax, eax
jle 0x1002af6e
mov ecx, dword [esi + 4]
mov eax, ecx
mov esi, dword [esi]
mulss xmm1, dword [0x100e39d4]
imul eax, edx
maxss xmm1, dword [0x100e39c8]
add eax, dword [ebp - 0x90]
movss xmm0, dword [esi + eax*4]
call fcn.100019e0
comiss xmm0, xmm1
ja 0x1002ac9d
mov eax, dword [ebp - 0x90]
imul ecx, eax
add ecx, edx
movss xmm0, dword [esi + ecx*4]
call fcn.100019e0
comiss xmm0, xmm1
jbe 0x1002af54
mov esi, dword [ebp - 0x90]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 0x85], 0
push eax
push edx
mov edx, esi
lea ecx, [edi + 0x44]
call fcn.10034b60
movss xmm5, dword [ebp - 0x3c]
add esp, 0xc
movss xmm0, dword [0x100e3a14]
xorps xmm7, xmm7
mov eax, dword [edi + 0x44]
mov edx, dword [ebp - 0x8c]
movss xmm4, dword [ebp - 0x38]
ucomiss xmm5, xmm0
lea ecx, [eax + esi*4]
mov esi, dword [edi + 0x4c]
lea edx, [eax + edx*4]
mov dword [ebp - 0x98], esi
lahf
test ah, 0x44
jp 0x1002acff
ucomiss xmm4, xmm7
lahf
test ah, 0x44
jnp 0x1002ad5a
xor eax, eax
test esi, esi
jle 0x1002ad5a
mov edi, dword [ebp - 0x18]
mov esi, dword [edi + 4]
mov edi, dword [ebp - 0x9c]
shl esi, 2
movss xmm2, dword [edx]
movaps xmm0, xmm5
movss xmm3, dword [ecx]
movaps xmm1, xmm2
mulss xmm0, xmm3
inc eax
mulss xmm1, xmm4
mulss xmm3, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
subss xmm0, xmm3
movss dword [ecx], xmm1
add ecx, esi
movss dword [edx], xmm0
add edx, esi
cmp eax, dword [ebp - 0x98]
jl 0x1002ad14
movss xmm0, dword [0x100e3a14]
cmp byte [edi + 0x27], 0
jne 0x1002ad6a
cmp byte [edi + 0x28], 0
je 0x1002addc
mov esi, dword [edi + 4]
mov eax, esi
imul eax, dword [ebp - 0x90]
mov ecx, dword [edi]
lea edx, [ecx + eax*4]
mov eax, esi
imul eax, dword [ebp - 0x8c]
ucomiss xmm5, xmm0
lea ecx, [ecx + eax*4]
lahf
test ah, 0x44
jp 0x1002ad99
ucomiss xmm4, xmm7
lahf
test ah, 0x44
jnp 0x1002addc
xor eax, eax
test esi, esi
jle 0x1002addc
nop
movss xmm2, dword [ecx]
movaps xmm0, xmm5
movss xmm3, dword [edx]
movaps xmm1, xmm2
mulss xmm0, xmm3
inc eax
mulss xmm1, xmm4
mulss xmm3, xmm4
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
subss xmm0, xmm3
movss dword [edx], xmm1
add edx, 4
movss dword [ecx], xmm0
add ecx, 4
cmp eax, esi
jl 0x1002ada0
mov esi, dword [edi + 0x48]
mov eax, esi
imul eax, dword [ebp - 0x90]
mov ecx, dword [edi + 0x44]
movss xmm4, dword [ebp - 0x24]
movss xmm0, dword [0x100e3a14]
movss xmm6, dword [ebp - 0x20]
movss xmm1, dword [0x100e3c60]
movaps xmm5, xmm6
xorps xmm5, xmm1
lea edx, [ecx + eax*4]
mov eax, esi
imul eax, dword [ebp - 0x8c]
ucomiss xmm4, xmm0
lea ecx, [ecx + eax*4]
lahf
test ah, 0x44
jp 0x1002ae2c
ucomiss xmm5, xmm7
lahf
test ah, 0x44
jnp 0x1002ae7b
xor eax, eax
test esi, esi
jle 0x1002ae7b
movss xmm3, dword [edx]
inc eax
movss xmm2, dword [ecx]
movaps xmm0, xmm3
movaps xmm1, xmm2
mulss xmm0, xmm4
mulss xmm1, xmm5
mulss xmm2, xmm4
mulss xmm3, xmm5
addss xmm1, xmm0
subss xmm2, xmm3
movss dword [edx], xmm1
add edx, 4
movss dword [ecx], xmm2
add ecx, 4
cmp eax, esi
jl 0x1002ae32
movss xmm0, dword [0x100e3a14]
movss xmm1, dword [0x100e3c60]
cmp byte [edi + 0x29], 0
jne 0x1002ae8b
cmp byte [edi + 0x2a], 0
je 0x1002af00
mov esi, dword [edi + 0x10]
xorps xmm6, xmm1
mov ecx, dword [edi + 0xc]
mov eax, esi
imul eax, dword [ebp - 0x90]
lea edx, [ecx + eax*4]
mov eax, esi
imul eax, dword [ebp - 0x8c]
ucomiss xmm4, xmm0
lea ecx, [ecx + eax*4]
lahf
test ah, 0x44
jp 0x1002aebe
ucomiss xmm6, xmm7
lahf
test ah, 0x44
jnp 0x1002af00
xor eax, eax
test esi, esi
jle 0x1002af00
movss xmm2, dword [ecx]
movaps xmm1, xmm4
movss xmm3, dword [edx]
movaps xmm0, xmm2
mulss xmm0, xmm6
inc eax
mulss xmm1, xmm3
mulss xmm3, xmm6
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm2
subss xmm0, xmm3
movss dword [edx], xmm1
add edx, 4
movss dword [ecx], xmm0
add ecx, 4
cmp eax, esi
jl 0x1002aec4
mov eax, dword [edi + 0x48]
lea esi, [edi + 0x44]
mov ecx, dword [esi]
lea edx, [eax*4 + 4]
mov eax, edx
imul eax, dword [ebp - 0x8c]
movss xmm0, dword [eax + ecx]
call fcn.100019e0
mov eax, dword [ebp - 0x90]
movaps xmm1, xmm0
imul edx, eax
movss xmm0, dword [edx + ecx]
call fcn.100019e0
mov edx, dword [ebp - 0x8c]
maxss xmm1, xmm0
maxss xmm1, dword [ebp - 0x94]
movss dword [ebp - 0x94], xmm1
jmp 0x1002af5f
movss xmm1, dword [ebp - 0x94]
lea esi, [edi + 0x44]
inc edx
mov dword [ebp - 0x8c], edx
cmp edx, eax
jl 0x1002ac50
mov ecx, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x90], eax
cmp eax, ecx
jl 0x1002ac40
cmp byte [ebp - 0x85], 0
je 0x1002ac20
xor esi, esi
mov dword [ebp - 0x20], esi
test ecx, ecx
jle 0x1002b0ae
movaps xmm3, xmmword [0x100e3c60]
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x44]
inc ecx
imul ecx, esi
movss xmm1, dword [eax + ecx*4]
movaps xmm0, xmm1
call fcn.100019e0
mov eax, dword [edi + 0x18]
movss dword [eax + esi*4], xmm0
cmp byte [edi + 0x27], 0
jne 0x1002afd0
cmp byte [edi + 0x28], 0
je 0x1002b0a1
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1002b0a1
mov edx, dword [edi + 4]
mov ecx, edx
mov eax, dword [edi]
imul ecx, esi
mov dword [ebp - 0x70], esi
mov esi, edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x44], edx
lea eax, [eax + ecx*4]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x84], eax
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x85]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x28], ecx
test al, 3
jne 0x1002b045
shr eax, 2
neg eax
and eax, 3
cmp eax, edx
cmovl esi, eax
mov eax, edx
sub eax, esi
mov eax, eax
test eax, eax
jns 0x1002b052
add eax, 3
sar eax, 2
lea eax, [esi + eax*4]
xor edx, edx
push esi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x18], eax
call fcn.100531f0
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp esi, ecx
jge 0x1002b08b
mov eax, dword [ebp - 0x4c]
movaps xmm1, xmm3
movups xmm0, xmmword [eax + esi*4]
mov eax, dword [ebp - 0x68]
xorps xmm1, xmm0
movups xmmword [eax + esi*4], xmm1
add esi, 4
cmp esi, ecx
jl 0x1002b070
push dword [ebp - 0x98]
mov edx, ecx
lea ecx, [ebp - 0x34]
call fcn.100531f0
mov esi, dword [ebp - 0x20]
add esp, 4
inc esi
mov dword [ebp - 0x20], esi
cmp esi, dword [edi + 0x3c]
jl 0x1002afa1
mov ecx, dword [edi + 0x18]
lea edx, [ebp - 0x20]
mov esi, dword [edi + 0x1c]
lea eax, [edi + 0x18]
movaps xmm1, xmmword [ebp - 0xb0]
mov dword [ebp - 0x50], edx
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x4c], edx
lea edx, [ebp - 0x85]
mov dword [ebp - 0x44], eax
mov eax, esi
mov dword [ebp - 0x48], edx
cdq
and edx, 3
movss dword [ebp - 0x3c], xmm1
add edx, eax
mov dword [ebp - 0x20], ecx
and edx, 0xfffffffc
xor eax, eax
test edx, edx
jle 0x1002b110
nop
movups xmm0, xmmword [ecx + eax*4]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movups xmmword [ecx + eax*4], xmm0
add eax, 4
cmp eax, edx
jge 0x1002b110
movss xmm1, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x20]
jmp 0x1002b0f0
push esi
lea ecx, [ebp - 0x50]
call fcn.100510e0
mov esi, dword [edi + 0x3c]
xor eax, eax
add esp, 4
mov dword [edi + 0x30], esi
mov dword [ebp - 0x8c], eax
test esi, esi
jle 0x1002b46a
xorps xmm4, xmm4
mov ecx, dword [edi + 0x1c]
sub esi, eax
mov eax, dword [edi + 0x18]
sub ecx, esi
movaps xmm0, xmm4
lea edx, [eax + ecx*4]
or ecx, 0xffffffff
mov dword [ebp - 0x20], edx
test esi, esi
je 0x1002b204
movss xmm0, dword [edx]
xor ecx, ecx
lea eax, [ecx + 1]
cmp esi, eax
jle 0x1002b204
cmp esi, 4
jle 0x1002b1f0
lea edi, [esi - 3]
add edx, 0xc
mov dword [ebp - 0x98], edi
mov edi, dword [ebp - 0x9c]
nop
movss xmm1, dword [edx - 8]
movaps xmm3, xmm0
comiss xmm1, xmm0
mov dword [ebp - 0x18], ecx
jbe 0x1002b193
movaps xmm0, xmm1
movss xmm2, dword [edx - 4]
mov ecx, eax
comiss xmm1, xmm3
cmovbe ecx, dword [ebp - 0x18]
comiss xmm2, xmm0
jbe 0x1002b1ac
movaps xmm0, xmm2
lea ecx, [eax + 1]
movss xmm1, dword [edx]
comiss xmm1, xmm0
jbe 0x1002b1bb
movaps xmm0, xmm1
lea ecx, [eax + 2]
movss xmm1, dword [edx + 4]
comiss xmm1, xmm0
jbe 0x1002b1cb
movaps xmm0, xmm1
lea ecx, [eax + 3]
add eax, 4
add edx, 0x10
cmp eax, dword [ebp - 0x98]
jl 0x1002b180
mov edx, eax
mov dword [ebp - 0x18], eax
movss dword [ebp - 0x18], xmm0
cmp edx, esi
jge 0x1002b204
mov edx, dword [ebp - 0x20]
nop word [eax + eax]
movss xmm1, dword [edx + eax*4]
comiss xmm1, xmm0
jbe 0x1002b1ff
movaps xmm0, xmm1
mov ecx, eax
inc eax
cmp eax, esi
jl 0x1002b1f0
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x1002b461
test ecx, ecx
je 0x1002b447
mov esi, dword [ebp - 0x8c]
lea edx, [ecx + esi]
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x90], edx
movss xmm0, dword [ecx + esi*4]
mov eax, dword [ecx + edx*4]
mov dword [ecx + esi*4], eax
movss dword [ecx + edx*4], xmm0
cmp byte [edi + 0x27], 0
jne 0x1002b24b
cmp byte [edi + 0x28], 0
je 0x1002b344
mov esi, dword [edi + 4]
mov eax, esi
mov ecx, dword [edi]
imul eax, edx
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xfc], esi
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x38], esi
lea edx, [ecx + eax*4]
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xec], eax
mov eax, esi
imul eax, dword [ebp - 0x8c]
mov dword [ebp - 0x100], edx
mov dword [ebp - 0x40], edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0x74]
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x85]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x100]
mov dword [ebp - 0xa4], eax
mov eax, esi
test dl, 3
jne 0x1002b2e2
shr edx, 2
neg edx
and edx, 3
cmp edx, eax
cmovl esi, edx
sub eax, esi
mov eax, eax
test eax, eax
jns 0x1002b2ed
add eax, 3
sar eax, 2
lea eax, [esi + eax*4]
xor edx, edx
push esi
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x18], eax
call fcn.10051190
mov edx, dword [ebp - 0x18]
add esp, 4
cmp esi, edx
jge 0x1002b330
nop
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x74]
movups xmm0, xmmword [eax + esi*4]
movups xmm1, xmmword [ecx + esi*4]
movups xmmword [ecx + esi*4], xmm0
mov eax, dword [ebp - 0x40]
movups xmmword [eax + esi*4], xmm1
add esi, 4
cmp esi, edx
jl 0x1002b310
push dword [ebp - 0x94]
lea ecx, [ebp - 0xb0]
call fcn.10051190
add esp, 4
cmp byte [edi + 0x29], 0
jne 0x1002b354
cmp byte [edi + 0x2a], 0
je 0x1002b447
mov esi, dword [edi + 0x10]
lea ecx, [edi + 0xc]
mov edx, dword [ecx]
mov eax, esi
imul eax, dword [ebp - 0x90]
mov dword [ebp - 0xc0], ecx
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x9d]
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x44], ecx
mov ecx, esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xc8], esi
lea eax, [edx + eax*4]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xb8], eax
mov eax, esi
imul eax, dword [ebp - 0x8c]
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x60], esi
lea eax, [edx + eax*4]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x68], eax
test al, 3
jne 0x1002b3eb
shr eax, 2
neg eax
and eax, 3
cmp eax, ecx
cmovl esi, eax
mov eax, ecx
sub eax, esi
mov eax, eax
test eax, eax
jns 0x1002b3f8
add eax, 3
sar eax, 2
lea eax, [esi + eax*4]
xor edx, edx
push esi
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x18], eax
call fcn.10051190
mov edx, dword [ebp - 0x18]
add esp, 4
cmp esi, edx
jge 0x1002b436
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x30]
movups xmm0, xmmword [eax + esi*4]
movups xmm1, xmmword [ecx + esi*4]
movups xmmword [ecx + esi*4], xmm0
mov eax, dword [ebp - 0x68]
movups xmmword [eax + esi*4], xmm1
add esi, 4
cmp esi, edx
jl 0x1002b416
push dword [ebp - 0x94]
lea ecx, [ebp - 0x50]
call fcn.10051190
add esp, 4
mov eax, dword [ebp - 0x8c]
mov esi, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, esi
jl 0x1002b135
jmp 0x1002b46a
mov eax, dword [ebp - 0x8c]
mov dword [edi + 0x30], eax
mov eax, edi
mov byte [edi + 0x24], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10078315
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.10002c20
call fcn.10002c20
call fcn.10002c20
int3