Function at 0x41bba0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
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 0x41bbc0
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 0x41bbe0
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 0x41bc0e
mov eax, 0xffffffff
jmp 0x41bc15
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00407fc0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xe], 0xb43cb423
mov dword [esp + 0x12], 0xb421b41e
mov dword [esp + 0x16], 0xb418b422
mov dword [esp + 0x1a], 0xb7c3b7e5
mov dword [esp + 0x1e], 0xb46cb40f
mov dword [esp + 0x22], 0xb464b45c
mov dword [esp + 0x26], 0xb465b468
mov dword [esp + 0x2a], 0xb460b462
mov dword [esp + 0x2e], 0xb443b79f
mov dword [esp + 0x32], 0xb466b454
mov dword [esp + 0x36], 0xb46db467
mov dword [esp + 0x3a], 0xb451b46b
mov dword [esp + 0x3e], 0xb444b464
mov word [esp + 0x42], 0xb7e9
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + ecx*2 + 0xe]
mov esi, eax
and esi, 0x2e
mov edi, ecx
xor edi, 0xe7748637
add edi, esi
lea esi, [edx + edx]
not esi
add esi, edx
xor esi, edx
and esi, edi
xor esi, edx
add esi, 0xffffce48
mov word [esp + ecx*2 + 0xe], si
inc ecx
add eax, 2
cmp ecx, 0x1b
jne 0x41bca0
movzx ecx, word [ebp]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x41bd02
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 0x41bcf0
mov word [eax], 0
movzx ecx, word [esp + 0xe]
test cx, cx
je 0x41bd31
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 0x41bd20
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41bd61
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 0x41bd50
mov word [eax], 0
mov eax, dword [esp + 0x68]
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 0x41bd80
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41bda0
mov edx, dword [esp + 0x70]
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 0x41bdc0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41bde4
mov eax, 0xffffffff
jmp 0x41bded
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp + 4], edi
push eax
call fcn.00407fc0
add esp, 4
mov edi, eax
movzx eax, word [esi]
mov dword [esp + 8], edi
test ax, ax
je 0x41be21
add esi, 2
mov edi, dword [esp + 8]
nop
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41be10
mov word [edi], 0x2f
mov dword [esp + 0xe], 0xb73eb7d5
mov dword [esp + 0x12], 0xb769b764
mov dword [esp + 0x16], 0xb711b71b
mov dword [esp + 0x1a], 0xb708b773
mov dword [esp + 0x1e], 0xb70db70d
mov dword [esp + 0x22], 0xb7cab777
mov word [esp + 0x26], 0xb7e6
xor eax, eax
nop
movzx esi, word [esp + eax*2 + 0xe]
mov ecx, eax
not ecx
or ecx, 0x80f2a2aa
mov edx, eax
and edx, 5
mov ebx, eax
xor ebx, 0x80f2a2aa
add ebx, ecx
sub ebx, edx
lea ecx, [eax + eax]
lea edx, [ebx + eax*2]
inc edx
xor edx, esi
mov esi, 0x1596
sub esi, edx
add edx, 0x1053ea69
and esi, 0xffba
mov ebx, edx
and ebx, 0x44
and edx, 1
or ebx, 1
sub ebx, esi
add ebx, edx
mov word [esp + eax*2 + 0xe], bx
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0xd
jb 0x41be60
add edi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41bee4
add ebp, 2
mov edx, dword [esp + 4]
mov word [edi], ax
add edi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41bed0
jmp 0x41bee8
mov edx, dword [esp + 4]
mov word [edi], 0
movzx eax, word [esp + 0xe]
test ax, ax
je 0x41bf11
lea ecx, [esp + 0x10]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41bf00
mov word [edi], 0
movzx eax, word [edx]
test ax, ax
je 0x41bf41
add edx, 2
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 [edx]
add edx, 2
test ax, ax
jne 0x41bf30
mov word [edi], 0
mov dword [esp + 0xe], 0x8d928dab
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 + 0xe]
lea esi, [eax + 0x30bf3759]
and esi, edx
mov ebp, esi
and ebp, 0x3759
mov ebx, esi
or ebx, 0xfffffffd
inc ebx
imul ebx, ebp
mov ebp, esi
and ebp, 2
or esi, 2
imul esi, ebp
sub ebx, esi
add edx, eax
add edx, 0x30bf3759
add edx, ebx
mov esi, edx
not esi
and esi, 0x6485
and edx, 0x9b7a
sub edx, esi
add edx, 0xffffa9bd
mov word [esp + eax*2 + 0xe], dx
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x41bf60
lea ebx, [esp + 0xe]
push 0
push 0
push 0xc00000
push ebx
mov esi, dword [esp + 0x10]
push esi
push dword [esp + 0x1c]
push dword [esp + 0x7c]
call fcn.00420080
add esp, 0x1c
mov byte [esp + 4], al
jmp dword [0x442784]