Function at 0x49e0c0
Capabilities:
Encode data using xor

Disassembly:
push rbx
test rcx, rcx
mov rbx, r8
mov r8, rcx
je 0x49e671
test rbx, rbx
je 0x49e671
cmp edx, 0x80
je 0x49e101
cmp edx, 0xc0
je 0x49e0f9
cmp edx, 0x100
je 0x49e0f9
mov eax, 0xfffffffe
pop rbx
ret
cmp edx, 0x80
jne 0x49e10d
mov dword [rbx + 0xf0], 0xa
jmp 0x49e126
mov eax, ntohs
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
cmp edx, 0xc0
cmove eax, ecx
mov dword [rbx + 0xf0], eax
mov eax, dword [r8]
lea r10, [rbx + 4]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
mov dword [rbx], ecx
mov ecx, dword [r8 + 4]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
mov dword [r10], eax
mov ecx, dword [r8 + 8]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
mov dword [rbx + 8], eax
mov ecx, dword [r8 + 0xc]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
cmp edx, 0x80
mov dword [rbx + 0xc], eax
jne 0x49e2da
mov r9d, eax
lea r11, [0x00400000]
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
mov r8d, dword [r11 + rcx*4 + 0x170e10]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x171210]
mov ecx, dword [rbx + 8]
and r8d, 0xff000000
and eax, 0xff0000
xor r8d, eax
mov rax, r9
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, r9b
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
mov eax, dword [r10]
xor r8d, dword [rbx]
xor eax, r8d
mov dword [rbx + 0x10], r8d
xor ecx, eax
mov dword [rbx + 0x14], eax
mov dword [rbx + 0x18], ecx
xor ecx, r9d
lea r9, [0x00572738]
mov dword [rbx + 0x1c], ecx
lea rbx, [0x00572714]
nop
nop
mov edx, dword [r10 + 0x18]
add r10, 0x10
add rbx, 4
mov rax, rdx
shr rax, 8
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x171210]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x170e10]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
xor r8d, dword [r10 - 4]
xor r8d, dword [rbx - 4]
mov dword [r10 + 0xc], r8d
mov eax, dword [r10]
xor eax, r8d
mov dword [r10 + 0x10], eax
mov ecx, dword [r10 + 4]
xor ecx, eax
mov dword [r10 + 0x14], ecx
xor ecx, dword [r10 + 8]
cmp rbx, r9
mov dword [r10 + 0x18], ecx
jne 0x49e240
xor eax, eax
pop rbx
ret
mov eax, dword [r8 + 0x10]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
mov dword [rbx + 0x10], ecx
mov ecx, dword [r8 + 0x14]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
cmp edx, 0xc0
mov dword [rbx + 0x14], eax
jne 0x49e473
mov edx, eax
lea r11, [0x00400000]
lea r9, [rbx + 0x28]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x170e10]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x171210]
mov ecx, dword [rbx + 8]
and r8d, 0xff000000
and eax, 0xff0000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
mov eax, dword [r10]
lea r10, [0x00572730]
xor r8d, dword [rbx]
xor eax, r8d
mov dword [rbx + 0x18], r8d
mov dword [rbx + 0x1c], eax
xor ecx, eax
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + 0x20], ecx
mov dword [rbx + 0x24], eax
lea rbx, [0x00572714]
nop
nop
nop
mov ecx, dword [r9 - 0x18]
mov eax, dword [r9 - 0x14]
add r9, 0x18
xor ecx, dword [r9 - 0x1c]
add rbx, 4
xor eax, ecx
mov dword [r9 - 0x18], ecx
mov dword [r9 - 0x14], eax
mov edx, dword [r9 - 0x14]
mov rax, rdx
shr rax, 8
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x171210]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x170e10]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
xor r8d, dword [r9 - 0x28]
xor r8d, dword [rbx - 4]
mov dword [r9 - 0x10], r8d
mov eax, dword [r9 - 0x24]
xor eax, r8d
mov dword [r9 - 0xc], eax
mov ecx, dword [r9 - 0x20]
xor ecx, eax
mov dword [r9 - 8], ecx
mov eax, dword [r9 - 0x1c]
xor eax, ecx
cmp rbx, r10
mov dword [r9 - 4], eax
jne 0x49e3c0
xor eax, eax
pop rbx
ret
mov eax, dword [r8 + 0x18]
mov ecx, eax
ror ecx, 8
and ecx, 0xff00ff00
rol eax, 8
and eax, 0xff00ff
or ecx, eax
mov dword [rbx + 0x18], ecx
mov ecx, dword [r8 + 0x1c]
mov eax, ecx
ror eax, 8
and eax, 0xff00ff00
rol ecx, 8
and ecx, 0xff00ff
or eax, ecx
cmp edx, 0x100
mov dword [rbx + 0x1c], eax
jne 0x49e66d
mov edx, eax
lea r11, [0x00400000]
lea r9, [rbx + 0x30]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x170e10]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x171210]
mov ecx, dword [rbx + 8]
and r8d, 0xff000000
and eax, 0xff0000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
mov eax, dword [r10]
lea r10, [0x0057272c]
xor r8d, dword [rbx]
xor eax, r8d
mov dword [rbx + 0x20], r8d
mov dword [rbx + 0x24], eax
xor ecx, eax
mov eax, dword [rbx + 0xc]
xor eax, ecx
mov dword [rbx + 0x28], ecx
mov dword [rbx + 0x2c], eax
lea rbx, [0x00572714]
mov edx, dword [r9 - 4]
add r9, 0x20
add rbx, 4
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x171210]
shr rax, 8
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x170610]
mov ecx, dword [r9 - 0x38]
and eax, 0xff00
xor r8d, eax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r11 + rax*4 + 0x170e10]
and eax, 0xff000000
xor r8d, eax
movzx eax, dl
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
mov eax, dword [r9 - 0x3c]
xor r8d, dword [r9 - 0x40]
xor eax, r8d
mov dword [r9 - 0x20], r8d
mov dword [r9 - 0x1c], eax
xor ecx, eax
mov eax, dword [r9 - 0x34]
xor eax, ecx
mov dword [r9 - 0x18], ecx
mov dword [r9 - 0x14], eax
mov edx, dword [r9 - 0x14]
mov rax, rdx
shr rax, 8
movzx ecx, al
mov rax, rdx
mov r8d, dword [r11 + rcx*4 + 0x171210]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x170e10]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x170a10]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x170610]
and eax, 0xff00
xor r8d, eax
xor r8d, dword [r9 - 0x30]
xor r8d, dword [rbx - 4]
mov dword [r9 - 0x10], r8d
mov eax, dword [r9 - 0x2c]
xor eax, r8d
mov dword [r9 - 0xc], eax
mov ecx, dword [r9 - 0x28]
xor ecx, eax
mov dword [r9 - 8], ecx
mov eax, dword [r9 - 0x24]
xor eax, ecx
cmp rbx, r10
mov dword [r9 - 4], eax
jne 0x49e550
xor eax, eax
pop rbx
ret
mov eax, 0xffffffff
pop rbx
ret