Function at 0x1b1e1ec
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov edi, ecx
push 0xa
mov dword [ebp - 0x14], edi
pop edx
mov ecx, dword [edi]
mov al, byte [ecx]
cmp al, 0x20
je 0x1b1e211
cmp al, 9
jb 0x1b1e20d
cmp al, dl
jbe 0x1b1e211
cmp al, 0xd
jne 0x1b1e21a
test al, al
je 0x1b1e1ff
inc ecx
mov dword [edi], ecx
jmp 0x1b1e1ff
cmp al, 0x2e
jne 0x1b1e27d
lea eax, [ecx + 1]
cmp byte [eax], 0x2e
jne 0x1b1e25b
add ecx, 2
mov dword [edi], ecx
mov al, byte [ecx]
cmp al, 0x20
je 0x1b1e23d
cmp al, 9
jb 0x1b1e239
cmp al, dl
jbe 0x1b1e23d
cmp al, 0xd
jne 0x1b1e244
test al, al
je 0x1b1e22b
inc ecx
jmp 0x1b1e229
mov ecx, dword [edi + 0x20]
xor esi, esi
push esi
push esi
push esi
push 1
push edx
mov edx, dword [ecx + 0xc]
push 0xb
push 0xffffffffffffffff
jmp 0x1b1e4db
mov dword [edi], eax
mov cl, byte [eax]
cmp cl, 0x20
je 0x1b1e276
cmp cl, 9
jb 0x1b1e26d
cmp cl, dl
jbe 0x1b1e276
cmp cl, 0xd
jne 0x1b1e4e3
test cl, cl
je 0x1b1e25d
inc eax
jmp 0x1b1e25b
xor esi, esi
mov dword [ebp - 4], esi
mov ebx, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x18], esi
cmp al, 0x2a
je 0x1b1e2f8
mov ecx, edi
call fcn.01b1fe4e
mov ebx, eax
test ebx, ebx
je 0x1b1e2e5
mov ecx, ebx
call fcn.01b1e4e8
mov dword [ebp - 8], eax
test eax, eax
je 0x1b1e2f8
mov eax, dword [edi]
mov cl, byte [eax]
cmp cl, 0x20
je 0x1b1e2c1
cmp cl, 9
jb 0x1b1e2bc
cmp cl, 0xa
jbe 0x1b1e2c1
cmp cl, 0xd
jne 0x1b1e2ca
test cl, cl
je 0x1b1e2ab
inc eax
mov dword [edi], eax
jmp 0x1b1e2ab
cmp cl, 0x3a
jne 0x1b1e2f8
cmp byte [eax + 1], cl
jne 0x1b1e2f8
add eax, 2
push ebx
mov dword [edi], eax
call dword [0x11f95d30]
pop ecx
mov ebx, esi
jmp 0x1b1e2ff
mov eax, dword [edi]
cmp byte [eax], 0x40
jne 0x1b1e2f8
inc eax
mov dword [ebp - 8], 3
mov dword [edi], eax
jmp 0x1b1e2ff
mov dword [ebp - 8], 4
cmp dword [edi + 8], esi
jne 0x1b1e4e3
push ebx
lea eax, [ebp - 4]
mov ecx, edi
push eax
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x10]
call fcn.01b1e64f
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x10], esi
je 0x1b1e4e3
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x1b1e489
mov edx, dword [edi + 0xc]
test edx, edx
je 0x1b1e489
test byte [edx + 0xc4], 1
je 0x1b1e489
mov ecx, 0x11c70934
cmp ebx, ecx
je 0x1b1e486
mov al, byte [ebx]
inc ebx
mov ah, byte [ecx]
cmp al, ah
jne 0x1b1e36d
inc ecx
test ah, ah
jne 0x1b1e35a
jmp 0x1b1e486
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1b1e3c3
mov ecx, esi
cmp dword [edx + 0x3c], ecx
jle 0x1b1e3c3
mov ebx, dword [eax + ecx*4]
test ebx, ebx
je 0x1b1e3bd
mov eax, dword [ebp - 4]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0xc], eax
cmp ebx, eax
je 0x1b1e3ac
test ebx, ebx
je 0x1b1e3ba
mov edi, dword [ebp - 0xc]
mov al, byte [ebx]
inc ebx
mov ah, byte [edi]
mov edi, dword [ebp - 0x14]
cmp al, ah
jne 0x1b1e3ba
inc dword [ebp - 0xc]
test ah, ah
jne 0x1b1e396
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 8]
jmp 0x1b1e478
mov eax, dword [edx + 0x38]
inc ecx
cmp ecx, dword [edx + 0x3c]
jl 0x1b1e37e
mov ebx, dword [edx + 0x58]
test ebx, ebx
je 0x1b1e478
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
mov cl, byte [eax]
movzx eax, cl
imul eax, eax, 0x1e
test cl, cl
je 0x1b1e40a
mov esi, dword [ebp - 0x1c]
mov edi, eax
mov edx, edi
movsx ecx, cl
mov eax, edi
shl edx, 5
inc esi
shr eax, 3
add edx, eax
add edx, ecx
xor edi, edx
mov cl, byte [esi]
test cl, cl
jne 0x1b1e3e5
mov dword [ebp - 0xc], edi
xor esi, esi
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
xor edx, edx
div dword [ebx + 4]
imul ecx, edx, 0x18
add ecx, dword [ebx]
cmp dword [ecx + 0x14], esi
je 0x1b1e478
cmp dword [ebx + 0xc], esi
je 0x1b1e443
mov eax, ecx
test eax, eax
je 0x1b1e443
mov edx, dword [ebp - 4]
cmp dword [eax + 4], edx
jne 0x1b1e436
cmp dword [eax + 8], esi
jne 0x1b1e436
cmp dword [eax + 0xc], esi
je 0x1b1e43e
mov eax, dword [eax]
test eax, eax
jne 0x1b1e427
jmp 0x1b1e44a
mov esi, dword [eax + 0x10]
jmp 0x1b1e478
test ecx, ecx
je 0x1b1e478
mov edx, dword [ebp - 4]
mov ebx, edx
mov edx, dword [ecx + 4]
cmp edx, ebx
je 0x1b1e465
test edx, edx
je 0x1b1e471
mov al, byte [edx]
inc edx
mov ah, byte [ebx]
cmp al, ah
jne 0x1b1e471
inc ebx
test ah, ah
jne 0x1b1e457
cmp dword [ecx + 8], 0
jne 0x1b1e471
cmp dword [ecx + 0xc], 0
je 0x1b1e475
mov ecx, dword [ecx]
jmp 0x1b1e443
mov esi, dword [ecx + 0x10]
test esi, esi
jne 0x1b1e486
push 0x13
pop edx
mov ecx, edi
call fcn.01b25a16
mov ebx, dword [ebp - 4]
mov eax, dword [edi + 0x20]
mov esi, dword [eax + 0xc]
or dword [eax + 0xc], 0xffffffff
mov ecx, dword [edi]
mov al, byte [ecx]
cmp al, 0x20
je 0x1b1e4a7
cmp al, 9
jb 0x1b1e4a3
cmp al, 0xa
jbe 0x1b1e4a7
cmp al, 0xd
jne 0x1b1e4b0
test al, al
je 0x1b1e495
inc ecx
mov dword [edi], ecx
jmp 0x1b1e495
cmp al, 0x5b
jne 0x1b1e4c4
xor edx, edx
mov ecx, edi
call fcn.01b1e896
mov eax, dword [edi]
cmp byte [eax], 0x5b
je 0x1b1e4b4
push dword [ebp - 0x20]
mov ecx, dword [edi + 0x20]
mov edx, esi
push ebx
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp - 8]
push 0xb
push dword [ecx + 0xc]
call fcn.01b2565c
add esp, 0x1c
pop edi
pop esi
pop ebx
leave
ret