Function at 0x4414f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov esi, dword [esp + 0xa8]
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0xac]
test esi, esi
je 0x441790
test edi, edi
mov dword [esp], esi
cmove edi, esi
call fcn.00458c20
lea ecx, [eax + 1]
mov edx, eax
lea eax, [ecx + ecx]
cmp eax, ebp
ja 0x4415e6
lea ebx, [ebp - 1]
sub ebp, eax
cmp ebp, dword [esp + 0x9c]
mov dword [esp + 0x24], ebx
lea ebx, [eax - 2]
mov dword [esp + 0x28], ebx
jb 0x441753
sub eax, 1
cmp dword [esp + 0x24], eax
jb 0x4415b0
mov eax, dword [esp + 0x90]
mov dword [esp + 0x2c], edx
mov byte [eax], 0
add ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], 0
mov ebp, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00459190
mov edx, dword [esp + 0x2c]
test eax, eax
jne 0x4415f0
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x195
mov dword [esp + 0xc], 0x4c6720
mov dword [esp + 8], 0x7a
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00429d90
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0x188
jmp 0x4415b8
mov eax, dword [esp + 0x90]
lea ecx, [ebp + edx]
mov esi, dword [esp + 0x24]
sub esi, dword [esp + 0x9c]
mov dword [esp], ecx
add eax, 1
mov ebx, eax
lea eax, [esi - 1]
sub eax, dword [esp + 0x28]
mov dword [esp + 4], 0
mov dword [esp + 0x28], edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x9c]
sub esi, edx
mov byte [ebp + esi - 1], 1
add esi, ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x28]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00451fc0
mov edx, dword [esp + 0x28]
test eax, eax
je 0x4415a3
mov esi, dword [esp + 0x24]
mov dword [esp + 0x24], edx
sub esi, edx
mov dword [esp], esi
call sub.msvcrt.dll_malloc
mov edx, dword [esp + 0x24]
test eax, eax
mov ecx, eax
je 0x4417a4
mov dword [esp + 0xc], edx
mov dword [esp], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
call fcn.00441380
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
test eax, eax
js 0x4417a0
xor eax, eax
test esi, esi
je 0x4416ec
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x24], edx
movzx edx, byte [ecx + eax]
xor byte [ebp + eax], dl
add eax, 1
cmp eax, esi
jne 0x4416d2
mov edx, dword [esp + 0x24]
mov dword [esp + 0x90], ebx
mov dword [esp + 0x10], edi
lea edi, [esp + 0x30]
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
call fcn.00441380
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
test eax, eax
js 0x4417a0
test edx, edx
je 0x44173f
mov ebx, dword [esp + 0x90]
xor esi, esi
lea esi, [esi]
movzx eax, byte [edi + esi]
xor byte [ebx + esi + 1], al
add esi, 1
cmp esi, edx
jne 0x441730
mov ebx, 1
mov dword [esp], ecx
call fcn.0049e1d0
mov eax, ebx
jmp 0x4415de
mov dword [esp + 0x10], 0x18f
mov dword [esp + 0xc], 0x4c6720
mov dword [esp + 8], 0x6f
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00429d90
add esp, 0x7c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0044e4b0
mov esi, eax
jmp 0x441514
xor ebx, ebx
jmp 0x441744
mov dword [esp + 0x10], 0x1aa
mov dword [esp + 0xc], 0x4c6720
mov dword [esp + 8], 0x41
mov dword [esp + 4], 0x6b
mov dword [esp], 4
call fcn.00429d90
xor eax, eax
jmp 0x4415a5