Function at 0x414c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x54]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x414c90
mov ebp, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x414cb0
sar edi, 1
sar eax, 1
lea ecx, [edi + eax]
add ecx, 2
test ecx, ecx
jns 0x414cd0
mov eax, 0xffffffff
jmp 0x414cd9
add eax, edi
lea eax, [eax*2 + 4]
push eax
call fcn.00408b60
add esp, 4
movzx ecx, word [ebp]
mov dword [esp + 0x14], eax
test cx, cx
je 0x414d12
add ebp, 2
mov eax, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x414d00
mov word [eax], 0
mov word [esp + 0x1c], 0x6db0
xor ecx, ecx
movzx ebp, byte [esp + ecx + 0x1c]
mov edx, ecx
or edx, 0x7c06500c
xor edx, ebp
lea ebp, [edx + edx]
and ebp, 0x3808a13e
xor edx, 0xe0328060
sub edx, ebp
lea ebp, [edx*2 + 2]
inc edx
sub edx, ebp
inc dl
mov byte [esp + ecx + 0x1c], dl
lea ecx, [ecx + ecx*2]
xor ecx, 1
cmp ecx, 2
jb 0x414d20
movzx ecx, word [esp + 0x1c]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x414d91
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414d80
mov word [eax], 0
lea eax, [esp + 0x10]
push 0x60
push 7
push 0x120089
push eax
push dword [esp + 0x24]
call fcn.0043d5a0
add esp, 0x14
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov ebp, dword [eax]
mov eax, 0xfffffffe
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x414dc0
mov ebx, dword [ebx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x414de0
sar eax, 1
sar ecx, 1
add edi, eax
lea eax, [ecx + edi]
add eax, 3
test eax, eax
jns 0x414e02
mov eax, 0xffffffff
jmp 0x414e0b
add edi, ecx
lea eax, [edi*2 + 6]
push eax
call fcn.00408b60
add esp, 4
movzx ecx, word [ebp]
mov dword [esp + 0xc], eax
test cx, cx
je 0x414e42
add ebp, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x414e30
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x414e71
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x414e60
mov word [eax], 0
mov word [esp + 0x1c], 0xa5cb
xor edi, edi
mov dl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi + 0x1c]
mov ebx, edi
or ebx, ebp
or ebx, 0xea8f1884
mov ecx, edi
or ecx, 0x84
and ecx, ebp
sub ebx, ecx
mov ecx, ebx
and ecx, 0x421
xor ecx, 0x1470c421
and ebx, 0xaa871bde
sub ebx, ecx
lea ecx, [ebx + ebx]
and ecx, 2
mov ebp, ecx
and ebp, ebx
xor ecx, ebx
xor ecx, 1
lea ecx, [ecx + ebp*2]
mov byte [esp + edi + 0x1c], cl
mov edi, 1
test dl, 1
mov edx, 0
jne 0x414e90
movzx ecx, word [esp + 0x1c]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x414f13
add esi, 2
mov ebx, dword [esp + 0xc]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x414f00
jmp 0x414f17
mov ebx, dword [esp + 0xc]
mov word [eax], 0
mov dword [esp + 0x1c], 0xadeceb29
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x3a
xor cl, byte [esp + eax + 0x1c]
add cl, 0x30
mov byte [esp + eax + 0x1c], cl
inc eax
cmp eax, 4
jne 0x414f30
xor eax, eax
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x1c]
sete al
jmp dword [eax*4 + 0x44204c]