Function at 0x41a410
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov ebp, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41a430
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a450
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 + 0x4c], edx
mov dword [esp + 0x44], ecx
mov dword [esp], esi
jns 0x41a481
mov eax, 0xffffffff
jmp 0x41a488
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00408330
add esp, 4
mov dword [esp + 0x40], eax
mov dword [esp + 0xa], 0xf9b4f74a
mov dword [esp + 0xe], 0xfd5ffb55
mov dword [esp + 0x12], 0xe14cff5f
mov dword [esp + 0x16], 0xe5a1e382
mov dword [esp + 0x1a], 0xe97ce77e
mov dword [esp + 0x1e], 0xed42eb4f
mov dword [esp + 0x22], 0xd179ef7d
mov dword [esp + 0x26], 0xd57ad37d
mov dword [esp + 0x2a], 0xd96bd7b6
mov dword [esp + 0x2e], 0xdd48db7f
mov dword [esp + 0x32], 0xc169df4a
mov dword [esp + 0x36], 0xc563c36c
mov dword [esp + 0x3a], 0xc974c755
mov word [esp + 0x3e], 0xcbca
mov eax, 0xb7c381c6
mov ecx, 0x483c7e39
nop
nop
movzx edx, byte [esp + eax + 0x483c7e44]
lea esi, [eax + 0x483c7f00]
and esi, edx
mov edi, eax
xor edi, edx
not edx
and edx, eax
sub edx, edi
add edx, ecx
or edx, esi
mov bl, 0xcf
sub bl, dl
mov byte [esp + eax + 0x483c7e44], bl
inc eax
dec ecx
cmp eax, 0xb7c381fc
jne 0x41a510
movzx ecx, word [ebp]
mov edx, dword [esp + 0x40]
mov eax, edx
test cx, cx
je 0x41a572
add ebp, 2
mov eax, edx
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 0x41a560
mov word [eax], 0
movzx ecx, word [esp + 0xa]
test cx, cx
mov esi, dword [esp]
je 0x41a5a3
lea edx, [esp + 0xc]
mov edi, dword [esp + 0x78]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41a590
jmp 0x41a5a7
mov edi, dword [esp + 0x78]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41a5d1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41a5c0
mov word [eax], 0
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a5f0
mov ecx, dword [esp + 0x74]
mov ebx, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41a610
mov edi, dword [edi]
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 0x41a630
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
mov dword [esp + 0x50], ebx
jns 0x41a658
mov eax, 0xffffffff
jmp 0x41a661
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp + 0x54], edi
push eax
call fcn.00408330
add esp, 4
movzx ecx, word [esi]
mov edx, eax
test cx, cx
je 0x41a691
add esi, 2
mov edx, eax
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41a680
mov dword [esp + 4], eax
mov dword [esp], edx
mov word [edx], 0x2f
mov dword [esp + 0xa], 0x36f034ec
mov dword [esp + 0xe], 0x2abd28bf
mov dword [esp + 0x12], 0x2eb32cce
mov dword [esp + 0x16], 0x22b820bc
mov dword [esp + 0x1a], 0x26bb24bc
mov dword [esp + 0x1e], 0xda06d8b4
mov word [esp + 0x22], 0xdcdb
xor edi, edi
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
not edx
mov ebp, ebx
shr ebp, 1
and ebp, 1
movzx esi, byte [esp + ebx + 0xa]
mov ecx, ebx
and ecx, 9
and edx, 2
imul edx, ecx
mov eax, edi
and eax, 0x16
or ecx, 2
imul ecx, ebp
lea ecx, [edx + ecx*2]
sub ecx, eax
lea eax, [ebx + ecx]
add eax, 0x776bfc6b
xor eax, esi
mov ecx, eax
xor ecx, 0xa6
and eax, 0x26
lea eax, [ecx + eax*2]
add al, 2
mov byte [esp + ebx + 0xa], al
inc ebx
add edi, 2
cmp ebx, 0x1a
jne 0x41a6e0
mov edx, dword [esp]
add edx, 2
mov ecx, dword [esp + 0x50]
movzx eax, word [ecx]
test ax, ax
mov ebx, dword [esp + 0x54]
je 0x41a773
add ecx, 2
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a760
jmp 0x41a77b
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x40]
mov word [edx], 0
movzx eax, word [esp + 0xa]
test ax, ax
je 0x41a7b3
lea ecx, [esp + 0xc]
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a7a0
jmp 0x41a7b7
mov ebp, dword [esp + 4]
mov word [edx], 0
movzx eax, word [ebx]
test ax, ax
je 0x41a7e1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41a7d0
mov dword [esp], edx
mov word [edx], 0
mov dword [esp + 0xa], 0x2a
lea eax, [esp + 0xa]
push 0
push 0
push 0xc00000
push eax
push esi
push ebp
push dword [esp + 0x84]
call fcn.0041e6c0
add esp, 0x1c
mov ebx, eax
jmp dword [0x43ed14]