Function at 0x4414b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov ebp, dword [esp + 0x30]
mov dword [esp], 0x989b9a9d
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
mov ecx, eax
add cl, 0x9b
xor cl, byte [esp + eax]
add cl, 0xf9
mov byte [esp + eax], cl
inc eax
cmp eax, 7
jne 0x4414d0
mov edi, dword [esp]
mov eax, dword [0x44e1c8]
test eax, eax
je 0x44153e
xor ecx, ecx
mov edx, dword [0x44e1cc]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x3052ea03
je 0x441510
inc ecx
cmp eax, ecx
jne 0x441500
jmp 0x44153e
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x44153e
lea ecx, [esp + 0x10]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push eax
push dword [0x44e1d0]
call fcn.0043e5b0
add esp, 0x24
mov edi, eax
mov dword [esp], 0xe1262779
mov edx, 0x39
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx - 0x39]
mov ecx, esi
and ecx, edx
mov eax, ecx
or al, 0xfd
inc al
mov ah, cl
and ah, 0x3d
mul ah
mov ebx, eax
mov eax, esi
add bl, al
mov eax, ecx
shr al, 1
and al, 1
or cl, 2
mul cl
add al, al
sub bl, al
movzx eax, bl
add eax, edx
add al, 0xe3
mov byte [esp + edx - 0x39], al
inc edx
cmp edx, 0x3d
jne 0x441550
cmp edi, dword [esp]
jne 0x441745
push dword [esp + 0x10]
call fcn.0043b900
add esp, 4
mov ecx, eax
mov edx, dword [esp + 0x10]
mov dword [esp + 8], edx
mov dword [esp], 0x989b9a9d
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor edx, edx
mov ebx, edx
add bl, 0x9b
xor bl, byte [esp + edx]
add bl, 0xf9
mov byte [esp + edx], bl
inc edx
cmp edx, 7
jne 0x4415c0
mov edi, dword [esp]
mov edx, dword [0x44e1c8]
test edx, edx
mov esi, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
je 0x441653
mov ecx, edi
xor ebx, ebx
mov edi, dword [0x44e1cc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0x3052ea03
je 0x441610
inc ebx
cmp edx, ebx
jne 0x441600
jmp 0x44164d
mov edx, dword [edi + ebx*8 + 4]
mov edi, ecx
cmp edx, ecx
mov ecx, dword [esp + 0xc]
je 0x441653
mov edi, esi
lea esi, [esp + 0x10]
push esi
mov esi, edi
push dword [esp + 0xc]
push ecx
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44e1d0]
mov edi, eax
call fcn.0043e5b0
add esp, 0x24
mov ecx, eax
mov eax, edi
mov edi, ecx
mov ecx, dword [esp + 0xc]
test esi, esi
je 0x44173c
test edi, edi
js 0x44173c
test ebp, ebp
je 0x441735
mov ecx, dword [ecx + 0xc]
shr ecx, 1
mov edx, dword [esi]
cmp edx, ecx
jb 0x441678
mov edx, ecx
test edx, edx
je 0x441727
add eax, 0x10
mov ecx, edx
and ecx, 3
mov dword [esp + 8], edi
je 0x4416c9
mov esi, edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov word [ebp], bx
add ebp, 2
inc edi
cmp ecx, edi
jne 0x4416a0
mov edx, esi
sub esi, edi
mov edi, dword [esp + 8]
cmp edx, 4
jae 0x4416d0
jmp 0x441727
mov esi, edx
cmp edx, 4
jb 0x441727
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebp], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebp + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebp + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebp + 6], cx
add ebp, 8
lea eax, [edi + eax*2]
add esi, 0xfffffffc
jne 0x4416d0
mov edi, dword [esp + 8]
mov word [ebp], 0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
shr eax, 1
mov dword [esi], eax
push ecx
call fcn.0043b990
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret