Function at 0x100a1cf9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
mov eax, dword [0x103250c0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x10317d68], 0
push edi
mov edi, ecx
je 0x100a226b
cmp byte [edi + 5], 0
je 0x100a2267
mov eax, dword [0x10317d6c]
xorps xmm0, xmm0
dec eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
push ebx
movups xmmword [ebp - 0x34], xmm0
mov byte [ebp - 0x34], 0
push esi
cmp eax, 6
ja case.default.0x100a1c84
jmp dword [eax*4 + 0x100a227c]
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aa08
push eax
call fcn.1004edd0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov ecx, 0x1031aa20
jmp 0x100a1e4c
mov ecx, 0x1031aa38
jmp 0x100a1e4c
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aa50
push eax
call fcn.1004e010
jmp 0x100a1e55
mov ecx, 0x1031aa68
jmp 0x100a1e4c
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aa80
push eax
call fcn.1004ec30
jmp 0x100a1e55
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aa98
push eax
call fcn.1004ec30
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aab0
push eax
call fcn.1004ec30
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
cmp byte [0x1031aac8], 0
je 0x100a1db7
cmp byte [0x1031aac9], 0
jne 0x100a1e05
mov byte [0x1031aac9], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1031aae4]
xor ebx, dword [0x1031aae0]
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, byte [esi + 0x1031aaca]
xor al, bl
mov byte [esi + 0x1031aaca], al
inc esi
cmp esi, 0x14
jb 0x100a1d70
jmp 0x100a1e05
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1031aae4]
xor ebx, dword [0x1031aae0]
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, byte [esi + 0x1031aaca]
xor al, bl
mov byte [esi + 0x1031aaca], al
inc esi
cmp esi, 0x14
jb 0x100a1dc0
lea eax, [ebp - 0x35]
push eax
push 0x1031aadd
push 0x1031aaca
lea ecx, [ebp - 0x1c]
call fcn.1004d5e0
jmp 0x100a1e55
lea eax, [ebp - 0x1c]
mov ecx, 0x1031aae8
push eax
call fcn.1004e010
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov ecx, 0x1031ab00
lea eax, [ebp - 0x1c]
push eax
call fcn.1004ed00
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d70]
dec eax
cmp eax, 3
ja case.default.0x100a1e80
jmp dword [eax*4 + 0x100a2298]
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab18
push eax
call fcn.1004ed00
jmp 0x100a1f1c
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab30
push eax
call fcn.1004ec30
jmp 0x100a1f1c
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab48
push eax
call fcn.1004ec30
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab60
push eax
call fcn.1004ec30
jmp 0x100a1f1c
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab78
push eax
call fcn.1004edd0
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ab90
push eax
call fcn.1004ef70
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x34]
cmova eax, dword [ebp - 0x1c]
push eax
call fcn.100a1670
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 1
je 0x100a1f80
lea eax, [ebp - 0x1c]
mov ecx, 0x1031abb0
push eax
call fcn.1004ef70
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 0x100a1f60
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 2
je 0x100a1fc2
lea eax, [ebp - 0x1c]
mov ecx, 0x1031abd0
push eax
call fcn.1004ec30
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 0x100a1fa2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 4
je 0x100a20d0
cmp byte [0x1031abe8], 0
je 0x100a2037
cmp byte [0x1031abe9], 0
jne 0x100a2085
mov byte [0x1031abe9], 1
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1031ac04]
xor ebx, dword [0x1031ac00]
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, byte [esi + 0x1031abea]
xor al, bl
mov byte [esi + 0x1031abea], al
inc esi
cmp esi, 0x10
jb 0x100a1ff0
jmp 0x100a2085
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1031ac04]
xor ebx, dword [0x1031ac00]
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, byte [esi + 0x1031abea]
xor al, bl
mov byte [esi + 0x1031abea], al
inc esi
cmp esi, 0x10
jb 0x100a2040
lea eax, [ebp - 0x35]
push eax
push 0x1031abf9
push 0x1031abea
lea ecx, [ebp - 0x1c]
call fcn.1004d5e0
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 0x100a20b0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 8
je 0x100a2150
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ac08
push eax
call fcn.1004eea0
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 0x100a20f2
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ac20
push eax
call fcn.1004e4e0
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 0x100a2130
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 0x10
je 0x100a2192
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ac40
push eax
call fcn.1004e5b0
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 0x100a2172
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 0x20
je 0x100a21d4
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ac60
push eax
call fcn.1004ed00
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 0x100a21b4
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov eax, dword [0x10317d74]
test al, 0x40
je 0x100a2211
lea eax, [ebp - 0x1c]
mov ecx, 0x1031ac78
push eax
call fcn.1004eea0
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 0x100a21f6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.10044950
lea ecx, [ebp - 0x1c]
call fcn.10042fa0
mov ecx, dword [0x10325ec0]
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
pop ebx
cmp ecx, 0xf
jbe 0x100a2267
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100a225d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100a225d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1010f64a
add esp, 8
mov byte [edi + 5], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.1010f972
mov esp, ebp
pop ebp
ret