Function at 0x100a0d30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x1015f6c0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
xor ecx, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], ecx
test esi, esi
je 0x100a14af
nop word [eax + eax]
mov eax, esi
mov edx, 0x80
sub edx, dword [edi + 0x10]
sub eax, ecx
cmp edx, eax
cmova edx, eax
mov eax, dword [edi + 0x14]
add eax, 8
mov dword [ebp - 8], edx
add eax, dword [edi + 0x10]
lea esi, [edi + eax*4]
lea eax, [edx*4]
mov dword [ebp - 0xc], eax
test edx, edx
je 0x100a0dba
push eax
mov eax, dword [ebp - 0x18]
add eax, 0x1c10
push esi
lea eax, [edi + eax*4]
push eax
call fcn.100c0fd0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
push dword [ebp - 0xc]
lea eax, [eax + ecx*4]
push eax
push esi
call fcn.100c0fd0
mov edx, dword [ebp - 8]
add esp, 0x18
add dword [edi + 0x10], edx
add dword [ebp - 0x18], edx
cmp dword [edi + 0x10], 0x80
jb 0x100a14ac
mov edx, dword [edi + 0x14]
mov eax, 0x400
sub edx, 0xffffff80
mov dword [edi + 0x10], 0
and edx, 0x3ff
xor ecx, ecx
sub eax, edx
mov dword [ebp - 8], edx
mov dword [edi + 0x14], edx
cmp eax, 4
jb 0x100a0e99
add edx, 9
lea eax, [edi + 0x3034]
mov esi, 0x3fc
lea edx, [edi + edx*4]
mov edi, dword [ebp - 8]
sub esi, edi
shr esi, 2
inc esi
lea edi, [edi + esi*4]
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0x20]
nop dword [eax + eax]
movss xmm0, dword [ecx*4 + 0x10167b50]
lea eax, [eax + 0x20]
mulss xmm0, dword [edx - 4]
lea edx, [edx + 0x10]
movss dword [eax - 0x2c], xmm0
mov dword [eax - 0x28], 0
movss xmm0, dword [ecx*4 + 0x10167b54]
mulss xmm0, dword [edx - 0x10]
movss dword [eax - 0x24], xmm0
mov dword [eax - 0x20], 0
movss xmm0, dword [ecx*4 + 0x10167b58]
mulss xmm0, dword [edx - 0xc]
movss dword [eax - 0x1c], xmm0
mov dword [eax - 0x18], 0
movss xmm0, dword [ecx*4 + 0x10167b5c]
add ecx, 4
mulss xmm0, dword [edx - 8]
movss dword [eax - 0x14], xmm0
mov dword [eax - 0x10], 0
sub esi, 1
jne 0x100a0e20
mov edx, dword [ebp - 8]
cmp edx, 0x400
jae 0x100a0ef2
lea esi, [ecx*4 + 0x10167b50]
add ecx, 0x605
lea eax, [edx + 8]
lea eax, [edi + eax*4]
mov dword [ebp - 0xc], eax
lea eax, [edi + ecx*8]
mov ecx, 0x400
sub ecx, edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
nop word [eax + eax]
movss xmm0, dword [ecx]
lea eax, [eax + 8]
mulss xmm0, dword [esi]
lea ecx, [ecx + 4]
mov dword [eax - 4], 0
lea esi, [esi + 4]
movss dword [eax - 8], xmm0
sub edx, 1
jne 0x100a0ed0
mov eax, dword [edi + 0x14]
mov ecx, 0x400
sub ecx, eax
xor esi, esi
mov dword [ebp - 0xc], ecx
test eax, eax
je 0x100a0f44
mov eax, dword [ebp - 0xc]
lea ecx, [ecx*4 + 0x10167b50]
add eax, 0x605
lea edx, [edi + 0x20]
lea eax, [edi + eax*8]
nop word [eax + eax]
movss xmm0, dword [ecx]
lea edx, [edx + 4]
mulss xmm0, dword [edx - 4]
lea eax, [eax + 8]
mov dword [eax - 4], 0
lea ecx, [ecx + 4]
inc esi
movss dword [eax - 8], xmm0
cmp esi, dword [edi + 0x14]
jb 0x100a0f20
lea ecx, [edi + 0x3028]
push ecx
lea eax, [ecx + 0x2000]
mov dword [esp], 0xbf800000
push eax
push ecx
mov dword [ebp - 0x24], ecx
call fcn.100bb440
add esp, 0xc
lea eax, [edi + 0x1020]
mov edi, dword [ebp - 0x24]
xor esi, esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], eax
nop word [eax + eax]
movss xmm0, dword [edi + 4]
movss xmm1, dword [edi]
movss dword [ebp - 0x1c], xmm0
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x10], xmm1
movsd qword [ebp - 0x28], xmm0
fld qword [ebp - 0x28]
cvtps2pd xmm0, xmm1
movsd qword [ebp - 0x28], xmm0
fld qword [ebp - 0x28]
call fcn.100cea20
mov ecx, dword [ebp - 8]
mov eax, esi
and eax, 7
xorps xmm0, xmm0
fstp dword [ebp - 0x24]
movss xmm1, dword [ebp - 0x24]
sub esp, 8
fld dword [ebp - 0x1c]
movaps xmm2, xmm1
subss xmm2, dword [ecx]
cvtsi2sd xmm0, eax
shr eax, 0x1f
movss dword [ecx], xmm1
addsd xmm0, qword [eax*8 + 0x100fb3c0]
fstp dword [esp + 4]
fld dword [ebp - 0x10]
fstp dword [esp]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x1010b520]
subss xmm2, xmm0
mulss xmm2, dword [0x1010b51c]
movss dword [ebp - 0x24], xmm2
cvttss2si esi, xmm2
call fcn.100d2cc7
mov eax, esi
add esp, 8
fstp dword [edi + 0x2000]
and eax, 0x80000001
jns 0x100a1029
dec eax
or eax, 0xfffffffe
inc eax
movss xmm1, dword [ebp - 0x24]
add eax, esi
mov esi, dword [ebp - 0xc]
add dword [ebp - 8], 4
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
shr eax, 0x1f
subss xmm1, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
inc esi
mov dword [ebp - 0xc], esi
mulss xmm1, dword [0x10109afc]
addsd xmm0, qword [eax*8 + 0x100fb3c0]
cvtpd2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [edi + 0x2004], xmm1
add edi, 8
cmp esi, 0x201
jb 0x100a0f80
mov edi, dword [ebp - 0x20]
xorps xmm0, xmm0
movq qword [ebp - 0x14], xmm0
lea eax, [edi + 0x7038]
lea esi, [edi + 0x6030]
cmp esi, eax
je 0x100a10b6
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [esi], edx
mov dword [esi + 4], ecx
add esi, 8
cmp esi, eax
jne 0x100a10a4
lea esi, [edi + 0x6030]
xor edx, edx
lea ecx, [edi + 0x18]
mov eax, 0x2007fff
mov dword [ebp - 0x1c], ecx
div dword [ecx]
mov ecx, 0x201
inc eax
cmp eax, ecx
cmovb ecx, eax
xor edx, edx
mov dword [ebp - 0x10], ecx
test ecx, ecx
je 0x100a1137
mov esi, dword [ebp - 0x10]
lea ecx, [edi + 0x5028]
mov eax, dword [ebp - 0x1c]
movss xmm0, dword [ecx]
mov eax, dword [eax]
imul eax, edx
add eax, 0x8000
shr eax, 0x10
comiss xmm0, dword [edi + eax*8 + 0x6030]
jbe 0x100a1113
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [edi + 0x1c]
movss dword [edi + eax*8 + 0x6034], xmm0
movss xmm0, dword [ecx]
inc edx
addss xmm0, dword [edi + eax*8 + 0x6030]
add ecx, 8
movss dword [edi + eax*8 + 0x6030], xmm0
cmp edx, esi
jb 0x100a10e2
lea esi, [edi + 0x6030]
lea edx, [edi + 0x1824]
mov edi, 0x201
mov dword [ebp - 8], edx
nop word [eax + eax]
movss xmm1, dword [esi + 4]
mulss xmm1, dword [0x1010b520]
addss xmm1, dword [edx]
mulss xmm1, dword [0x1010b51c]
cvttss2si ecx, xmm1
mov eax, ecx
and eax, 0x80000001
jns 0x100a117b
dec eax
or eax, 0xfffffffe
inc eax
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
mulss xmm1, dword [0x1010457c]
movss dword [edx], xmm1
movss xmm0, dword [esi]
movss dword [ebp - 0x10], xmm0
mov eax, dword [ebp - 0x10]
and eax, 0x7fffffff
movss dword [ebp - 0x1c], xmm1
cmp eax, 0x7f800000
ja 0x100a120f
movss dword [ebp - 0x10], xmm0
mov eax, dword [ebp - 0x10]
and eax, 0x7fffffff
cmp eax, 0x7f800000
je 0x100a120f
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100a120f
cvtps2pd xmm0, xmm1
call fcn.100cf4c0
movss xmm1, dword [ebp - 0x1c]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esi]
movss dword [ebp - 0x10], xmm0
movss dword [ebp - 0x30], xmm0
cvtps2pd xmm0, xmm1
call fcn.100cf680
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [ebp - 0x10]
mulss xmm1, dword [esi]
movss dword [ebp - 0x2c], xmm1
jmp 0x100a127e
push ecx
movss dword [esp], xmm0
call fcn.100c84e1
add esp, 4
push dword [ebp - 8]
test eax, eax
je 0x100a1267
movss xmm0, dword [esi]
lea eax, [ebp - 0x10]
xorps xmm0, xmmword [0x101045f0]
push eax
lea eax, [ebp - 0x40]
movss dword [ebp - 0x10], xmm0
push eax
call fcn.100a15e0
movss xmm2, dword [0x101045f0]
add esp, 0xc
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
xorps xmm0, xmm2
xorps xmm1, xmm2
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x2c], xmm1
jmp 0x100a1286
lea eax, [ebp - 0x30]
push esi
push eax
call fcn.100a15e0
movss xmm1, dword [ebp - 0x2c]
add esp, 0xc
movss xmm0, dword [ebp - 0x30]
movss xmm2, dword [0x101045f0]
mov edx, dword [ebp - 8]
movss dword [esi - 0x3008], xmm0
add edx, 4
movss dword [esi - 0x3004], xmm1
add esi, 8
mov dword [ebp - 8], edx
sub edi, 1
jne 0x100a1150
mov edi, dword [ebp - 0x20]
mov edx, 0x49
lea eax, [edi + 0x403c]
lea ecx, [edi + 0x401c]
nop
movss xmm1, dword [ecx + 8]
lea eax, [eax + 0x38]
movss xmm0, dword [ecx + 4]
xorps xmm1, xmm2
movss dword [eax - 0x44], xmm0
lea ecx, [ecx - 0x38]
movss dword [eax - 0x40], xmm1
movss xmm1, dword [ecx + 0x38]
movss xmm0, dword [ecx + 0x34]
xorps xmm1, xmm2
movss dword [eax - 0x3c], xmm0
movss dword [eax - 0x38], xmm1
movss xmm1, dword [ecx + 0x30]
movss xmm0, dword [ecx + 0x2c]
xorps xmm1, xmm2
movss dword [eax - 0x34], xmm0
movss dword [eax - 0x30], xmm1
movss xmm1, dword [ecx + 0x28]
movss xmm0, dword [ecx + 0x24]
xorps xmm1, xmm2
movss dword [eax - 0x2c], xmm0
movss dword [eax - 0x28], xmm1
movss xmm1, dword [ecx + 0x20]
movss xmm0, dword [ecx + 0x1c]
xorps xmm1, xmm2
movss dword [eax - 0x24], xmm0
movss dword [eax - 0x20], xmm1
movss xmm1, dword [ecx + 0x18]
movss xmm0, dword [ecx + 0x14]
xorps xmm1, xmm2
movss dword [eax - 0x1c], xmm0
movss dword [eax - 0x18], xmm1
movss xmm1, dword [ecx + 0x10]
movss xmm0, dword [ecx + 0xc]
xorps xmm1, xmm2
movss dword [eax - 0x14], xmm0
movss dword [eax - 0x10], xmm1
sub edx, 1
jne 0x100a12c0
lea ecx, [edi + 0x3028]
push ecx
lea eax, [ecx + 0x2000]
mov dword [esp], 0x3f800000
push eax
push ecx
call fcn.100bb440
mov eax, dword [edi + 0x14]
add esp, 0xc
movss xmm1, dword [0x1010b518]
cmp eax, 0x400
jae 0x100a13e2
add eax, 0x80a
lea edx, [edi + 0x3028]
mov esi, 0x400
mov ecx, 0x10167b50
sub esi, dword [edi + 0x14]
lea eax, [edi + eax*4]
nop dword [eax + eax]
movss xmm0, dword [edx]
add edx, 8
mulss xmm0, dword [ecx]
add ecx, 4
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
sub esi, 1
jne 0x100a13c0
mov ecx, dword [edi + 0x14]
mov edx, 0x400
xor esi, esi
sub edx, ecx
test ecx, ecx
je 0x100a1439
lea ecx, [edx*4 + 0x10167b50]
add edx, 0x605
lea eax, [edi + 0x2028]
lea edx, [edi + edx*8]
nop dword [eax + eax]
movss xmm0, dword [ecx]
inc esi
mulss xmm0, dword [edx]
add ecx, 4
add edx, 8
mulss xmm0, xmm1
addss xmm0, dword [eax]
movss dword [eax], xmm0
add eax, 4
mov dword [ebp - 0x10], eax
cmp esi, dword [edi + 0x14]
jb 0x100a1410
mov ecx, dword [edi + 0x14]
lea eax, [edi + 0x2028]
lea eax, [eax + ecx*4]
push 0x200
push eax
lea eax, [edi + 0x20]
lea eax, [eax + ecx*4]
push eax
call fcn.100c0fd0
mov eax, dword [edi + 0x14]
lea ecx, [ebp - 0x38]
add eax, 0x80a
mov dword [ebp - 0x34], 0
add esp, 0xc
mov dword [ebp - 0x38], 0
lea edx, [edi + eax*4]
lea eax, [ebp - 0x34]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x100a148e
push 0x200
push 0
push edx
call fcn.100c1550
add esp, 0xc
jmp 0x100a149c
mov ecx, 0x80
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
cmp ecx, esi
jb 0x100a0d60
jmp 0x100a14af
mov esi, dword [ebp + 8]
push 0
mov eax, 0x200
lea edx, [edi + 0x7040]
cmp esi, eax
lea ecx, [edx + esi*4]
cmova eax, esi
push eax
lea eax, [edi + 0x8080]
push eax
lea eax, [edi + 0x8040]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ecx
push edx
call dword [0x1015f4e8]
mov ecx, dword [ebp - 4]
add esp, 0x20
xor ecx, ebp
pop edi
pop esi
call fcn.100bf2d0
mov esp, ebp
pop ebp
ret 0x14