Function at 0x413bca
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
mov ebx, ecx
push esi
push edi
lea edx, [ebx + 0xa4]
mov edi, dword [ebp + 8]
mov esi, edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x14], 1
lea eax, [esi + 0x7d6]
mov dword [ebp - 0x24], eax
xor eax, eax
cmp edi, eax
mov dword [ebp - 0xc], eax
je 0x414030
cmp dword [ebp + 0xc], eax
je 0x414030
mov dword [ebx + 0x8a4], eax
mov dword [ebp - 8], eax
jle 0x41401f
cmp esi, dword [ebp - 0x24]
ja 0x413fc4
mov cl, byte [edi]
mov dword [ebp - 0x10], esi
cmp cl, 0x24
je 0x413f7b
cmp cl, 0x29
jle 0x413efa
cmp cl, 0x2b
jle 0x413e88
cmp cl, 0x2e
je 0x413e80
cmp cl, 0x5b
je 0x413d63
cmp cl, 0x5c
je 0x413c75
cmp cl, 0x5e
jne 0x413efa
cmp edi, dword [ebp + 8]
jne 0x413f86
mov byte [esi], 4
jmp 0x413f8e
inc dword [ebp - 8]
mov cl, byte [edi + 1]
inc edi
movsx eax, cl
cmp eax, 0x66
jg 0x413ced
je 0x413d51
cmp eax, 0x31
jl 0x413cff
cmp eax, 0x39
jle 0x413cc7
cmp eax, 0x3c
je 0x413cbf
cmp eax, 0x3e
je 0x413cae
cmp eax, 0x60
jle 0x413cff
cmp eax, 0x62
jle 0x413d51
jmp 0x413cff
cmp byte [edx], 8
je 0x413fcb
mov byte [esi], 9
jmp 0x413f8e
mov byte [esi], 8
jmp 0x413f8e
mov ecx, dword [ebp - 0xc]
add eax, 0xffffffd0
test ecx, ecx
jle 0x413cdb
cmp dword [ebx + ecx*4 + 0x7c], eax
je 0x413fd2
cmp dword [ebp - 0x14], eax
jle 0x413fd9
mov byte [esi], 0xa
inc esi
jmp 0x413f8c
sub eax, 0x6e
je 0x413d51
sub eax, 4
je 0x413d51
dec eax
dec eax
je 0x413d51
dec eax
dec eax
je 0x413d51
cmp byte [ebp + 0x14], 0
jne 0x413f86
cmp cl, 0x28
jne 0x413d1f
mov eax, dword [ebp - 0x14]
cmp eax, 0xa
jge 0x413fe0
jmp 0x413f11
cmp cl, 0x29
jne 0x413f86
cmp byte [edx], 6
je 0x413fe7
cmp dword [ebp - 0xc], 0
jle 0x413fee
mov eax, dword [ebp - 0xc]
mov byte [esi], 7
inc esi
mov al, byte [ebx + eax*4 + 0x7c]
mov byte [esi], al
inc esi
dec dword [ebp - 0xc]
jmp 0x413f8f
mov byte [esi], 1
mov al, byte [edi]
push eax
inc esi
call fcn.00413b8e
pop ecx
jmp 0x413f8c
mov byte [esi], 3
inc esi
inc dword [ebp - 8]
inc edi
cmp byte [edi], 0x5e
jne 0x413d7a
or byte [ebp - 1], 0xff
inc dword [ebp - 8]
inc edi
jmp 0x413d7e
and byte [ebp - 1], 0
cmp byte [edi], 0x2d
jne 0x413d90
inc dword [ebp - 8]
push 0x2d
mov ecx, ebx
inc edi
call fcn.00413b19
cmp byte [edi], 0x5d
jne 0x413da2
inc dword [ebp - 8]
push 0x5d
mov ecx, ebx
inc edi
call fcn.00413b19
mov cl, byte [edi]
test cl, cl
je 0x413e4c
cmp cl, 0x5d
je 0x413e4c
cmp cl, 0x2d
jne 0x413df5
mov dl, byte [edi + 1]
lea eax, [edi + 1]
test dl, dl
je 0x413df5
cmp dl, 0x5d
je 0x413df5
add dword [ebp - 8], 2
mov edi, eax
movsx ebx, byte [edi - 2]
movsx eax, byte [edi]
inc ebx
inc edi
cmp ebx, eax
mov dword [ebp - 0x1c], eax
jg 0x413e3f
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x18]
mov al, bl
inc ebx
push eax
call fcn.00413b40
cmp ebx, dword [ebp - 0x1c]
jle 0x413ddf
jmp 0x413e3f
cmp cl, 0x5c
jne 0x413e30
cmp byte [edi + 1], 0
lea eax, [edi + 1]
je 0x413e30
inc dword [ebp - 8]
mov edi, eax
mov al, byte [edi]
push eax
call fcn.00413b8e
pop ecx
mov byte [ebp - 0x28], al
push dword [ebp + 0x10]
test al, al
je 0x413e20
push dword [ebp - 0x28]
jmp 0x413e23
mov al, byte [edi]
push eax
mov ecx, ebx
call fcn.00413b40
inc dword [ebp - 8]
inc edi
jmp 0x413e3f
push dword [ebp + 0x10]
inc dword [ebp - 8]
inc edi
push ecx
mov ecx, ebx
call fcn.00413b40
mov cl, byte [edi]
mov ebx, dword [ebp - 0x18]
test cl, cl
jne 0x413dac
cmp byte [edi], 0
je 0x413ff5
mov dword [ebp - 0x1c], 0xfffff758
lea eax, [ebx + 0x8a8]
sub dword [ebp - 0x1c], ebx
mov cl, byte [eax]
xor cl, byte [ebp - 1]
mov byte [esi], cl
and byte [eax], 0
mov ecx, dword [ebp - 0x1c]
inc esi
inc eax
add ecx, eax
cmp ecx, 0x20
jl 0x413e65
jmp 0x413f8f
mov byte [esi], 2
jmp 0x413f8e
cmp edi, dword [ebp + 8]
je 0x413ffc
mov al, byte [edx]
mov dword [ebp - 0x10], edx
cmp al, 0xb
je 0x413f8f
cmp al, 4
je 0x414003
cmp al, 5
jle 0x413eb2
cmp al, 0xa
jle 0x414003
cmp cl, 0x2b
jne 0x413ece
cmp dword [ebp - 0x10], esi
mov eax, esi
jae 0x413ece
mov ecx, dword [ebp - 0x10]
mov cl, byte [ecx]
mov byte [esi], cl
inc esi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jb 0x413ebe
and byte [esi], 0
and byte [esi + 1], 0
inc esi
inc esi
mov ecx, esi
lea eax, [esi - 1]
mov dword [ebp - 0x1c], eax
cmp eax, dword [ebp - 0x10]
jbe 0x413ef0
mov dl, byte [eax - 1]
lea esi, [eax - 1]
mov byte [eax], dl
mov eax, esi
jmp 0x413edf
mov byte [eax], 0xb
mov esi, ecx
jmp 0x413f8f
cmp byte [ebp + 0x14], 0
je 0x413f45
cmp cl, 0x28
jne 0x413f28
mov eax, dword [ebp - 0x14]
cmp eax, 0xa
jge 0x41400a
inc dword [ebp - 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [ebx + ecx*4 + 0x7c], eax
mov byte [esi], 6
inc esi
mov byte [esi], al
inc esi
inc eax
mov dword [ebp - 0x14], eax
jmp 0x413f8f
cmp cl, 0x29
jne 0x413f45
cmp byte [edx], 6
je 0x414011
cmp dword [ebp - 0xc], 0
jle 0x414018
jmp 0x413d3b
cmp byte [ebp + 0x10], 0
jne 0x413f86
mov byte [esi], 3
mov al, byte [edi]
push 0
push eax
mov ecx, ebx
inc esi
call fcn.00413b40
mov ecx, 0xfffff758
lea eax, [ebx + 0x8a8]
sub ecx, ebx
mov dl, byte [eax]
mov byte [esi], dl
and byte [eax], 0
inc esi
inc eax
lea edx, [eax + ecx]
cmp edx, 0x20
jl 0x413f68
jmp 0x413f8f
cmp byte [edi + 1], 0
jne 0x413f86
mov byte [esi], 5
jmp 0x413f8e
mov byte [esi], 1
mov al, byte [edi]
inc esi
mov byte [esi], al
inc esi
inc dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
inc edi
cmp eax, dword [ebp + 0xc]
jl 0x413c1b
cmp dword [ebp - 0xc], 0
jle 0x41401f
mov eax, dword [ebp - 0x20]
and byte [eax], 0
cmp byte [ebp + 0x14], 0
mov eax, 0x5bce18
jne 0x414043
mov eax, 0x5bce08
jmp 0x414043
mov eax, str.Pattern_too_long
jmp 0x41403d
mov eax, str.Null_pattern_inside___
jmp 0x41403d
mov eax, str.Cyclical_reference
jmp 0x41403d
mov eax, str.Undetermined_reference
jmp 0x41403d
mov eax, 0x5bcd98
jmp 0x41403d
mov eax, 0x5bcd7c
jmp 0x41403d
mov eax, 0x5bcd6c
jmp 0x41403d
mov eax, 0x5bcd60
jmp 0x41403d
mov eax, str.Empty_closure
jmp 0x41403d
mov eax, str.Illegal_closure
jmp 0x41403d
mov eax, 0x5bcd2c
jmp 0x41403d
mov eax, 0x5bcd14
jmp 0x41403d
mov eax, 0x5bcd08
jmp 0x41403d
and byte [esi], 0
mov dword [ebx + 0x8a4], 1
xor eax, eax
jmp 0x414043
cmp dword [ebx + 0x8a4], eax
jne 0x41402c
mov eax, 0x5bcce8
mov ecx, dword [ebp - 0x20]
and byte [ecx], 0
pop edi
pop esi
pop ebx
leave
ret 0x10