Function at 0x4d6b90
Capabilities:
Encode data using xor

Disassembly:
push rbx
test rcx, rcx
mov rbx, r8
mov r8, rcx
je 0x4d7141
test rbx, rbx
je 0x4d7141
cmp edx, 0x80
je 0x4d6bd1
cmp edx, 0xc0
je 0x4d6bc9
cmp edx, 0x100
je 0x4d6bc9
mov eax, 0xfffffffe
pop rbx
ret
cmp edx, 0x80
jne 0x4d6bdd
mov dword [rbx + 0xf0], 0xa
jmp 0x4d6bf6
mov eax, recv
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 0x4d6daa
mov r9d, eax
lea r11, [0x00400000]
mov rax, r9
shr rax, 0x10
movzx ecx, al
mov rax, r9
mov r8d, dword [r11 + rcx*4 + 0x17d460]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x17d860]
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 + 0x17d060]
xor r8d, eax
movzx eax, r9b
mov eax, dword [r11 + rax*4 + 0x17cc60]
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, [0x0057ed88]
mov dword [rbx + 0x1c], ecx
lea rbx, [0x0057ed64]
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 + 0x17d860]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x17d460]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x17d060]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x17cc60]
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 0x4d6d10
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 0x4d6f43
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 + 0x17d460]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x17d860]
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 + 0x17d060]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x17cc60]
and eax, 0xff00
xor r8d, eax
mov eax, dword [r10]
lea r10, [0x0057ed80]
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, [0x0057ed64]
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 + 0x17d860]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x17d460]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x17d060]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x17cc60]
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 0x4d6e90
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 0x4d713d
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 + 0x17d460]
shr rax, 8
movzx ecx, al
btc r8d, 0x18
mov eax, dword [r11 + rcx*4 + 0x17d860]
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 + 0x17d060]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x17cc60]
and eax, 0xff00
xor r8d, eax
mov eax, dword [r10]
lea r10, [0x0057ed7c]
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, [0x0057ed64]
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 + 0x17d860]
shr rax, 8
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x17cc60]
mov ecx, dword [r9 - 0x38]
and eax, 0xff00
xor r8d, eax
mov rax, rdx
shr rax, 0x18
mov eax, dword [r11 + rax*4 + 0x17d460]
and eax, 0xff000000
xor r8d, eax
movzx eax, dl
movzx eax, byte [r11 + rax*4 + 0x17d060]
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 + 0x17d860]
shr rax, 0x10
movzx ecx, al
and r8d, 0xff0000
mov eax, dword [r11 + rcx*4 + 0x17d460]
and eax, 0xff000000
xor r8d, eax
mov rax, rdx
shr rax, 0x18
movzx eax, byte [r11 + rax*4 + 0x17d060]
xor r8d, eax
movzx eax, dl
mov eax, dword [r11 + rax*4 + 0x17cc60]
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 0x4d7020
xor eax, eax
pop rbx
ret
mov eax, 0xffffffff
pop rbx
ret