Function at 0x41f1f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
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 0x41f210
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 0x41f230
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 4], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0x4c], ecx
jns 0x41f25e
mov eax, 0xffffffff
jmp 0x41f265
lea eax, [ecx*2 + 0x36]
push eax
call fcn.004083e0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x10], 0x570249ec
mov dword [esp + 0x14], 0x53fd55e7
mov dword [esp + 0x18], 0x5fea51f1
mov dword [esp + 0x1c], 0x5b175d3c
mov dword [esp + 0x20], 0xa71a59e0
mov dword [esp + 0x24], 0xa310a509
mov dword [esp + 0x28], 0xaf07a11f
mov dword [esp + 0x2c], 0xab18ad1f
mov dword [esp + 0x30], 0xb7e9a9c8
mov dword [esp + 0x34], 0xb30eb519
mov dword [esp + 0x38], 0xbf17b10c
mov dword [esp + 0x3c], 0xbb11bd0e
mov dword [esp + 0x40], 0x8722b907
mov word [esp + 0x44], 0x8584
mov dword [esp + 0x46], 0
mov byte [esp + 0x4a], 0
mov eax, 0x8be3a357
mov ecx, 0x17c746ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x741c5cb9]
mov ebp, eax
xor ebp, 0x5d13e69
mov edx, ecx
and edx, 0x1445032c
sub edx, ebp
mov ebp, edx
and ebp, ebx
add edx, ebx
add ebp, ebp
sub edx, ebp
mov ebx, edx
and ebx, 0x59
and edx, 0xa6
xor edx, 0xa7
sub ebx, edx
inc bl
mov byte [esp + eax + 0x741c5cb9], bl
inc eax
add ecx, 2
cmp eax, 0x8be3a392
jne 0x41f300
movzx ecx, word [edi]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x41f371
add edi, 2
mov eax, edx
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41f360
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41f3a1
lea edx, [esp + 0x12]
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 0x41f390
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41f3d1
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 0x41f3c0
mov word [eax], 0
mov eax, dword [esp + 0x68]
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 0x41f3f0
mov ecx, dword [esp + 0x68]
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 0x41f410
mov edx, dword [esp + 0x6c]
mov edi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41f430
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41f454
mov eax, 0xffffffff
jmp 0x41f45d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004083e0
add esp, 4
mov esi, eax
movzx eax, word [ebx]
mov dword [esp + 0xc], esi
test ax, ax
je 0x41f491
add ebx, 2
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41f480
mov word [esi], 0x2f
mov dword [esp + 0x10], 0x2367215f
mov dword [esp + 0x14], 0x279225ac
mov dword [esp + 0x18], 0x3b84399d
mov dword [esp + 0x1c], 0x3f873d8f
mov dword [esp + 0x20], 0x338c318f
mov dword [esp + 0x24], 0x37493587
mov word [esp + 0x28], 0x908
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
xor eax, eax
nop
nop
lea ecx, [eax + eax]
mov edx, ecx
and edx, 0x10
mov ebx, edx
and ebx, eax
xor edx, eax
lea edx, [edx + ebx*2]
xor dl, byte [esp + eax + 0x10]
xor dl, 8
add dl, 0xd8
mov byte [esp + eax + 0x10], dl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0x20
jb 0x41f4e0
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41f534
add ebp, 2
mov ebx, dword [esp + 0x6c]
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41f520
jmp 0x41f538
mov ebx, dword [esp + 0x6c]
mov word [esi], 0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41f563
lea ecx, [esp + 0x12]
mov ebp, dword [esp]
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f550
jmp 0x41f566
mov ebp, dword [esp]
mov word [esi], 0
movzx eax, word [edi]
test ax, ax
je 0x41f591
add edi, 2
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 0x41f580
mov word [esi], 0
mov dword [esp + 0x10], 0x1312113a
mov word [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 4
xor cl, byte [esp + eax + 0x10]
add cl, 0xec
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 6
jne 0x41f5b0
lea eax, [esp + 0x10]
push 0
push 0
push 0xc00000
push eax
push ebp
push dword [esp + 0x20]
push dword [esp + 0x7c]
call fcn.00423110
add esp, 0x1c
mov byte [esp], al
jmp dword [0x446bdc]