Function at 0x1a9b3ed
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x54
push esi
mov eax, edx
mov esi, ecx
mov dword [ebp - 0x3c], eax
add eax, esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], esi
lea ecx, [edi + eax]
mov dword [ebp - 0x48], ecx
cmp eax, 0x12c
jae 0x1a9b423
mov eax, 0xc0000023
jmp 0x1a9b928
cmp esi, 0x10001
ja 0x1a9b435
mov eax, 0xc00000bb
jmp 0x1a9b928
push ebx
mov ebx, dword [ebp + 0x14]
mov eax, 0x20000
push eax
push 0
push ebx
call fcn.01a28e60
mov eax, dword [ebp - 0x3c]
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x44], edi
mov dword [ebx + 0x20000], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x30], ecx
push 0x800
push ecx
lea eax, [ebx + 0xa4210]
mov dword [ebp - 0x34], ecx
push eax
mov dword [ebp - 0x38], ecx
call fcn.01a28e60
mov ecx, dword [ebp - 0x28]
lea eax, [esi + 0x10000]
add esp, 0xc
mov dword [ebp - 0x40], eax
lea edi, [ebx + 0xa4b10]
cmp eax, ecx
jbe 0x1a9b49a
mov eax, ecx
mov dword [ebp - 0x40], ecx
lea edx, [eax - 5]
mov eax, dword [ebp - 0x3c]
add eax, esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], eax
cmp edx, eax
jae 0x1a9b4af
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x18]
xor eax, eax
inc eax
mov dword [ebp - 0x10], edi
add edi, 4
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], edi
cmp esi, ecx
jne 0x1a9b4de
movzx eax, byte [esi]
push 2
inc dword [ebx + eax*4 + 0xa4210]
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
pop eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], eax
cmp esi, edx
jae 0x1a9b868
mov edi, dword [ebp + 0x14]
mov eax, esi
sub eax, ecx
mov ebx, esi
cdq
mov ecx, 0x20000
idiv ecx
movzx eax, byte [ebx + 1]
movzx ecx, word [eax*2 + 0x19cdec0]
movzx eax, byte [ebx + 2]
movzx eax, word [eax*2 + 0x19ce0c0]
xor ecx, eax
movzx eax, byte [ebx]
movzx eax, word [eax*2 + 0x19cdcc0]
xor ecx, eax
mov eax, dword [edi + ecx*4]
mov dword [edi + ecx*4], ebx
inc ebx
mov dword [edi + edx*4 + 0x20000], eax
inc edx
mov eax, dword [ebp - 0x24]
and edx, 0x1ffff
cmp ebx, eax
jb 0x1a9b4f7
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp + 0x14]
cmp esi, dword [ebp - 0x2c]
jb 0x1a9b55b
cmp esi, eax
jae 0x1a9b868
push esi
mov edx, eax
lea ecx, [ebp - 0x54]
call fcn.01a9c9c6
mov dword [ebp - 0x2c], eax
mov eax, esi
mov ecx, 0x20000
sub eax, dword [ebp - 0x18]
cdq
idiv ecx
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebx + edx*4 + 0x20000]
lea eax, [ecx + 0x10000]
cmp eax, esi
jbe 0x1a9b779
mov eax, dword [ecx]
xor eax, dword [ebp - 0x20]
jne 0x1a9b5a5
and dword [ebp - 8], 0
lea eax, [esi - 0x10000]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], esi
mov dword [ebp - 0xc], 3
jmp 0x1a9b665
test eax, 0xffffff
je 0x1a9b620
sub ecx, dword [ebp - 0x18]
mov eax, ecx
mov ecx, 0x20000
cdq
idiv ecx
mov ecx, dword [ebx + edx*4 + 0x20000]
lea eax, [ecx + 0x10000]
cmp eax, esi
jbe 0x1a9b779
mov eax, dword [ecx]
xor eax, dword [ebp - 0x20]
jne 0x1a9b5e5
lea eax, [esi - 0x10000]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 8], eax
jmp 0x1a9b596
test eax, 0xffffff
je 0x1a9b620
sub ecx, dword [ebp - 0x18]
mov eax, ecx
mov ecx, 0x20000
cdq
idiv ecx
mov ecx, dword [ebx + edx*4 + 0x20000]
lea eax, [ecx + 0x10000]
cmp eax, esi
jbe 0x1a9b779
mov eax, dword [ecx]
xor eax, dword [ebp - 0x20]
je 0x1a9b5d5
test eax, 0xffffff
jne 0x1a9b779
mov dword [ebp - 0x14], esi
add esi, 0xffff0000
xor eax, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], 3
sub ecx, dword [ebp - 0x18]
mov eax, ecx
mov ecx, 0x20000
cdq
idiv ecx
mov ecx, dword [ebx + edx*4 + 0x20000]
cmp ecx, esi
jbe 0x1a9b75c
mov eax, dword [ebp - 0x20]
cmp eax, dword [ecx]
jne 0x1a9b74c
mov esi, dword [ebp - 0x14]
add esi, 4
add ecx, 4
jmp 0x1a9b6b4
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x1a9b6f7
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 4]
jne 0x1a9b6f1
mov eax, dword [esi + 8]
cmp eax, dword [ecx + 8]
jne 0x1a9b6e9
mov eax, dword [esi + 0xc]
cmp eax, dword [ecx + 0xc]
jne 0x1a9b6e1
mov eax, dword [esi + 0x10]
cmp eax, dword [ecx + 0x10]
jne 0x1a9b6d9
mov eax, dword [esi + 0x14]
cmp eax, dword [ecx + 0x14]
jne 0x1a9b6d1
mov eax, dword [esi + 0x18]
cmp eax, dword [ecx + 0x18]
jne 0x1a9b6c9
mov eax, dword [esi + 0x1c]
cmp eax, dword [ecx + 0x1c]
jne 0x1a9b6c1
mov esi, edx
add ecx, 0x20
lea edx, [esi + 0x20]
cmp edx, dword [ebp - 0x28]
jb 0x1a9b66d
mov edx, dword [ebp - 0x28]
jmp 0x1a9b72c
add esi, 0x1c
add ecx, 0x1c
jmp 0x1a9b6f7
add esi, 0x18
add ecx, 0x18
jmp 0x1a9b6f7
add esi, 0x14
add ecx, 0x14
jmp 0x1a9b6f7
add esi, 0x10
add ecx, 0x10
jmp 0x1a9b6f7
add esi, 0xc
add ecx, 0xc
jmp 0x1a9b6f7
add esi, 8
add ecx, 8
jmp 0x1a9b6f7
add esi, 4
add ecx, 4
mov al, byte [esi]
cmp al, byte [ecx]
jne 0x1a9b730
mov al, byte [esi + 1]
mov ebx, dword [ebp + 0x14]
cmp al, byte [ecx + 1]
je 0x1a9b70c
inc esi
inc ecx
jmp 0x1a9b730
mov al, byte [esi + 2]
cmp al, byte [ecx + 2]
je 0x1a9b71c
add esi, 2
add ecx, 2
jmp 0x1a9b730
add esi, 3
add ecx, 3
jmp 0x1a9b730
mov al, byte [esi]
cmp al, byte [ecx]
jne 0x1a9b730
inc esi
inc ecx
cmp esi, edx
jb 0x1a9b724
mov edx, dword [ebp - 0x14]
sub esi, edx
sub ecx, esi
cmp esi, dword [ebp - 0xc]
jbe 0x1a9b79e
lea eax, [esi + ecx]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x30], ecx
cmp eax, edx
ja 0x1a9b75c
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, 0xc
jb 0x1a9b63b
mov eax, dword [ebp - 0x14]
mov edx, eax
mov ecx, dword [ebp - 0xc]
sub edx, dword [ebp - 0x30]
lea esi, [eax + ecx]
cmp ecx, 3
jne 0x1a9b7ba
cmp edx, 0x1000
jbe 0x1a9b7ba
mov esi, eax
mov ecx, dword [ebp - 0x20]
movzx eax, cl
inc dword [ebx + eax*4 + 0xa4210]
mov eax, dword [ebp - 4]
mov byte [edi], cl
inc edi
inc esi
test eax, eax
jle 0x1a9b7a8
add eax, eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x24]
jmp 0x1a9b540
mov eax, dword [ebp - 8]
add eax, esi
mov esi, dword [ebp - 0x1c]
jmp 0x1a9b74f
add eax, eax
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edi
mov dword [edx], eax
xor eax, eax
inc eax
add edi, 4
jmp 0x1a9b793
cmp edx, 0x100
jb 0x1a9b7d3
mov eax, edx
shr eax, 8
movzx ecx, byte [eax + 0x19ce2c0]
add ecx, 8
jmp 0x1a9b7da
movzx ecx, byte [edx + 0x19ce2c0]
add dword [ebp - 0x34], ecx
or eax, 0xffffffff
shl eax, cl
add edx, eax
shl cl, 4
mov eax, dword [ebp - 0xc]
add eax, 0xfffffffd
cmp eax, 0xf
jb 0x1a9b83c
add cl, 0xf
sub eax, 0xf
mov byte [edi], cl
cmp eax, 0xff
jae 0x1a9b80c
mov byte [edi + 1], al
xor eax, eax
add edi, 2
inc eax
jmp 0x1a9b834
add eax, 0xf
mov byte [edi + 1], 0xff
cmp eax, 0x10000
jae 0x1a9b825
mov word [edi + 2], ax
add edi, 4
push 3
jmp 0x1a9b833
xor ebx, ebx
mov word [edi + 2], bx
mov dword [edi + 4], eax
add edi, 8
push 7
pop eax
add dword [ebp - 0x38], eax
mov ebx, dword [ebp + 0x14]
jmp 0x1a9b841
add cl, al
mov byte [edi], cl
inc edi
movzx eax, cl
inc dword [ebx + eax*4 + 0xa4610]
mov eax, dword [ebp - 4]
mov word [edi], dx
add edi, 2
test eax, eax
lea eax, [eax*2 + 1]
jg 0x1a9b793
jmp 0x1a9b7aa
mov ecx, dword [ebp - 0x40]
jmp 0x1a9b89b
movzx eax, byte [esi]
inc dword [ebx + eax*4 + 0xa4210]
mov al, byte [esi]
mov byte [edi], al
inc edi
mov eax, dword [ebp - 4]
inc esi
test eax, eax
jle 0x1a9b888
add eax, eax
jmp 0x1a9b898
mov edx, dword [ebp - 0x10]
add eax, eax
mov dword [ebp - 0x10], edi
mov dword [edx], eax
xor eax, eax
inc eax
add edi, 4
mov dword [ebp - 4], eax
cmp esi, ecx
jb 0x1a9b86d
mov eax, dword [ebp - 4]
test eax, eax
lea eax, [eax*2 + 1]
jg 0x1a9b8a2
mov edx, dword [ebp - 0x10]
xor ebx, ebx
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp esi, dword [ebp - 0x28]
jb 0x1a9b8c3
inc ebx
inc dword [eax + 0xa4610]
lea ecx, [eax + 0xa0000]
call fcn.01a9cd69
mov ecx, dword [ebp - 0x34]
add ecx, 0x1f
add eax, ecx
mov ecx, dword [ebp - 0x38]
shr eax, 5
lea eax, [ecx + eax*4]
mov ecx, dword [ebp - 0x44]
add eax, 0x102
add eax, ecx
cmp eax, dword [ebp - 0x48]
jae 0x1a9b922
mov eax, dword [ebp + 0x14]
push ebx
push ecx
push edi
lea edx, [eax + 0xa4b10]
lea ecx, [eax + 0xa0000]
call fcn.01a9d0e5
push 0
test ebx, ebx
mov dword [ebp - 0x44], eax
mov ebx, dword [ebp + 0x14]
pop ecx
je 0x1a9b464
mov ecx, dword [ebp + 0x10]
sub eax, dword [ebp + 8]
mov dword [ecx], eax
xor eax, eax
jmp 0x1a9b927
mov eax, 0xc0000023
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x1c