Function at 0x100aa66b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x10331c40]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x103266a8], 0
push edi
mov edi, ecx
je 0x100aaaaa
cmp byte [edi + 5], 0
je 0x100aaaa6
mov eax, dword [0x103266ac]
xorps xmm0, xmm0
dec eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
movups xmmword [ebp - 0x34], xmm0
mov byte [ebp - 0x34], 0
cmp eax, 6
ja case.default.0x100aa592
jmp dword [eax*4 + 0x100aaabc]
lea eax, [ebp - 0x1c]
mov ecx, 0x103295a8
push eax
call fcn.100559d0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov ecx, 0x103295c0
jmp 0x100aa69a
mov ecx, 0x103295d8
jmp 0x100aa69a
lea eax, [ebp - 0x1c]
mov ecx, 0x103295f0
push eax
call fcn.10054a70
jmp 0x100aa6a3
mov ecx, 0x10329608
jmp 0x100aa69a
lea eax, [ebp - 0x1c]
mov ecx, 0x10329620
push eax
call fcn.10055830
jmp 0x100aa6a3
lea eax, [ebp - 0x1c]
mov ecx, 0x10329638
push eax
call fcn.10055830
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
lea eax, [ebp - 0x1c]
mov ecx, 0x10329650
push eax
call fcn.10055830
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
lea eax, [ebp - 0x1c]
mov ecx, 0x10329668
push eax
call fcn.100550e0
jmp 0x100aa6a3
lea eax, [ebp - 0x1c]
mov ecx, 0x10329688
push eax
call fcn.10054a70
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov ecx, 0x103296a0
lea eax, [ebp - 0x1c]
push eax
call fcn.10055900
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b0]
dec eax
cmp eax, 3
ja case.default.0x100aa6ce
jmp dword [eax*4 + 0x100aaad8]
lea eax, [ebp - 0x1c]
mov ecx, 0x103296b8
push eax
call fcn.10055900
jmp 0x100aa76a
lea eax, [ebp - 0x1c]
mov ecx, 0x103296d0
push eax
call fcn.10055830
jmp 0x100aa76a
lea eax, [ebp - 0x1c]
mov ecx, 0x103296e8
push eax
call fcn.10055830
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
lea eax, [ebp - 0x1c]
mov ecx, 0x10329700
push eax
call fcn.10055830
jmp 0x100aa76a
lea eax, [ebp - 0x1c]
mov ecx, 0x10329718
push eax
call fcn.100559d0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
lea eax, [ebp - 0x1c]
mov ecx, 0x10329730
push eax
call fcn.10055b70
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a8f70
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
push esi
test al, 1
je 0x100aa7d0
lea eax, [ebp - 0x1c]
mov ecx, 0x10329750
push eax
call fcn.10055b70
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa7b0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 2
je 0x100aa812
lea eax, [ebp - 0x1c]
mov ecx, 0x10329770
push eax
call fcn.10055830
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa7f2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 4
je 0x100aa910
cmp byte [0x10329788], 0
push ebx
je 0x100aa881
cmp byte [0x10329789], 0
jne 0x100aa8c2
mov byte [0x10329789], 1
xor esi, esi
nop word [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x103297a4]
xor ebx, dword [0x103297a0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1032978a], al
inc esi
cmp esi, 0x10
jb 0x100aa840
jmp 0x100aa8c2
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x103297a4]
xor ebx, dword [0x103297a0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1032978a], al
inc esi
cmp esi, 0x10
jb 0x100aa883
lea eax, [ebp - 0x35]
push eax
push 0x10329799
push 0x1032978a
lea ecx, [ebp - 0x1c]
call fcn.10054040
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
pop ebx
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa8f0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 8
je 0x100aa990
lea eax, [ebp - 0x1c]
mov ecx, 0x103297a8
push eax
call fcn.10055aa0
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa932
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
lea eax, [ebp - 0x1c]
mov ecx, 0x103297c0
push eax
call fcn.10054f40
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa970
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 0x10
je 0x100aa9d2
lea eax, [ebp - 0x1c]
mov ecx, 0x103297e0
push eax
call fcn.10055010
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa9b2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 0x20
je 0x100aaa14
lea eax, [ebp - 0x1c]
mov ecx, 0x10329800
push eax
call fcn.10055900
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aa9f4
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov eax, dword [0x103266b4]
test al, 0x40
je 0x100aaa51
lea eax, [ebp - 0x1c]
mov ecx, 0x10329818
push eax
call fcn.10055aa0
cmp dword [ebp - 8], 0xf
lea edx, [ebp - 0x1c]
cmova edx, dword [ebp - 0x1c]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100aaa36
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.1004b140
lea ecx, [ebp - 0x1c]
call fcn.10049830
mov ecx, dword [0x10332c90]
lea edx, [ebp - 0x34]
cmp dword [ebp - 0x20], 0xf
push 0
cmova edx, dword [ebp - 0x34]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x1c8]
call eax
mov ecx, dword [ebp - 0x20]
pop esi
cmp ecx, 0xf
jbe 0x100aaaa6
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100aaa9c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100aaa9c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1015539a
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.101556c2
mov esp, ebp
pop ebp
ret