Function at 0x41c6f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41c710
mov esi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41c730
sar edx, 1
sar ecx, 1
lea eax, [edx + ecx]
add eax, 0x1b
test eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0x50], ecx
jns 0x41c75a
mov eax, 0xffffffff
jmp 0x41c764
lea eax, [edx + ecx]
lea eax, [eax*2 + 0x36]
push eax
call fcn.0040c9f0
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0xd782c9ac
mov dword [esp + 0x18], 0xd3bdd5a7
mov dword [esp + 0x1c], 0xdfaad1b1
mov dword [esp + 0x20], 0xdb97ddfc
mov dword [esp + 0x24], 0xe79ad9a0
mov dword [esp + 0x28], 0xe390e589
mov dword [esp + 0x2c], 0xef87e19f
mov dword [esp + 0x30], 0xeb98ed9f
mov dword [esp + 0x34], 0xf7a9e9c8
mov dword [esp + 0x38], 0xf38ef599
mov dword [esp + 0x3c], 0xff97f18c
mov dword [esp + 0x40], 0xfb91fd8e
mov dword [esp + 0x44], 0x762f987
mov word [esp + 0x48], 0x504
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov eax, 0x4e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3a]
lea edx, [eax - 0x5ad20300]
mov ebx, eax
and ebx, ecx
or edx, ecx
lea ebp, [edx + edx]
not ebp
add ebp, edx
or ebp, ebx
lea ecx, [ebp*2]
not ecx
add ecx, ebp
add cl, 0x7a
mov byte [esp + eax - 0x3a], cl
inc eax
cmp eax, 0x89
jne 0x41c800
movzx ecx, word [edi]
mov edx, dword [esp + 0xc]
mov eax, edx
test cx, cx
je 0x41c861
add edi, 2
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41c850
mov word [eax], 0
movzx ecx, word [esp + 0x14]
test cx, cx
je 0x41c891
lea edx, [esp + 0x16]
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 0x41c880
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41c8c1
add 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 [esi]
add esi, 2
test cx, cx
jne 0x41c8b0
mov word [eax], 0
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41c8e0
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41c900
mov edx, dword [esp + 0x70]
mov esi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41c920
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41c944
mov eax, 0xffffffff
jmp 0x41c94d
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp + 4], esi
push eax
call fcn.0040c9f0
add esp, 4
mov ecx, eax
movzx eax, word [ebx]
mov dword [esp + 0x10], ecx
test ax, ax
je 0x41c981
add ebx, 2
mov ecx, dword [esp + 0x10]
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41c970
mov esi, ecx
mov word [ecx], 0x2f
mov dword [esp + 0x14], 0x8fcb89fb
mov dword [esp + 0x18], 0x83368d04
mov dword [esp + 0x1c], 0x87348125
mov dword [esp + 0x20], 0x9b238533
mov dword [esp + 0x24], 0x9f2c992b
mov dword [esp + 0x28], 0x93e19d2b
mov dword [esp + 0x2c], 0x9190
mov eax, 0x8db22
mov edi, 0xba7724dd
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax - 0x8db0e]
mov ecx, edi
and ecx, 0x8a700048
mov edx, eax
and edx, 0x8c937
or edx, ecx
xor edx, ebx
mov ecx, edx
not ecx
mov ebx, edx
xor ebx, 0x48
and ecx, 1
or edx, 0xfe
add edx, ebx
add edx, ecx
add dl, 0x57
mov byte [esp + eax - 0x8db0e], dl
inc eax
dec edi
cmp eax, 0x8db3e
jne 0x41c9d0
mov edx, esi
add edx, 2
movzx eax, word [ebp]
test ax, ax
je 0x41ca44
add ebp, 2
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41ca30
jmp 0x41ca48
mov esi, dword [esp + 4]
mov word [edx], 0
movzx eax, word [esp + 0x14]
test ax, ax
je 0x41ca71
lea ecx, [esp + 0x16]
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ca60
mov word [edx], 0
movzx eax, word [esi]
test ax, ax
je 0x41caa1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41ca90
mov dword [esp + 4], edx
mov word [edx], 0
mov dword [esp + 0x14], 0xfffef9d6
mov byte [esp + 0x18], 0
mov eax, 0x169c7355
mov ecx, 0xaa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x96]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
mov edi, edx
not edi
add edi, edi
and edi, 0xe21c815a
mov ebx, edx
xor ebx, 0x8ef1bf52
mov ebp, edi
and ebp, ebx
xor ebx, edi
lea edi, [ebx + ebp*2]
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [esp + ecx - 0x96], dl
dec eax
inc ecx
cmp ecx, 0xaf
jne 0x41cad0
lea eax, [esp + 0x14]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x1c]
push esi
mov ebp, dword [esp + 0x24]
push ebp
push dword [esp + 0x80]
call fcn.004201b0
add esp, 0x1c
mov ebx, eax
jmp dword [0x445a2c]