Function at 0x10001bf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
mov esi, eax
push edi
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0xffffffff
test esi, esi
jne 0x10001c12
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.100022b0
xor ecx, ecx
lea edi, [ebx + 0x14]
mov dword [ebp - 8], 3
xor edx, edx
mov eax, ecx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 1], al
xor edx, edx
lea eax, [ecx + 1]
div esi
lea eax, [ecx + 2]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 2], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 3], al
xor edx, edx
lea eax, [ecx + 3]
div esi
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 4], dl
mov eax, dword [ebp - 4]
xor dword [edi - 4], eax
xor edx, edx
lea eax, [ecx + 4]
div esi
lea eax, [ecx + 5]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 1], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 2], al
xor edx, edx
lea eax, [ecx + 6]
div esi
lea eax, [ecx + 7]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 3], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 4], al
mov edx, dword [ebp - 4]
xor dword [edi], edx
xor edx, edx
lea eax, [ecx + 8]
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 1], al
xor edx, edx
lea eax, [ecx + 9]
div esi
lea eax, [ecx + 0xa]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 2], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 3], al
xor edx, edx
lea eax, [ecx + 0xb]
div esi
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 4], dl
mov eax, dword [ebp - 4]
xor dword [edi + 4], eax
xor edx, edx
lea eax, [ecx + 0xc]
div esi
lea eax, [ecx + 0xd]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 1], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 2], al
xor edx, edx
lea eax, [ecx + 0xe]
div esi
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 3], dl
xor edx, edx
lea eax, [ecx + 0xf]
div esi
add edi, 0x18
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 4], al
mov edx, dword [ebp - 4]
xor dword [edi - 0x10], edx
xor edx, edx
lea eax, [ecx + 0x10]
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 1], al
xor edx, edx
lea eax, [ecx + 0x11]
div esi
lea eax, [ecx + 0x12]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 2], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 3], al
xor edx, edx
lea eax, [ecx + 0x13]
div esi
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 4], dl
mov eax, dword [ebp - 4]
xor dword [edi - 0xc], eax
xor edx, edx
lea eax, [ecx + 0x14]
div esi
lea eax, [ecx + 0x15]
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 1], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 2], al
xor edx, edx
lea eax, [ecx + 0x16]
div esi
lea eax, [ecx + 0x17]
add ecx, 0x18
movzx edx, byte [edx + 0x1001c30e]
mov byte [ebp - 3], dl
xor edx, edx
div esi
movzx eax, byte [edx + 0x1001c30e]
mov byte [ebp - 4], al
mov edx, dword [ebp - 4]
xor dword [edi - 8], edx
dec dword [ebp - 8]
jne 0x10001c25
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
lea edi, [ebx + 0x14]
mov dword [ebp - 8], 9
lea esi, [ebp - 0x10]
mov eax, ebx
call fcn.10004b60
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword [edi - 4], eax
mov dword [edi], ecx
add edi, 8
dec dword [ebp - 8]
jne 0x10001e00
lea edi, [ebx + 0x5c]
mov dword [ebp - 4], 4
jmp 0x10001e30
mov dword [ebp - 8], 0x80
jmp 0x10001e40
lea esi, [ebp - 0x10]
mov eax, ebx
call fcn.10004b60
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [edi - 4], edx
mov dword [edi], eax
add edi, 8
dec dword [ebp - 8]
jne 0x10001e40
dec dword [ebp - 4]
jne 0x10001e30
mov eax, 1
pop edi
mov dword [ebx + 0xc], eax
pop esi
mov esp, ebp
pop ebp
ret