Function at 0x414a60
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov ebp, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ebp + 2], 0
lea ebp, [ebp + 2]
jne 0x414a80
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x414aa0
sar ebp, 1
sar eax, 1
lea ecx, [eax + ebp]
add ecx, 2
test ecx, ecx
mov dword [esp + 0x10], ebp
jns 0x414ac4
mov eax, 0xffffffff
jmp 0x414acd
add eax, ebp
lea eax, [eax*2 + 4]
push eax
call fcn.004080f0
add esp, 4
movzx ecx, word [esi]
mov ebp, eax
test cx, cx
je 0x414b02
add esi, 2
mov ebp, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x414af0
mov dword [esp + 4], eax
mov word [ebp], 0
mov word [esp + 0x14], 0x4c27
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x14]
lea ebx, [ecx + 0xd3]
and ebx, esi
add ebx, ebx
add esi, ecx
add esi, 0x477c87d3
mov edi, esi
not edi
and edi, ebx
not ebx
and ebx, esi
sub ebx, edi
mov esi, ebx
not esi
and esi, 0x99
and ebx, 0x66
sub ebx, esi
inc bl
mov byte [esp + ecx + 0x14], bl
mov ecx, 1
test dl, 1
mov edx, 0
jne 0x414b20
movzx ecx, word [esp + 0x14]
mov word [ebp], cx
add ebp, 2
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
test cx, cx
je 0x414ba4
lea edx, [eax + 2]
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414b90
jmp 0x414ba8
mov eax, dword [esp + 4]
mov word [ebp], 0
lea ecx, [esp + 8]
push 0x60
push 7
push 0x120089
push ecx
push eax
call fcn.0043e830
add esp, 0x14
mov edx, eax
mov eax, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x414be0
mov ecx, dword [esp + 0x5c]
mov esi, dword [ecx]
mov ecx, 0xfffffffe
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x414c00
sar eax, 1
sar ecx, 1
add ebx, eax
lea eax, [ecx + ebx]
add eax, 3
test eax, eax
mov dword [esp + 0xc], edx
jns 0x414c26
mov eax, 0xffffffff
jmp 0x414c2f
add ebx, ecx
lea eax, [ebx*2 + 6]
push eax
call fcn.004080f0
add esp, 4
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x414c61
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x414c50
mov word [ebx], 0x2f
add ebx, 2
movzx ecx, word [esi]
test cx, cx
mov dword [esp + 0x28], eax
je 0x414c91
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x414c80
mov word [ebx], 0
mov word [esp + 0x14], 0xe9c7
xor ecx, ecx
mov al, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x10], eax
movzx eax, byte [esp + ecx + 0x14]
mov edi, ecx
or edi, 0xc2b600a8
mov ebp, 0x57
sub ebp, ecx
mov edx, edi
or edx, eax
mov esi, eax
not esi
or esi, ebp
and esi, edx
not esi
and esi, edi
add esi, esi
and esi, 0x52
neg esi
lea edx, [ecx + esi]
add edx, 0xc2b600a8
add dl, al
add dl, 0xc0
mov byte [esp + ecx + 0x14], dl
mov ecx, 1
test byte [esp + 0x10], 1
mov eax, 0
jne 0x414cb0
movzx ecx, word [esp + 0x14]
mov word [ebx], cx
add ebx, 2
mov eax, dword [esp + 0x60]
movzx ecx, word [eax]
test cx, cx
je 0x414d31
add eax, 2
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x414d20
mov word [ebx], 0
mov dword [esp + 0x14], 0x7c6c587
mov eax, 0xf1d06fe4
mov ecx, 0x1b
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xe2f9030]
mov esi, edx
not esi
and esi, eax
and edx, ecx
or edx, esi
not esi
or esi, 0x717c80df
add esi, edx
inc esi
mov ebx, esi
and ebx, 2
mov edi, esi
or esi, 2
imul esi, ebx
xor ebx, 2
and edi, 0xfd
imul edi, ebx
xor edx, 0xdf
add edx, esi
add edx, edi
inc dl
mov byte [esp + eax + 0xe2f9030], dl
inc eax
dec ecx
cmp eax, 0xf1d06fe8
jne 0x414d50
xor eax, eax
mov ebx, dword [esp + 0xc]
cmp ebx, dword [esp + 0x14]
sete al
jmp dword [eax*4 + 0x443ef4]