Function at 0xaed3fc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x148
mov eax, dword [0x100d6004]
xor eax, esp
mov dword [esp + 0x144], eax
push esi
mov esi, ecx
mov dword [esp + 0x20], edx
push edi
mov edi, dword [ebp + 8]
test byte [esi + 0x100], 1
jne 0xaed452
push 0xff
push dword [esi + 0x54]
xor eax, eax
push dword [esi + 0x50]
cmp byte [esi + 0xe5], al
push 0
push 0
setne al
push eax
push edi
push edx
push dword [esi + 0x19c]
call fcn.00b0680c
cmp dword [esi + 0x164], 0
je 0xaee08e
cmp dword [esi + 0x170], 0
je 0xaee08e
push 1
push edi
call dword [0x100db3b0]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0
call dword [0x100db3d4]
mov eax, dword [esi + 0x19c]
cmp dword [eax + 0xc], 4
jg 0xaed49a
xor ecx, ecx
jmp 0xaed4a0
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
lea eax, [esp + 8]
push eax
xor eax, eax
cmp ecx, 2
push 2
setg al
inc eax
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esi + 0x108]
call dword [0x100db3c4]
push 0
push dword [esp + 0xc]
call dword [0x100db3e4]
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
push 0x100
lea eax, [esp + 0x4c]
push 0
push eax
call fcn.00b6244c
mov eax, dword [esi + 0x194]
xorps xmm0, xmm0
sub eax, dword [esi + 0x180]
add esp, 0xc
movaps xmmword [esp + 0x30], xmm0
movd xmm0, dword [esi + 0x170]
cvtdq2pd xmm0, xmm0
mov ecx, dword [esi + 0x198]
sub ecx, dword [esi + 0x184]
sub ecx, dword [esi + 0x188]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mov eax, dword [esi + 0x164]
dec eax
movd xmm3, ecx
divsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm3, xmm3
mov eax, dword [esi + 0x120]
sub eax, dword [esi + 0x124]
cvtdq2pd xmm0, xmm0
cvtpd2ps xmm2, xmm1
movaps xmm1, xmm3
divsd xmm1, xmm0
movss dword [esp + 0x20], xmm2
cvtpd2ps xmm0, xmm1
movss dword [esp + 0x18], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov eax, dword [esi + 0x100]
divsd xmm3, xmm0
movsd qword [esp + 0x28], xmm3
test al, 0x20
jne 0xaed619
mov edx, dword [esi + 0x14c]
cmp edx, 0xffffffff
jle 0xaed619
push 0xff
movaps xmm0, xmm2
lea eax, [ecx - 2]
subss xmm0, dword [0x100c6470]
mov ecx, dword [esi + 0x184]
push eax
inc ecx
cvttss2si eax, xmm0
movd xmm0, edx
push eax
mov eax, dword [esi + 0x190]
add eax, ecx
push eax
mov eax, dword [esi + 0x18c]
add eax, dword [esi + 0x180]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm2
addss xmm1, xmm0
addss xmm1, dword [0x100c63c4]
cvttss2si eax, xmm1
push eax
xor eax, eax
cmp byte [esi + 0xe5], al
setne al
add eax, 2
push eax
push edi
push dword [esp + 0x40]
push dword [esi + 0x19c]
call fcn.00b0680c
mov eax, dword [esi + 0x100]
test al, 2
jne 0xaed97c
cmp dword [esi + 0x170], 0
mov dword [esp + 0xc], 0
jle 0xaed837
nop word [eax + eax]
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x108]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x18c]
sub esp, 0x10
add eax, dword [esi + 0x180]
movd xmm0, dword [esp + 0x1c]
mov ecx, dword [esi + 0x190]
sub ecx, dword [esi + 0x188]
add ecx, dword [esi + 0x198]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
lea eax, [ecx + 5]
mulss xmm0, dword [esp + 0x30]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x20], xmm0
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
mov ecx, dword [esi + 0x174]
mov eax, dword [esp + 0xc]
cmp dword [ecx + eax*4], 0
je 0xaed792
mov eax, dword [esi + 0x18c]
add eax, dword [esi + 0x180]
mov edx, dword [esi + 0x188]
mov ecx, dword [esi + 0x190]
sub ecx, edx
movd xmm0, eax
mov eax, dword [esi + 0x198]
cvtdq2ps xmm0, xmm0
add eax, 5
add eax, ecx
mov ecx, dword [esp + 0xc]
addss xmm0, dword [esp + 0x10]
movss dword [esp + 0x30], xmm0
movd xmm0, eax
lea eax, [ecx + 1]
cvtdq2ps xmm0, xmm0
push eax
mov eax, dword [esi + 0x174]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x3c], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x40], xmm0
mov eax, dword [eax + ecx*4]
add eax, 8
push eax
lea eax, [esp + 0x50]
push 0x80
push eax
call fcn.00acccec
add esp, 0x10
lea ecx, [esp + 0x48]
call fcn.00b3ee6c
push dword [esi + 0x118]
lea ecx, [esp + 0x34]
push dword [esi + 0x15c]
push dword [0x100d80d8]
push ecx
push 0xffffffffffffffff
push eax
push edi
call fcn.00b09e7c
mov eax, dword [esp + 0xc]
test eax, eax
je 0xaed826
push dword [esi + 0x10c]
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x110]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x18c]
sub esp, 0x10
add eax, dword [esi + 0x180]
mov ecx, dword [esi + 0x190]
movd xmm1, eax
mov eax, ecx
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esi + 0x184]
addss xmm1, dword [esp + 0x20]
cvtdq2ps xmm0, xmm0
add eax, ecx
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
cmp eax, dword [esi + 0x170]
jl 0xaed63c
push dword [esi + 0x10c]
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x110]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov ecx, dword [esi + 0x190]
sub esp, 0x10
movd xmm1, dword [esi + 0x194]
mov eax, ecx
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esi + 0x184]
cvtdq2ps xmm0, xmm0
add eax, ecx
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x108]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x190]
sub esp, 0x10
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
movd xmm0, dword [esi + 0x194]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov eax, dword [esi + 0x18c]
add eax, dword [esi + 0x180]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
mov ecx, dword [esi + 0x190]
sub esp, 0x10
sub ecx, dword [esi + 0x188]
add ecx, dword [esi + 0x198]
movd xmm1, dword [esi + 0x194]
cvtdq2ps xmm1, xmm1
lea eax, [ecx + 5]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
test byte [esi + 0x100], 4
jne 0xaedc4e
cmp dword [esi + 0x164], 0
mov dword [esp + 0xc], 0
jle 0xaedbd0
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x128]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x190]
sub esp, 0x10
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
movd xmm0, dword [esp + 0x1c]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mulss xmm0, dword [esp + 0x28]
mov eax, dword [esi + 0x180]
add eax, dword [esi + 0x18c]
cvtdq2ps xmm1, xmm1
movss dword [esp + 0x20], xmm0
subss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
add eax, 0xfffffffb
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
mov eax, dword [esi + 0x168]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x1c], eax
test eax, eax
je 0xaedb31
mov ecx, dword [esi + 0x124]
mov eax, dword [esi + 0x120]
sub eax, ecx
movd xmm1, eax
mov eax, dword [esi + 0x164]
dec eax
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
cvttsd2si eax, xmm1
push eax
mov eax, dword [esp + 0x20]
add eax, 8
push eax
lea eax, [esp + 0x50]
push 0x80
push eax
call fcn.00acccec
add esp, 0x10
lea ecx, [esp + 0x48]
call fcn.00b3ee6c
mov ecx, dword [esi + 0x190]
mov edx, eax
sub ecx, dword [esi + 0x188]
add ecx, dword [esi + 0x198]
push dword [esi + 0x138]
mov eax, dword [esi + 0x180]
push dword [esi + 0x160]
movd xmm0, ecx
mov ecx, dword [esi + 0x18c]
push dword [0x100d80e8]
cvtdq2ps xmm0, xmm0
add ecx, 0xfffffffb
mov dword [esp + 0x3c], 0
add eax, ecx
mov dword [esp + 0x48], 0x43480000
subss xmm0, dword [esp + 0x1c]
subss xmm0, dword [0x100c653c]
movss dword [esp + 0x40], xmm0
movd xmm0, eax
lea eax, [esp + 0x3c]
push eax
cvtdq2ps xmm0, xmm0
push 0xffffffffffffffff
push edx
push edi
movss dword [esp + 0x54], xmm0
call fcn.00b09e7c
mov edx, dword [esp + 0xc]
test edx, edx
je 0xaedbbf
push dword [esi + 0x12c]
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x130]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x190]
sub esp, 0x10
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
movd xmm0, dword [esi + 0x194]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov eax, dword [esi + 0x18c]
add eax, dword [esi + 0x180]
cvtdq2ps xmm1, xmm1
subss xmm1, dword [esp + 0x20]
movss dword [esp + 0xc], xmm1
movss dword [esp + 8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
cmp edx, dword [esi + 0x164]
jl 0xaed99e
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
push dword [esi + 0x128]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x18c]
sub esp, 0x10
add eax, dword [esi + 0x180]
mov ecx, dword [esi + 0x190]
movd xmm1, eax
mov eax, ecx
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esi + 0x184]
cvtdq2ps xmm0, xmm0
add eax, ecx
movss dword [esp + 0xc], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push dword [esp + 0x18]
push edi
call dword [0x100db3b4]
test byte [esi + 0x100], 8
jne 0xaee07a
mov eax, dword [esi + 0x170]
xor ecx, ecx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
mov dword [esp + 0x1c], ecx
call fcn.00b60bb8
mov edi, eax
mov dword [esp + 0x10], eax
add esp, 4
test edi, edi
je 0xaedc99
push dword [esp + 0x18]
push 0
push edi
call fcn.00b6244c
add esp, 0xc
jmp 0xaedc9f
xor edi, edi
mov dword [esp + 0xc], edi
push 2
push dword [ebp + 8]
call dword [0x100db3b0]
cmp dword [esi + 0x158], 0
mov dword [esp + 0x18], 0
jle 0xaee066
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0xaedcd0
mov edi, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [esi + 0x170], edx
jle 0xaedd96
movss xmm3, dword [esp + 0x20]
movsd xmm4, qword [esp + 0x28]
movaps xmm2, xmm3
mulss xmm2, dword [0x100c63c0]
nop dword [eax]
mov eax, dword [esi + 0x18c]
add eax, dword [esi + 0x180]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm3
addss xmm1, xmm0
addss xmm1, xmm2
movss dword [edi + edx*8], xmm1
mov eax, dword [esi + 0x190]
sub eax, dword [esi + 0x188]
add eax, dword [esi + 0x198]
movd xmm1, eax
mov eax, dword [esi + 0x124]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x1c]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, dword [esi + 0x17c]
cvtdq2pd xmm0, xmm0
mov eax, dword [ecx + eax + 0x14]
mulsd xmm0, xmm4
subsd xmm1, xmm0
movd xmm0, dword [eax + edx*4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm4
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + edx*8 + 4], xmm0
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esi + 0x170]
jl 0xaedcfc
push 0
push dword [esp + 0xc]
call dword [0x100db3e0]
mov eax, dword [esi + 0x17c]
mov edi, dword [esp + 0x10]
push dword [edi + eax]
push dword [esp + 0xc]
call dword [0x100db3a8]
mov eax, dword [esi + 0x17c]
push ecx
movd xmm0, dword [edi + eax + 0x18]
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esp + 0xc]
call dword [0x100db454]
mov eax, dword [esi + 0x17c]
mov ecx, dword [edi + eax + 4]
mov eax, dword [esi + 0x170]
test ecx, ecx
je 0xaede1a
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
push ecx
divsd xmm0, qword [0x100c64f0]
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push eax
push dword [esp + 0x14]
push dword [esp + 0x14]
push dword [ebp + 8]
call dword [0x100db458]
jmp 0xaede2c
push eax
push dword [esp + 0x10]
push dword [esp + 0x10]
push dword [ebp + 8]
call dword [0x100db45c]
mov edx, dword [esi + 0x17c]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + edx + 8]
test eax, eax
jle 0xaee04a
cmp dword [ecx + edx + 0xc], 0
jne 0xaede61
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100c6458]
cvttsd2si eax, xmm0
mov dword [ecx + edx + 0xc], eax
xor edi, edi
cmp dword [esi + 0x170], edi
jle 0xaee04a
mov eax, dword [esi + 0x17c]
mov eax, dword [ecx + eax]
push eax
push dword [esp + 0x18]
cmp dword [esi + 0x14c], edi
jne 0xaedf2f
call dword [0x100db3b8]
mov eax, dword [esi + 0x17c]
sub esp, 0x10
mov ecx, dword [esp + 0x20]
movd xmm0, dword [ecx + eax + 0xc]
mov eax, dword [esp + 0x1c]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
cvtps2pd xmm1, xmm0
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + edi*8 + 4]
mulsd xmm1, qword [0x100c63f0]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + edi*8]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esp + 0x24]
push dword [ebp + 8]
call dword [0x100db404]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + eax + 0x10], 0
jne 0xaee03d
push 0xffffffffffffffff
push dword [esp + 0x18]
call dword [0x100db3b8]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x10]
movd xmm0, dword [ecx + eax + 0xc]
jmp 0xaedfd0
call dword [0x100db3b8]
mov eax, dword [esi + 0x17c]
sub esp, 0x10
mov ecx, dword [esp + 0x20]
movd xmm0, dword [ecx + eax + 8]
mov eax, dword [esp + 0x1c]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
cvtps2pd xmm1, xmm0
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + edi*8 + 4]
mulsd xmm1, qword [0x100c63f0]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + edi*8]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esp + 0x24]
push dword [ebp + 8]
call dword [0x100db404]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x10]
cmp dword [ecx + eax + 0x10], 0
jne 0xaee03d
push 0xffffffffffffffff
push dword [esp + 0x18]
call dword [0x100db3b8]
mov eax, dword [esi + 0x17c]
mov ecx, dword [esp + 0x10]
movd xmm0, dword [ecx + eax + 8]
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0xc]
sub esp, 0x10
cvtps2pd xmm1, xmm0
movaps xmm0, xmm1
mulsd xmm1, qword [0x100c63d8]
mulsd xmm0, qword [0x100c63f0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + edi*8 + 4]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [eax + edi*8]
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [esp], xmm0
push dword [esp + 0x24]
push dword [ebp + 8]
call dword [0x100db404]
mov ecx, dword [esp + 0x10]
inc edi
cmp edi, dword [esi + 0x170]
jl 0xaede6f
mov eax, dword [esp + 0x18]
add ecx, 0x1c
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
cmp eax, dword [esi + 0x158]
jl 0xaedccc
mov eax, dword [esp + 0xc]
test eax, eax
je 0xaee077
push eax
call fcn.00b60b75
add esp, 4
mov edi, dword [ebp + 8]
push dword [esp + 0x14]
call dword [0x100db3c8]
push dword [esp + 8]
call dword [0x100db3c0]
push dword [esi + 0x54]
push dword [esi + 0x50]
push 0
push 0
push edi
push dword [esp + 0x38]
push esi
call fcn.00afb30c
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
xor ecx, esp
call fcn.00b60b64
mov esp, ebp
pop ebp
ret 8