Function at 0x41bf70
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 ebx, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41bf90
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41bfb0
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x4c], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
jns 0x41bfde
mov eax, 0xffffffff
jmp 0x41bfe5
lea eax, [ecx*2 + 0x36]
push eax
call fcn.00408000
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xe], 0x632e613c
mov dword [esp + 0x12], 0x6705650b
mov dword [esp + 0x16], 0x6b066909
mov dword [esp + 0x1a], 0x6f2b6d4c
mov dword [esp + 0x1e], 0x73067108
mov dword [esp + 0x22], 0x77187511
mov dword [esp + 0x26], 0x7b13790b
mov dword [esp + 0x2a], 0x7f107d13
mov dword [esp + 0x2e], 0x83d181a0
mov dword [esp + 0x32], 0x87f285e1
mov dword [esp + 0x36], 0x8be389fc
mov dword [esp + 0x3a], 0x8fe98de2
mov dword [esp + 0x3e], 0x93ce91e3
mov word [esp + 0x42], 0x9594
xor esi, esi
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0xe]
mov eax, esi
and eax, 0x40
mov ebp, ecx
xor ebp, 0x6bdd7160
add ebp, eax
xor ebp, edx
mov eax, ebp
and eax, 2
mov edx, ebp
or edx, 2
imul edx, eax
sub edx, ebp
and ebp, 0xfd
xor eax, 2
imul eax, ebp
add edx, eax
mov byte [esp + ecx + 0xe], dl
inc ecx
add esi, 2
cmp ecx, 0x36
jne 0x41c070
movzx ecx, word [ebx]
mov eax, dword [esp]
test cx, cx
je 0x41c0e1
add ebx, 2
mov eax, dword [esp]
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 0x41c0d0
mov word [eax], 0
movzx ecx, word [esp + 0xe]
test cx, cx
je 0x41c111
lea edx, [esp + 0x10]
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 0x41c100
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41c141
add edi, 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 [edi]
add edi, 2
test cx, cx
jne 0x41c130
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 0x41c160
mov edx, eax
and edx, 2
mov ecx, dword [esp + 0x6c]
mov ebx, dword [ecx]
mov ecx, 0xfffffffe
mov edi, dword [esp + 0x70]
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41c180
sar eax, 1
mov edi, dword [edi]
mov ebp, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ebp + 2], 0
lea ebp, [ebp + 2]
jne 0x41c1a0
mov dword [esp + 4], edi
xor eax, 1
add edx, eax
sar ecx, 1
sar ebp, 1
add ecx, edx
lea eax, [ecx + ebp]
add eax, 0x12
test eax, eax
jns 0x41c1cb
mov eax, 0xffffffff
jmp 0x41c1d4
add ecx, ebp
lea eax, [ecx*2 + 0x24]
push eax
call fcn.00408000
add esp, 4
mov ebp, eax
movzx eax, word [esi]
mov dword [esp + 8], ebp
test ax, ax
je 0x41c212
add esi, 2
mov ebp, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], ax
add ebp, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41c200
mov word [ebp], 0
mov word [esp + 0xe], 0x4888
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xe]
mov esi, 0xfad86cd0
sub esi, eax
or esi, edx
mov edi, 0xd0
sub edi, eax
and edi, edx
not esi
or esi, edi
mov edi, esi
mov edx, esi
xor edx, 0x87
add edx, esi
and esi, 0x87
and edi, 0x78
sub edx, edi
add edx, esi
inc dl
mov byte [esp + eax + 0xe], dl
mov eax, 1
xor edx, edx
test cl, 1
mov ecx, 0
jne 0x41c230
movzx eax, word [esp + 0xe]
mov word [ebp], ax
mov dword [esp + 0xe], 0xd99dd7b9
mov dword [esp + 0x12], 0xdd48db42
mov dword [esp + 0x16], 0xc16edf7b
mov dword [esp + 0x1a], 0xc56dc351
mov dword [esp + 0x1e], 0xc966c769
mov dword [esp + 0x22], 0xcda3cb59
mov word [esp + 0x26], 0xcfce
nop
nop
nop
nop
nop
mov eax, edx
add al, 0xe6
xor al, byte [esp + edx + 0xe]
add al, 0xd0
mov byte [esp + edx + 0xe], al
inc edx
cmp edx, 0x1a
jne 0x41c2c0
add ebp, 2
mov edi, dword [esp + 0x64]
jmp dword [0x441bb8]