Function at 0x41bee0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x4c
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov ebp, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41bf00
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41bf20
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x48], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp], edx
mov dword [esp + 0x44], ecx
jns 0x41bf4d
mov eax, 0xffffffff
jmp 0x41bf54
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00407fc0
add esp, 4
mov dword [esp + 0xe], 0x8b468954
mov dword [esp + 0x12], 0x8f6d8d63
mov dword [esp + 0x16], 0x937e9171
mov dword [esp + 0x1a], 0x975395b4
mov dword [esp + 0x1e], 0x9b6e9960
mov dword [esp + 0x22], 0x9f709d79
mov dword [esp + 0x26], 0xa34ba153
mov dword [esp + 0x2a], 0xa748a54b
mov dword [esp + 0x2e], 0xab79a988
mov dword [esp + 0x32], 0xaf5aad49
mov dword [esp + 0x36], 0xb35bb144
mov dword [esp + 0x3a], 0xb751b55a
mov dword [esp + 0x3e], 0xbb66b94b
mov word [esp + 0x42], 0xbdbc
mov ebx, 0x5f3fc0c8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x5f3fc0ba]
xor ecx, ebx
add ecx, 0x601f9bf
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + ebx - 0x5f3fc0ba], cl
inc ebx
cmp ebx, 0x5f3fc0fe
jne 0x41bfe0
movzx ecx, word [ebp]
mov ebx, eax
test cx, cx
je 0x41c032
add ebp, 2
mov ebx, eax
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41c020
mov word [ebx], 0
movzx ecx, word [esp + 0xe]
test cx, cx
je 0x41c061
lea edx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41c050
mov word [ebx], 0
movzx ecx, word [edi]
test cx, cx
mov dword [esp + 4], eax
je 0x41c091
add edi, 2
nop
nop
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 0x41c080
mov word [ebx], 0
mov ebx, dword [esi]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41c0a0
mov ecx, dword [esp + 0x68]
mov ebp, dword [ecx]
mov ecx, 0xfffffffe
mov edx, dword [esp + 0x6c]
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41c0c0
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41c0e0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41c104
mov eax, 0xffffffff
jmp 0x41c10d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.00407fc0
add esp, 4
mov esi, eax
movzx eax, word [ebx]
mov dword [esp + 8], esi
test ax, ax
je 0x41c141
add ebx, 2
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41c130
mov word [esp + 0xe], 0xcbe5
xor ecx, ecx
mov dl, 1
nop
nop
nop
nop
movzx eax, byte [esp + ecx + 0xe]
mov ebx, 0xc8ec2e5
sub ebx, ecx
or ebx, 0x248c80c4
xor ebx, eax
mov eax, 0x6476172e
sub eax, ebx
mov ebx, eax
and ebx, 1
xor eax, 1
lea eax, [eax + ebx*2]
mov byte [esp + ecx + 0xe], al
mov ecx, 1
xor eax, eax
test dl, 1
mov edx, 0
jne 0x41c150
movzx ecx, word [esp + 0xe]
mov word [esi], cx
mov dword [esp + 0xe], 0x5713553b
mov dword [esp + 0x12], 0x5bee59e0
mov dword [esp + 0x16], 0x5ff05df9
mov dword [esp + 0x1a], 0xa30ba113
mov dword [esp + 0x1e], 0xa708a50b
mov dword [esp + 0x22], 0xabc5a91b
mov word [esp + 0x26], 0xadac
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xf4
xor cl, byte [esp + eax + 0xe]
add cl, 0x60
mov byte [esp + eax + 0xe], cl
inc eax
cmp eax, 0x1a
jne 0x41c1d0
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41c212
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41c200
mov word [esi], 0
movzx eax, word [esp + 0xe]
test ax, ax
je 0x41c241
lea ecx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c230
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x41c271
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41c260
mov word [esi], 0
mov dword [esp + 0xe], 0x1c1b1a23
xor ecx, ecx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0xe]
mov edx, eax
or edx, 0x34208d91
mov ebx, ecx
or ebx, 0x34208d91
add ebx, edx
lea edx, [ecx + ebx]
inc edx
xor edx, edi
mov edi, edx
xor edi, 0x21046c88
mov ebx, edx
or ebx, 0x5efb9377
and ebx, edi
xor edx, 0x5efb9377
lea ebx, [edx + ebx*2]
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 0xe], bl
lea edx, [ecx + 1]
dec eax
mov ecx, edx
cmp edx, 4
jne 0x41c290
lea eax, [esp + 0xe]
push 0
push 0
push 0xc00000
push eax
mov edi, dword [esp + 0x14]
push edi
push dword [esp + 0x1c]
push dword [esp + 0x78]
call fcn.004201a0
add esp, 0x1c
mov ebx, eax
jmp dword [0x442a2c]