Function at 0xaed3f4
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 0xaed44a
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.00b06804
cmp dword [esi + 0x164], 0
je 0xaee086
cmp dword [esi + 0x170], 0
je 0xaee086
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 0xaed492
xor ecx, ecx
jmp 0xaed498
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.00b62444
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 0xaed611
mov edx, dword [esi + 0x14c]
cmp edx, 0xffffffff
jle 0xaed611
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.00b06804
mov eax, dword [esi + 0x100]
test al, 2
jne 0xaed974
cmp dword [esi + 0x170], 0
mov dword [esp + 0xc], 0
jle 0xaed82f
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 0xaed78a
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.00accce4
add esp, 0x10
lea ecx, [esp + 0x48]
call fcn.00b3ee64
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.00b09e74
mov eax, dword [esp + 0xc]
test eax, eax
je 0xaed81e
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 0xaed634
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 0xaedc46
cmp dword [esi + 0x164], 0
mov dword [esp + 0xc], 0
jle 0xaedbc8
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 0xaedb29
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.00accce4
add esp, 0x10
lea ecx, [esp + 0x48]
call fcn.00b3ee64
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.00b09e74
mov edx, dword [esp + 0xc]
test edx, edx
je 0xaedbb7
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 0xaed996
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 0xaee072
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.00b60bb0
mov edi, eax
mov dword [esp + 0x10], eax
add esp, 4
test edi, edi
je 0xaedc91
push dword [esp + 0x18]
push 0
push edi
call fcn.00b62444
add esp, 0xc
jmp 0xaedc97
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 0xaee05e
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0xaedcc8
mov edi, dword [esp + 0xc]
xor edx, edx
mov dword [esp + 0x1c], edx
cmp dword [esi + 0x170], edx
jle 0xaedd8e
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 0xaedcf4
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 0xaede12
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 0xaede24
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 0xaee042
cmp dword [ecx + edx + 0xc], 0
jne 0xaede59
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 0xaee042
mov eax, dword [esi + 0x17c]
mov eax, dword [ecx + eax]
push eax
push dword [esp + 0x18]
cmp dword [esi + 0x14c], edi
jne 0xaedf27
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 0xaee035
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 0xaedfc8
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 0xaee035
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 0xaede67
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 0xaedcc4
mov eax, dword [esp + 0xc]
test eax, eax
je 0xaee06f
push eax
call fcn.00b60b6d
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.00afb304
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
xor ecx, esp
call fcn.00b60b5c
mov esp, ebp
pop ebp
ret 8