Function at 0x40561c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
cmp byte [0x46b0a0], 0xe9
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
je 0x405638
xor eax, eax
jmp 0x405867
xor ecx, ecx
xor edx, edx
mov cl, byte [0x46b0a2]
mov dl, byte [0x46b0a1]
shl ecx, 8
push 0
add edx, ecx
mov dword [0x46b1c4], edx
add dword [0x46b1c4], 3
mov eax, dword [0x46b1c4]
push eax
push esi
call fcn.0042e350
xor edx, edx
add esp, 0xc
mov ebx, edx
mov edi, edx
mov byte [ebp - 2], 0
cmp ebx, 0x64
jge 0x4057a9
push esi
call fcn.00430138
pop ecx
mov byte [ebp - 1], al
mov eax, edi
cmp eax, 0xa
ja case.default.0x405693
jmp dword [eax*4 + 0x40569a]
cmp byte [ebp - 1], 0xe
jne case.default.0x405693
inc edi
jmp case.default.0x405693
cmp byte [ebp - 1], 0x1f
jne case.default.0x405693
inc edi
jmp case.default.0x405693
cmp byte [ebp - 1], 0xbb
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
mov word [ebp - 0x12], ax
jmp case.default.0x405693
cmp byte [ebp - 1], 0xb9
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
mov word [ebp - 0x10], ax
jmp case.default.0x405693
cmp byte [ebp - 1], 0xba
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
mov word [ebp - 0xe], ax
jmp case.default.0x405693
cmp byte [ebp - 1], 0xc1
jne case.default.0x405693
cmp byte [ebp - 2], 0x81
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
add word [ebp - 0x10], ax
jmp case.default.0x405693
cmp byte [ebp - 1], 0x97
jne case.default.0x405693
cmp byte [ebp - 2], 0x30
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
add word [ebp - 0x12], ax
jmp case.default.0x405693
cmp byte [ebp - 1], 0x43
jne case.default.0x405693
inc edi
jmp case.default.0x405693
cmp byte [ebp - 1], 0xf2
jne case.default.0x405693
cmp byte [ebp - 2], 0
jne case.default.0x405693
inc edi
jmp case.default.0x405693
cmp byte [ebp - 1], 0xe2
jne case.default.0x405693
inc edi
jmp case.default.0x405693
cmp byte [ebp - 1], 0xe9
jne case.default.0x405693
inc edi
push esi
call fcn.00418670
pop ecx
mov word [ebp - 0x14], ax
cmp edi, 0xb
je 0x4057a9
mov dl, byte [ebp - 1]
mov byte [ebp - 2], dl
inc ebx
cmp ebx, 0x64
jl 0x40567e
cmp edi, 0xb
je 0x4057b5
xor eax, eax
jmp 0x405867
push 1
push esi
push 0x12
call fcn.00401410
add esp, 0xc
dec eax
je 0x4057cc
xor eax, eax
jmp 0x405867
movzx eax, word [ebp - 0x12]
add eax, 0xffffff00
push 0
push eax
push esi
mov dword [0x46b1c4], eax
call fcn.0042e350
add esp, 0xc
push 0x23
call fcn.0042b7bc
pop ecx
mov edi, eax
push esi
push 0x23
push 1
push edi
call fcn.0042e2b0
add esp, 0x10
push 0
push 0
push esi
call fcn.0042e350
add esp, 0xc
xor ebx, ebx
mov eax, edi
mov dl, byte [ebp - 0xe]
inc ebx
xor byte [eax], dl
inc eax
mov cl, byte [ebp - 0xd]
add byte [ebp - 0xe], cl
cmp ebx, 0x21
jl 0x40580f
mov al, byte [edi + 0x1e]
mov byte [0x46b0a0], al
lea eax, [edi + 0x1e]
mov dl, byte [edi + 0x1f]
mov byte [0x46b0a1], dl
mov cl, byte [edi + 0x20]
push esi
push 3
push 1
push eax
mov byte [0x46b0a2], cl
call fcn.0042e540
add esp, 0x10
push edi
call fcn.0042b7cc
pop ecx
push esi
call fcn.00418690
pop ecx
inc eax
jne 0x405862
or eax, 0xffffffff
jmp 0x405867
mov eax, 0x12
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret