Function at 0x423ba0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xac
push ebx
push ebp
mov ebp, dword [esp + 0xb8]
push esi
mov esi, dword [esp + 0xc0]
push edi
push esi
push ebp
call fcn.00422bb0
add esp, 8
test al, al
jne 0x423bd1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push ecx
call fcn.00422d30
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x38]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x3c]
mov edi, ecx
push edx
lea ecx, [esp + 0x44]
push eax
push ecx
push ebp
call fcn.00422d50
add esp, 0x18
test al, al
jne 0x423c15
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret
lea edx, [esp + 0x3c]
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x18]
push edx
push eax
push 0x4d0e
xor ebx, ebx
push 0xcef
push ebp
push ebx
push 0x34
mov byte [esp + 0x60], bl
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], edi
call fcn.004277c0
mov eax, dword [esp + 0x38]
add esp, 0x24
cmp eax, ebx
je 0x423c6a
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x34]
add esp, 0x24
cmp eax, ebx
je 0x423ca9
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
xor eax, eax
cmp edi, ebx
jle 0x423cc2
mov cl, byte [esp + 0x38]
mov dl, byte [esp + eax + 0x3c]
xor dl, cl
mov byte [esp + eax + 0x3c], dl
inc eax
cmp eax, edi
jl 0x423cb3
lea esi, [esp + 0x5c]
lea eax, [esp + 0x3c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x423cee
cmp cl, bl
je 0x423cea
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x423cee
add eax, 2
add esi, 2
cmp cl, bl
jne 0x423cca
xor eax, eax
jmp 0x423cf3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x423d04
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x34
mov byte [esp + 0xa0], bl
mov dword [esp + 0x34], 0xb
mov dword [esp + 0x3c], edi
call fcn.004277c0
mov eax, dword [esp + 0x38]
add esp, 0x24
cmp eax, ebx
je 0x423d5e
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x34]
add esp, 0x24
cmp eax, ebx
je 0x423d9d
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
xor eax, eax
cmp edi, ebx
jle 0x423db6
mov cl, byte [esp + 0x34]
mov dl, byte [esp + eax + 0x7c]
xor dl, cl
mov byte [esp + eax + 0x7c], dl
inc eax
cmp eax, edi
jl 0x423da7
lea esi, [esp + 0x5c]
lea eax, [esp + 0x7c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x423de2
cmp cl, bl
je 0x423dde
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x423de2
add eax, 2
add esi, 2
cmp cl, bl
jne 0x423dbe
xor eax, eax
jmp 0x423de7
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x423df8
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x34
mov byte [esp + 0xc0], bl
mov dword [esp + 0x34], 0x16
mov dword [esp + 0x3c], edi
call fcn.004277c0
mov eax, dword [esp + 0x38]
add esp, 0x24
cmp eax, ebx
je 0x423e55
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x34]
add esp, 0x24
cmp eax, ebx
je 0x423e94
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
xor eax, eax
cmp edi, ebx
jle 0x423eb3
mov cl, byte [esp + 0x30]
mov dl, byte [esp + eax + 0x9c]
xor dl, cl
mov byte [esp + eax + 0x9c], dl
inc eax
cmp eax, edi
jl 0x423e9e
lea esi, [esp + 0x5c]
lea eax, [esp + 0x9c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x423ee2
cmp cl, bl
je 0x423ede
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x423ee2
add eax, 2
add esi, 2
cmp cl, bl
jne 0x423ebe
xor eax, eax
jmp 0x423ee7
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x423ef8
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea eax, [esp + 0x28]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x1c]
push edx
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x34
mov byte [esp + 0x44], 0x48
mov byte [esp + 0x45], 0x61
mov byte [esp + 0x46], 0x72
mov byte [esp + 0x47], 0x64
mov byte [esp + 0x48], bl
mov dword [esp + 0x34], 0xf2
mov dword [esp + 0x3c], 4
call fcn.004277c0
mov eax, dword [esp + 0x38]
add esp, 0x24
cmp eax, ebx
je 0x423f67
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
push eax
lea edx, [esp + 0x18]
push ecx
push edx
push 0x4d0e
push 0xcef
push ebp
push ebx
push 0x28
call fcn.004277c0
mov eax, dword [esp + 0x34]
add esp, 0x24
cmp eax, ebx
je 0x423fa6
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xac
ret
mov ecx, dword [esp + 0xc4]
xor eax, eax
mov cl, byte [ecx]
mov dl, byte [esp + eax + 0x28]
xor dl, cl
mov byte [esp + eax + 0x28], dl
inc eax
cmp eax, 4
jl 0x423fb1
lea edx, [esp + 0x20]
lea eax, [esp + 0x28]
push edx
push eax
mov byte [esp + 0x34], bl
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
pop edi
pop esi
pop ebp
pop ebx
sete al
add esp, 0xac
ret