Function at 0x466c20
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x118
call fcn.00468d20
mov eax, dword [0x5808f0]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push ebp
mov ebp, dword [esp + 0x128]
push esi
mov ebx, ecx
mov ecx, dword [esp + 0x128]
mov esi, dword [ebx + 0x24]
push edi
mov dword [esp + 0x1c], ecx
call fcn.00424be0
mov edi, dword [esi + 0x10]
xor ecx, ecx
cmp edx, ecx
jl 0x466c01
jg 0x466a6f
cmp eax, edi
jb 0x466c01
movzx edi, byte [esi + 4]
xor eax, eax
test edi, edi
jle 0x466a8e
mov esi, dword [esi]
jmp 0x466a80
mov cl, byte [esi + eax]
not cl
mov byte [esp + eax + 0x24], cl
inc eax
cmp eax, edi
jl 0x466a80
mov esi, dword [ebx + 0x24]
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
xor edi, edi
call fcn.00424be0
mov ecx, dword [esi + 0x10]
xor esi, esi
sub eax, ecx
sbb edx, esi
cmp edi, edx
jg 0x466ac6
jl 0x466ab8
cmp dword [esp + 0x14], eax
jae 0x466ac6
mov esi, dword [esp + 0x14]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
jmp 0x466ae5
mov ecx, dword [esp + 0x1c]
call fcn.00424be0
mov ecx, dword [ebx + 0x24]
mov ecx, dword [ecx + 0x10]
xor esi, esi
sub eax, ecx
sbb edx, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov esi, eax
push 0x5c
push ebp
call fcn.004690c4
push 0x2f
push ebp
mov edi, eax
call fcn.004690c4
add esp, 0x10
cmp edi, eax
jbe 0x466b02
push 0x5c
jmp 0x466b04
push 0x2f
push ebp
call fcn.004690c4
add eax, 2
add esp, 8
cmp ebp, eax
ja 0x466b3f
push 0x5c
push ebp
call fcn.004690c4
push 0x2f
push ebp
mov edi, eax
call fcn.004690c4
add esp, 0x10
cmp edi, eax
jbe 0x466b31
push 0x5c
jmp 0x466b33
push 0x2f
push ebp
call fcn.004690c4
add esp, 8
lea ebp, [eax + 2]
push 0
push 0
push 1
lea edx, [esp + 0x1f]
push edx
push 1
push ebp
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x466c01
mov ecx, dword [ebx + 0x24]
mov edx, dword [ecx]
lea eax, [esp + 0x24]
push eax
push edx
mov ecx, ebx
call fcn.00466680
mov al, byte [esp + 0x13]
xor ecx, ecx
xor byte [esp + ecx + 0x24], al
inc ecx
rol al, 1
cmp ecx, 0x10
jl 0x466b77
push esi
call fcn.004691cd
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x466c01
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx + 0x24]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x1c]
push eax
push esi
push ebp
push 0
push edx
call fcn.00424750
mov eax, dword [ebx + 0x24]
mov ecx, dword [eax + 8]
shr esi, 3
mov dword [esp + 0x20], ecx
mov edi, ebp
test esi, esi
je 0x466bdb
mov edi, edi
mov edx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x28]
push eax
push edi
push edi
mov ecx, ebx
call fcn.00466710
dec esi
add edi, 8
test esi, esi
jne 0x466bc0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x24]
push ecx
mov ecx, dword [eax + 0x10]
push edx
push ebp
push 0
push ecx
mov ecx, dword [esp + 0x30]
call fcn.00424860
push ebp
call fcn.004690f0
add esp, 4
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004690b5
add esp, 0x118
ret 8
mov eax, dword [ecx + 0x24]
mov al, byte [eax + 5]
cmp al, 0x43
je 0x466c44
cmp al, 0x54
je 0x466c3f
cmp al, 0x58
jne 0x466c4e
mov edx, dword [esp + 4]
push edx
call fcn.004664b0
ret 8
jmp 0x466a20
mov eax, dword [esp + 4]
push eax
call fcn.00466820
ret 8