Function at 0x41adf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
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 0x41ae10
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 0x41ae30
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ecx
jns 0x41ae5e
mov eax, 0xffffffff
jmp 0x41ae65
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00407fa0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xe], 0xd7c7d7f6
mov dword [esp + 0x12], 0xd7eed7e3
mov dword [esp + 0x16], 0xd7e3d7ef
mov dword [esp + 0x1a], 0xd7f4d610
mov dword [esp + 0x1e], 0xd7a7d7aa
mov dword [esp + 0x22], 0xd7dbd7d1
mov dword [esp + 0x26], 0xd7ded7a5
mov dword [esp + 0x2a], 0xd7d7d7d7
mov dword [esp + 0x2e], 0xd7c8d61a
mov dword [esp + 0x32], 0xd7a9d7d9
mov dword [esp + 0x36], 0xd7d6d7aa
mov dword [esp + 0x3a], 0xd7c6d7ce
mov dword [esp + 0x3e], 0xd7dfd7b1
mov word [esp + 0x42], 0xd624
xor eax, eax
mov ecx, 0xaf25
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 + 0xe]
mov ebx, edx
not ebx
or ebx, ecx
lea edx, [edx + ebx*2]
add edx, eax
add edx, 0x952950dc
mov ebx, edx
and ebx, 0x792f
xor edx, 0x792f
lea edx, [edx + ebx*2]
inc edx
mov word [esp + eax*2 + 0xe], dx
inc eax
dec ecx
cmp eax, 0x1b
jne 0x41aef0
movzx ecx, word [ebp]
mov edx, dword [esp + 4]
mov eax, edx
test cx, cx
je 0x41af52
add ebp, 2
mov eax, edx
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 0x41af40
mov word [eax], 0
movzx ecx, word [esp + 0xe]
test cx, cx
je 0x41af81
lea edx, [esp + 0x10]
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 0x41af70
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41afb1
add edi, 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 [edi]
add edi, 2
test cx, cx
jne 0x41afa0
mov word [eax], 0
mov ebx, dword [esi]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41afc0
mov esi, dword [esp + 0x70]
mov ebp, dword [esi]
mov ecx, 0xfffffffe
mov edx, dword [esp + 0x74]
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41afe0
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 0x41b000
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41b024
mov eax, 0xffffffff
jmp 0x41b02d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.00407fa0
add esp, 4
movzx ecx, word [ebx]
mov dword [esp + 8], eax
mov edx, eax
test cx, cx
je 0x41b061
add ebx, 2
mov edx, dword [esp + 8]
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41b050
mov word [edx], 0x2f
mov dword [esp + 0xe], 0x38453850
mov dword [esp + 0x12], 0x3b963b89
mov dword [esp + 0x16], 0x3b9a3ba6
mov dword [esp + 0x1a], 0x3b9f3b96
mov dword [esp + 0x1e], 0x3be63b98
mov dword [esp + 0x22], 0x38253bea
mov word [esp + 0x26], 0x387b
xor eax, eax
nop
lea ecx, [eax - 0x6a49]
xor cx, word [esp + eax*2 + 0xe]
add ecx, 0x5248
mov word [esp + eax*2 + 0xe], cx
inc eax
cmp eax, 0xd
jne 0x41b0a0
add edx, 2
movzx eax, word [ebp]
test ax, ax
je 0x41b0e2
add ebp, 2
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41b0d0
mov word [edx], 0
movzx eax, word [esp + 0xe]
test ax, ax
je 0x41b111
lea ecx, [esp + 0x10]
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 0x41b100
mov word [edx], 0
movzx eax, word [edi]
test ax, ax
je 0x41b141
add edi, 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 [edi]
add edi, 2
test ax, ax
jne 0x41b130
mov dword [esp + 0x44], edx
mov word [edx], 0
mov dword [esp + 0xe], 0xf072f04b
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [esp + eax*2 + 0xe]
mov edx, 0xe246
sub edx, eax
mov ebx, eax
add ebx, 0x8b371db9
xor edx, ebx
and edx, edi
xor edx, ebx
mov edi, edx
and edi, 0x1235
mov ebx, edx
and ebx, 2
mov ebp, ebx
xor ebp, 2
imul ebp, edi
or edi, 2
imul edi, ebx
xor edx, 0x1237
add edx, ebp
add edx, edi
inc edx
mov word [esp + eax*2 + 0xe], dx
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x41b160
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 + 0x80]
call fcn.0041ee60
add esp, 0x1c
mov ebx, eax
jmp dword [0x43f894]