Function at 0x41b9c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
mov ebp, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41b9e0
mov ebx, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ba00
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x48], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ecx
jns 0x41ba2e
mov eax, 0xffffffff
jmp 0x41ba35
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00408130
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xe], 0xa325a334
mov dword [esp + 0x12], 0xa308a305
mov dword [esp + 0x16], 0xa301a30d
mov dword [esp + 0x1a], 0xa32aa3ce
mov dword [esp + 0x1e], 0xa305a308
mov dword [esp + 0x22], 0xa31da317
mov dword [esp + 0x26], 0xa31ca307
mov dword [esp + 0x2a], 0xa319a319
mov dword [esp + 0x2e], 0xa32aa3d8
mov dword [esp + 0x32], 0xa30fa31f
mov dword [esp + 0x36], 0xa314a308
mov dword [esp + 0x3a], 0xa318a310
mov dword [esp + 0x3e], 0xa35da373
mov word [esp + 0x42], 0xa382
lea eax, [esp + 0xe]
mov ecx, 0x47be16a8
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
lea esi, [ecx + edx]
add edx, ecx
add edx, 0xc20f4abf
mov edi, edx
and edi, 1
and edx, 0xfffe
and esi, 1
or esi, edx
lea edx, [esi + edi*2]
mov word [eax], dx
add eax, 2
inc ecx
cmp ecx, 0x47be16c3
jne 0x41bac0
movzx ecx, word [ebp]
mov eax, dword [esp]
test cx, cx
je 0x41bb22
add ebp, 2
mov eax, dword [esp]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41bb10
mov word [eax], 0
movzx ecx, word [esp + 0xe]
test cx, cx
je 0x41bb51
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 0x41bb40
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41bb81
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 0x41bb70
mov word [eax], 0
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41bba0
mov ecx, eax
sar ecx, 1
xor ecx, 1
mov edx, dword [esp + 0x74]
mov ebx, dword [edx]
mov edx, 0xfffffffe
mov edi, dword [esp + 0x78]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41bbd0
mov dword [esp + 0x50], ebx
and eax, 2
mov edi, dword [edi]
mov ebx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ebx + 2], 0
lea ebx, [ebx + 2]
jne 0x41bbf0
add ecx, eax
sar edx, 1
sar ebx, 1
add edx, ecx
lea eax, [ebx + edx]
add eax, 0x12
test eax, eax
jns 0x41bc14
mov eax, 0xffffffff
jmp 0x41bc1d
add edx, ebx
lea eax, [edx*2 + 0x24]
mov dword [esp + 0x54], edi
push eax
call fcn.00408130
add esp, 4
movzx ecx, word [esi]
mov edx, eax
test cx, cx
je 0x41bc51
add esi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41bc40
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov word [edx], 0x2f
mov dword [esp + 0xe], 0x8250830
mov dword [esp + 0x12], 0x9f609e9
mov dword [esp + 0x16], 0x9fa09c6
mov dword [esp + 0x1a], 0x9ff09f6
mov dword [esp + 0x1e], 0x9c609f8
mov dword [esp + 0x22], 0x80509ca
mov word [esp + 0x26], 0x85b
mov edi, 0x2d95fed7
mov ebx, 0xd26a0127
mov edx, 0x526a0128
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, word [esp + edi*2 - 0x5b2bfda0]
mov eax, edi
and eax, ebp
add eax, eax
mov esi, ebp
sub esi, eax
add esi, edi
or esi, edx
mov ecx, ebx
sub ecx, esi
sub ecx, esi
lea eax, [edi + esi*2]
add eax, 0xd26b0001
and eax, ebp
not ebp
and ebp, ecx
sub eax, ebp
add eax, 0x6f4f9585
mov ecx, eax
and ecx, 0x947
xor eax, 0x947
lea eax, [eax + ecx*2]
add eax, 0x6a7c
mov word [esp + edi*2 - 0x5b2bfda0], ax
inc edi
dec ebx
dec edx
cmp ebx, 0xd26a011a
jne 0x41bcb0
mov edi, dword [esp + 8]
add edi, 2
mov ecx, dword [esp + 0x50]
movzx eax, word [ecx]
test ax, ax
je 0x41bd43
add ecx, 2
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bd30
jmp 0x41bd4e
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp]
mov word [edi], 0
movzx eax, word [esp + 0xe]
test ax, ax
je 0x41bd81
lea ecx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bd70
mov word [edi], 0
mov ecx, dword [esp + 0x54]
movzx eax, word [ecx]
test ax, ax
je 0x41bdb1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bda0
mov word [edi], 0
mov dword [esp + 0xe], 0x2a
lea eax, [esp + 0xe]
push 0
push 0
push 0xc00000
push eax
push ebp
push esi
push dword [esp + 0x84]
call fcn.0041fa70
add esp, 0x1c
mov byte [esp], al
jmp dword [0x4408a4]