Function at 0x140041380
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x140221880]
xor rax, rsp
mov qword [rbp + 0xd0], rax
xor esi, esi
mov rdi, rcx
cmp qword [0x140328dc8], rsi
jne 0x1400413e7
mov ecx, 0x26b0
call fcn.1401ab860
test rax, rax
je 0x1400413e7
mov qword [rax], rsi
mov qword [rax + 8], 0x19c
mov qword [0x140328dc8], rax
xor edx, edx
lea rcx, [rbp - 0x50]
mov r8d, 0x118
call fcn.1401d1c40
mov r8d, Ordinal_45
lea rdx, str.C:UsersPublicLoader.log
lea rcx, [rbp - 0x50]
call fcn.1400b5610
mov rbx, 0xffffffffffffffff
inc rbx
cmp byte [rdi + rbx], sil
jne 0x140041415
lea r15, [rbx + 2]
mov rcx, r15
mov qword [rbp - 0x78], r15
call fcn.140190dd0
mov r8, rbx
mov qword [rsp + 0x48], rax
mov rdx, rdi
mov rcx, rax
mov r12, rax
call fcn.1401d15a0
mov word [r12 + r15 - 2], 0xa
lea r14, [r15 - 1]
mov rcx, qword [0x140328b80]
mov r9d, 2
mov qword [rsp + 0x38], rcx
mov r8, rsi
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x50], r14
mov qword [rbp - 0x80], rsi
movzx ecx, byte [rsp + r8 + 0x38]
lea eax, [r9 - 1]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x40]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
movzx eax, byte [rsp + r8 + 0x41]
mov byte [rbp + r8 - 0x80], cl
movzx ecx, byte [rsp + r8 + 0x39]
imul ecx, r9d
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 1]
mov byte [rbp + r8 - 0x7f], cl
movzx ecx, byte [rsp + r8 + 0x3a]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x42]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 2]
mov byte [rbp + r8 - 0x7e], cl
movzx ecx, byte [rsp + r8 + 0x3b]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x43]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 3]
mov byte [rbp + r8 - 0x7d], cl
movzx ecx, byte [rsp + r8 + 0x3c]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x44]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 4]
mov byte [rbp + r8 - 0x7c], cl
movzx ecx, byte [rsp + r8 + 0x3d]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x45]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
lea r8, [r8 + 8]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 5]
mov byte [rsp + r8 + 0x7d], cl
movzx ecx, byte [rsp + r8 + 0x36]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x3e]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 + 6]
mov byte [rsp + r8 + 0x7e], cl
add r9d, 8
movzx ecx, byte [rsp + r8 + 0x37]
imul ecx, eax
movzx eax, byte [rsp + r8 + 0x3f]
xor ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xff
sub ecx, eax
lea eax, [r9 - 2]
mov byte [rsp + r8 + 0x7f], cl
cmp eax, 8
jb 0x140041473
mov ebx, esi
test r14, r14
je 0x140041869
xor r15d, r15d
movabs rax, 0x8080808080808081
mul r14
mov r9, r12
mov ecx, r15d
mov r12, qword [rbp - 0x80]
mov rdi, rdx
shr rdi, 7
add dil, r14b
nop dword [rax]
and ecx, 7
lea r11, [rbp - 0x7f]
movzx r10d, dil
mov esi, r15d
movabs r14, 0x8080808080808081
movzx ecx, byte [rbp + rcx - 0x80]
xor r10b, cl
mov r13d, ecx
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [r11 - 1]
movzx eax, cl
add r8, rax
mov rax, r14
xor r8, r12
imul r8
add rdx, r8
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub r8, rax
movzx eax, byte [r11]
movzx ecx, r8b
add rcx, rax
mov rax, r14
xor rcx, r12
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub rcx, rax
movzx eax, byte [r11 + 1]
movzx r8d, cl
add r8, rax
mov rax, r14
xor r8, r12
imul r8
add rdx, r8
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub r8, rax
movzx eax, byte [r11 + 2]
movzx ecx, r8b
add rcx, rax
mov rax, r14
xor rcx, r12
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub rcx, rax
movzx eax, byte [r11 + 3]
movzx r8d, cl
add r8, rax
mov rax, r14
xor r8, r12
imul r8
add rdx, r8
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub r8, rax
movzx eax, byte [r11 + 4]
movzx ecx, r8b
add rcx, rax
mov rax, r14
xor rcx, r12
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub rcx, rax
movzx eax, byte [r11 + 5]
movzx r8d, cl
add r8, rax
xor r8, r12
lea r11, [r11 + 8]
mov rax, r14
add esi, 8
imul r8
add rdx, r8
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub r8, rax
movzx eax, byte [r11 - 2]
movzx ecx, r8b
add rcx, rax
mov rax, r14
xor rcx, r12
imul rcx
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xff
sub rcx, rax
cmp esi, 8
jb 0x140041690
mov r14, qword [rsp + 0x50]
inc ebx
movzx eax, cl
movzx r8d, r10b
add r8d, r13d
add r8d, eax
mov eax, 0x80808081
mul r8d
shr edx, 7
imul eax, edx, 0xff
sub r8d, eax
add r8b, byte [r9]
xor r8b, cl
movsxd rcx, ebx
mov byte [r9], r8b
inc r9
cmp rcx, r14
jb 0x140041660
mov r15, qword [rbp - 0x78]
xor esi, esi
mov r12, qword [rsp + 0x48]
lea rdx, [0x1401fe8dc]
lea rcx, [rbp - 0x40]
call fcn.1400bf2d0
mov rdx, r14
mov rcx, rax
call fcn.1400b7d50
mov rcx, rax
lea rdx, [0x1401fe8dc]
call fcn.1400bf2d0
mov ecx, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x68], rsi
xorps xmm0, xmm0
mov qword [rbp - 0x60], rcx
lea rdx, [r15 + r15]
mov r13, rax
mov r8, rsi
movups xmmword [rbp - 0x78], xmm0
mov byte [rbp - 0x78], 0
cmp rdx, rcx
jbe 0x1400418ce
lea rcx, [rbp - 0x78]
call fcn.1400fe470
mov rcx, qword [rbp - 0x60]
mov r8, rsi
mov qword [rbp - 0x68], rsi
mov r14d, esi
test r15, r15
je 0x14004199f
movzx ebx, byte [rsp + 0x30]
mov rsi, r12
movzx edi, byte [rsp + 0x30]
lea r12, str.0123456789abcdef
nop
movzx eax, byte [rsi]
shr rax, 4
movzx r9d, byte [rax + r12]
cmp r8, rcx
jae 0x140041922
lea rax, [r8 + 1]
cmp rcx, 0xf
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x78]
cmova rax, qword [rbp - 0x78]
mov byte [rax + r8], r9b
mov byte [rax + r8 + 1], 0
jmp 0x140041934
movzx r8d, bl
lea rcx, [rbp - 0x78]
mov edx, 1
call fcn.1400fe5c0
movzx eax, byte [rsi]
mov rcx, qword [rbp - 0x68]
and eax, 0xf
mov rdx, qword [rbp - 0x60]
movzx r9d, byte [rax + r12]
cmp rcx, rdx
jae 0x14004196c
lea rax, [rcx + 1]
cmp rdx, 0xf
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x78]
cmova rax, qword [rbp - 0x78]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x14004197e
movzx r8d, dil
lea rcx, [rbp - 0x78]
mov edx, 1
call fcn.1400fe5c0
mov rcx, qword [rbp - 0x60]
inc r14d
mov r8, qword [rbp - 0x68]
inc rsi
movsxd rax, r14d
cmp rax, r15
jb 0x1400418f0
mov r12, qword [rsp + 0x48]
xor esi, esi
cmp rcx, 0xf
lea rdx, [rbp - 0x78]
mov rcx, r13
cmova rdx, qword [rbp - 0x78]
call fcn.1401043d0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x1400419ef
mov rcx, qword [rbp - 0x78]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400419ea
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140041bbf
call fcn.140190a2c
lea rcx, [rbp - 0x38]
call fcn.1400baff0
test rax, rax
jne 0x140041a2b
mov rax, qword [rbp - 0x50]
movsxd rcx, dword [rax + 4]
mov eax, 4
cmp qword [rbp + rcx - 8], 0
cmovne eax, esi
or eax, dword [rbp + rcx - 0x40]
and eax, 0x15
or eax, 2
mov dword [rbp + rcx - 0x40], eax
and eax, dword [rbp + rcx - 0x3c]
jne 0x140041b68
mov rcx, r12
call fcn.140190a2c
mov r14, qword [0x140328dc8]
xor edi, edi
mov rax, qword [r14 + 8]
mov rsi, qword [r14]
lea rcx, [rax + rax*2]
lea r15, [rcx*8 + 0x10]
test rsi, rsi
jle 0x140041b0d
lea rbx, [r14 + 0x10]
nop dword [rax]
movups xmm1, xmmword [rbx]
movsd xmm0, qword [rbx + 0x10]
movq rax, xmm1
movsd qword [rbp - 0x68], xmm0
test rax, rax
je 0x140041afb
psrldq xmm1, 8
movq r8, xmm1
test r8, r8
je 0x140041afb
movzx ecx, byte [rbp - 0x68]
test cl, cl
jne 0x140041a9e
xor edx, edx
mov rcx, rax
call fcn.1401d1c40
jmp 0x140041afb
cmp cl, 1
jne 0x140041afb
mov rdx, rax
lea rcx, [rbp - 0x78]
call fcn.140040c90
cmp qword [rbp - 0x60], 0xf
lea rax, [rbp - 0x78]
cmova rax, qword [rbp - 0x78]
mov byte [rax], 0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x140041afb
mov rcx, qword [rbp - 0x78]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140041af6
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140041bb9
call fcn.140190a2c
inc edi
add rbx, 0x18
movsxd rax, edi
cmp rax, rsi
jl 0x140041a60
mov r8, r15
xor edx, edx
mov rcx, r14
call fcn.1401d1c40
mov rcx, r14
call fcn.1401a6090
lea rcx, [rbp - 0x50]
mov qword [0x140328dc8], 0
call fcn.140041270
mov al, 1
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140190770
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
test al, 4
je 0x140041b75
lea rbx, str.ios_base::badbit_set
jmp 0x140041b89
test al, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rbp - 0x78]
call fcn.14003ba70
mov r8, rax
lea rcx, [rsp + 0x58]
mov rdx, rbx
call fcn.14003c0e0
lea rdx, [0x14021e110]
lea rcx, [rsp + 0x58]
call fcn.140192fb4
int3
call fcn.1401ac538
int3
call fcn.1401ac538
int3