Function at 0x41f1f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x110
mov dword [esp + 8], 0x3380356d
mov dword [esp + 0xc], 0x2fad31a3
mov dword [esp + 0x10], 0x2bb82db1
mov dword [esp + 0x14], 0x27b82995
mov dword [esp + 0x18], 0x239825b6
mov dword [esp + 0x1c], 0x1fac21bd
mov dword [esp + 0x20], 0x1b471d81
lea eax, [esp + 0x24]
mov word [esp + 0x24], 0x191a
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x23
ja 0x41f2c7
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + edx]
add ecx, 0x89
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x3acaf189
mov dword [esp + 0xc0], esi
mov ecx, dword [esp + 0xc0]
add cl, 0x41
mov edx, dword [esp + 0x8c]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x24
jb 0x41f270
lea esi, [esp + 0x8c]
lea edx, [esp + 8]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xa8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x44862c]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x41f313
mov eax, 0xffffffff
jmp 0x41f316
lea eax, [ebx + ebx]
push eax
call fcn.00409230
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push 0xe
push esi
push 0
call dword [0x44862c]
mov dword [esp + 8], 0x7ba8798a
mov dword [esp + 0xc], 0x7f997d99
mov dword [esp + 0x10], 0x73937183
mov dword [esp + 0x14], 0x7793758b
mov dword [esp + 0x18], 0xb080983
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov word [esp + 0x24], 0
mov dword [esp + 0x60], 0
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1d
ja 0x41f3d4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 8]
lea esi, [ecx + 0x2f]
add ecx, edx
and esi, edx
add esi, esi
sub ecx, esi
add ecx, 0x22080d2f
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0xb7
mov edx, dword [esp + 0x60]
mov byte [esp + edx + 8], cl
inc dword [esp + 0x60]
mov ecx, dword [esp + 0x60]
cmp ecx, 0x1e
jb 0x41f390
lea edi, [esp + 0xac]
lea edx, [esp + 8]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc0]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, 1
sub ecx, eax
and ecx, 1
and eax, 0xfffffffe
sub eax, ecx
mov ecx, eax
add ecx, 0xa
jns 0x41f419
mov eax, 0xffffffff
jmp 0x41f41e
add eax, eax
add eax, 0x14
push eax
call fcn.00409230
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x41f451
lea edx, [ebx + 2]
mov eax, esi
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 0x41f440
mov word [eax], 0
movzx ecx, word [esp + 0xac]
test cx, cx
je 0x41f481
lea edx, [esp + 0xae]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f470
mov word [eax], 0
lea eax, [esp + 0x88]
push eax
push esi
call fcn.0043c9e0
add esp, 8
not eax
shr eax, 0x1f
mov dword [esp + 0x80], ebx
jmp dword [eax*4 + 0x443f04]