Function at 0x414070
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 0x414090
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 0x4140b0
sar edi, 1
sar eax, 1
lea ecx, [edi + eax]
add ecx, 2
test ecx, ecx
jns 0x4140d0
mov eax, 0xffffffff
jmp 0x4140d9
add eax, edi
lea eax, [eax*2 + 4]
push eax
call fcn.00407f60
add esp, 4
movzx ecx, word [ebp]
mov dword [esp + 0x14], eax
test cx, cx
je 0x414112
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 0x414100
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 0x414120
movzx ecx, word [esp + 0x1c]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x414191
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 0x414180
mov word [eax], 0
lea eax, [esp + 0x10]
push 0x60
push 7
push 0x120089
push eax
push dword [esp + 0x24]
call fcn.0043c9a0
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 0x4141c0
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 0x4141e0
sar eax, 1
sar ecx, 1
add edi, eax
lea eax, [ecx + edi]
add eax, 3
test eax, eax
jns 0x414202
mov eax, 0xffffffff
jmp 0x41420b
add edi, ecx
lea eax, [edi*2 + 6]
push eax
call fcn.00407f60
add esp, 4
movzx ecx, word [ebp]
mov dword [esp + 0xc], eax
test cx, cx
je 0x414242
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 0x414230
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x414271
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 0x414260
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 0x414290
movzx ecx, word [esp + 0x1c]
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x414313
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 0x414300
jmp 0x414317
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 case.default.0x414353
xor eax, eax
mov ecx, dword [esp + 8]
cmp ecx, dword [esp + 0x1c]
sete al
jmp dword [eax*4 + 0x44204c]
mov dword [esp], 0xe221209b
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax]
mov edx, 0xffe4a868
sub edx, eax
or edx, ecx
mov esi, 0x68
sub esi, eax
and esi, ecx
xor esi, edx
lea ecx, [esi + esi]
not ecx
add ecx, esi
add cl, 0x48
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 4
jb case.default.0x4143b3
xor eax, eax
mov ecx, dword [esp + 8]
cmp ecx, dword [esp]
sete al
xor edx, edx
jmp dword [eax*4 + 0x442054]
mov eax, dword [case.0x4143b3.1]
nop
jmp eax
push 0x68
push 7
push 0x100080
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x24]
call fcn.0043c9a0
add esp, 0x14
mov ecx, eax
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x44206c]
mov dword [esp + 4], edx
test dl, 1
sete al
cmp dword [esp + 8], 0
setns cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x4420fc]