Function at 0x41f98a
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xa8]
mov eax, dword [esp + 0xa4]
mov eax, dword [eax + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x41f690
lea edx, [eax + ecx]
add edx, 0xfffffffe
add ecx, eax
mov esi, 1
sub esi, ecx
and esi, eax
not eax
and eax, edx
sub eax, esi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx], 0
lea ecx, [ecx + 2]
jne 0x41f6c0
sar eax, 1
lea edx, [ebx + ecx]
add edx, 0xfffffffe
add ecx, ebx
mov esi, 1
sub esi, ecx
and esi, ebx
mov ecx, ebx
not ecx
and ecx, edx
sub ecx, esi
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x3f
test edx, edx
jns 0x41f6f8
mov eax, 0xffffffff
jmp 0x41f701
add eax, ecx
lea eax, [eax*2 + 0x7e]
push eax
call fcn.00408000
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x4c], 0x25b1235c
mov dword [esp + 0x50], 0x294d27b5
mov dword [esp + 0x54], 0x2d6f2bb8
mov dword [esp + 0x58], 0x513e2f41
mov dword [esp + 0x5c], 0x553153c6
mov dword [esp + 0x60], 0x59cc57ce
mov dword [esp + 0x64], 0x5d385b13
mov dword [esp + 0x68], 0x41145f03
mov dword [esp + 0x6c], 0x451d4310
mov dword [esp + 0x70], 0x49114712
mov dword [esp + 0x74], 0x4d1b4b1c
mov dword [esp + 0x78], 0x71294f1c
mov dword [esp + 0x7c], 0x75087327
mov dword [esp + 0x80], 0x791c771f
mov dword [esp + 0x84], 0x7d7c7b18
xor eax, eax
nop
nop
nop
movzx edx, byte [esp + eax + 0x4c]
lea ecx, [eax + 0xb2]
mov esi, 0x4d
sub esi, eax
and esi, 0x7d
mov ebp, ecx
and ebp, 0x82
or ebp, esi
xor ebp, edx
xor ebp, 0x7d
and ecx, edx
not ecx
and ecx, ebp
add cl, 0x70
mov byte [esp + eax + 0x4c], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x3c
jb 0x41f790
mov dword [esp + 8], 0x5fed5d80
mov dword [esp + 0xc], 0x238d2194
mov dword [esp + 0x10], 0x27872596
mov dword [esp + 0x14], 0x2b8f298f
mov dword [esp + 0x18], 0x2f8a2df0
mov dword [esp + 0x1c], 0x33943195
mov dword [esp + 0x20], 0x37833595
mov dword [esp + 0x24], 0x3b8e3994
mov dword [esp + 0x28], 0x3f933de0
mov dword [esp + 0x2c], 0x3b801af
mov dword [esp + 0x30], 0x7a305e9
mov dword [esp + 0x34], 0xbbe09b0
mov dword [esp + 0x38], 0xfa00da9
mov dword [esp + 0x3c], 0x13bb11a3
mov dword [esp + 0x40], 0x17b815bb
mov dword [esp + 0x44], 0x1bf119f3
mov dword [esp + 0x48], 0x1f1e1df7
xor eax, eax
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xbc
xor cl, byte [esp + eax + 8]
add cl, 0x20
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0x44
jne 0x41f860
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 4]
movzx edx, word [ecx]
mov esi, dword [esp]
mov eax, esi
test dx, dx
je 0x41f8b1
add ecx, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41f8a0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41f8e1
lea edx, [esp + 0xa]
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 0x41f8d0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41f911
add ebx, 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 [ebx]
add ebx, 2
test cx, cx
jne 0x41f900
mov word [eax], 0
movzx ecx, word [esp + 0x4c]
test cx, cx
je 0x41f941
lea edx, [esp + 0x4e]
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 0x41f930
mov word [eax], 0
mov esi, dword [edi]
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x41f950
lea ecx, [esi + eax]
add ecx, 0xfffffffe
add eax, esi
mov edx, 1
sub edx, eax
and edx, esi
mov eax, esi
not eax
and eax, ecx
sub eax, edx
mov ecx, dword [esp + 0xa0]
mov edx, dword [ecx]
xor edi, edi
nop
nop
cmp word [edx + edi], 0
lea edi, [edi + 2]
jne 0x41f980
lea ebx, [edx + edi]
add ebx, 0xfffffffe
mov ecx, edx
not ecx
and ecx, ebx
add edi, edx
mov ebx, 1
sub ebx, edi
and ebx, edx
sub ecx, ebx
mov edx, dword [esp + 0xa4]
mov edx, dword [edx]
xor edi, edi
nop
nop
cmp word [edx + edi], 0
lea edi, [edi + 2]
jne 0x41f9b0
sar eax, 1
sar ecx, 1
lea ebx, [edx + edi]
add ebx, 0xfffffffe
add edi, edx
mov ebp, 1
sub ebp, edi
and ebp, edx
not edx
and edx, ebx
sub edx, ebp
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x41f9ea
mov eax, 0xffffffff
jmp 0x41f9f3
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.00408000
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 8], 0x16f414e4
mov dword [esp + 0xc], 0xa95088b
mov dword [esp + 0x10], 0xe990cee
mov dword [esp + 0x14], 0x2de009c
mov word [esp + 0x18], 0x403
mov eax, 0x23b8e44b
mov ecx, 0xc471bb4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax - 0x23b8e443]
mov ebx, ecx
and ebx, 0x8471902
mov edx, eax
and edx, 0x318e07d
or edx, ebx
mov ebx, edx
xor ebx, 0x28e71d02
or ebx, ebp
mov edi, eax
or edi, ebp
xor edx, 0x1718e2fd
sub edx, ebp
add edx, ebx
and edx, edi
mov ebx, edx
and ebx, 0x27
add ebx, ebx
xor edx, 0x58
sub ebx, edx
mov byte [esp + eax - 0x23b8e443], bl
inc eax
dec ecx
cmp eax, 0x23b8e45d
jne 0x41fa40
movzx ecx, word [esp + 8]
mov edi, dword [esp + 4]
mov eax, edi
test cx, cx
je 0x41fac1
lea edx, [esp + 0xa]
mov eax, edi
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 0x41fab0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41faf1
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 0x41fae0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x41fb23
add ecx, 2
mov esi, dword [esp]
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41fb10
jmp 0x41fb26
mov esi, dword [esp]
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0xa4]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x41fb61
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41fb50
mov word [eax], 0
mov dword [esp + 8], 0xd1d0ef04
xor eax, eax
mov ecx, eax
add cl, 0x1e
xor cl, byte [esp + eax + 8]
add cl, 0x10
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x41fb70
lea eax, [esp + 8]
push 0
push 1
push 0
push eax
push esi
push edi
push dword [esp + 0xb4]
call fcn.0041ff60
add esp, 0x1c
mov ebx, eax
jmp dword [0x441d44]