Function at 0x100167a0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
mov al, byte [esi]
inc esi
cmp al, 0x30
je 0x100167b9
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x100167cc
and eax, 0xff
mov ecx, 1
inc esi
jmp 0x100167ef
and eax, 0xff
xor eax, 0x80
inc esi
mov ecx, eax
xor eax, eax
test ecx, ecx
jle 0x100167ee
mov edx, ecx
xor ebx, ebx
mov bl, byte [esi]
shl eax, 8
xor eax, ebx
inc esi
dec edx
jne 0x100167e1
inc ecx
mov edx, dword [esp + 0x1c]
sub edx, ecx
dec edx
cmp edx, eax
je 0x10016804
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
inc esi
cmp al, 2
je 0x10016815
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov cl, byte [esi]
inc esi
cmp cl, 1
je 0x10016827
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov dl, byte [esi]
inc esi
test dl, dl
je 0x10016838
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
inc esi
cmp al, 2
je 0x10016849
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016859
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x10016877
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x10016877
xor ecx, ecx
mov cl, byte [esi]
shl ebx, 8
xor ebx, ecx
inc esi
dec eax
jne 0x1001686a
mov ebp, dword [esp + 0x14]
mov ecx, 0x103
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov dl, byte [ebp]
mov byte [ebp], dl
push ebx
push esi
push ebp
mov dword [ebp + 0x408], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov al, byte [esi]
inc esi
cmp al, 2
je 0x100168bc
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x100168cc
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x100168ea
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x100168ea
xor ecx, ecx
mov cl, byte [esi]
shl ebx, 8
xor ebx, ecx
inc esi
dec eax
jne 0x100168dd
lea edx, [ebp + 0x40c]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x814], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
inc esi
cmp cl, 2
je 0x10016930
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016940
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x1001695e
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x1001695e
xor edx, edx
mov dl, byte [esi]
shl ebx, 8
xor ebx, edx
inc esi
dec eax
jne 0x10016951
lea edx, [ebp + 0x818]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0xc20], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
inc esi
cmp cl, 2
je 0x100169a4
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x100169b4
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x100169d2
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x100169d2
xor edx, edx
mov dl, byte [esi]
shl ebx, 8
xor ebx, edx
inc esi
dec eax
jne 0x100169c5
lea edx, [ebp + 0xc24]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x102c], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
inc esi
cmp cl, 2
je 0x10016a18
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016a28
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x10016a46
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x10016a46
xor edx, edx
mov dl, byte [esi]
shl ebx, 8
xor ebx, edx
inc esi
dec eax
jne 0x10016a39
lea edx, [ebp + 0x1030]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x1438], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
cmp cl, 5
jne 0x10016a94
mov cl, byte [esi + 1]
inc esi
inc esi
test cl, cl
je 0x10016b06
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
inc esi
cmp cl, 2
je 0x10016aa4
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016ab4
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x10016ad2
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x10016ad2
xor edx, edx
mov dl, byte [esi]
shl ebx, 8
xor ebx, edx
inc esi
dec eax
jne 0x10016ac5
lea edx, [ebp + 0x143c]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x1844], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
cmp cl, 5
jne 0x10016b20
mov cl, byte [esi + 1]
inc esi
inc esi
test cl, cl
je 0x10016b92
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
inc esi
cmp cl, 2
je 0x10016b30
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016b40
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x10016b5e
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x10016b5e
xor edx, edx
mov dl, byte [esi]
shl ebx, 8
xor ebx, edx
inc esi
dec eax
jne 0x10016b51
lea edx, [ebp + 0x1848]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x1c50], 1
call fcn.100144b0
add esp, 0xc
add esi, ebx
test eax, eax
jne 0x10016c12
mov cl, byte [esi]
cmp cl, 5
jne 0x10016baa
mov cl, byte [esi + 1]
test cl, cl
je 0x10016c12
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
inc esi
cmp cl, 2
je 0x10016bba
pop edi
pop esi
pop ebp
mov eax, 0xfffff250
pop ebx
ret
mov al, byte [esi]
cmp al, 0x80
jae 0x10016bca
and eax, 0xff
inc esi
mov ebx, eax
jmp 0x10016be8
and eax, 0xff
xor ebx, ebx
xor eax, 0x80
inc esi
test eax, eax
jle 0x10016be8
xor ecx, ecx
mov cl, byte [esi]
shl ebx, 8
xor ebx, ecx
inc esi
dec eax
jne 0x10016bdb
lea edx, [ebp + 0x1c54]
mov ecx, 0x103
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov al, byte [edx]
mov byte [edx], al
push ebx
push esi
push edx
mov dword [ebp + 0x205c], 1
call fcn.100144b0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
ret