Function at 0x140045570
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1250
call fcn.14006ee60
sub rsp, rax
mov rax, qword [0x140116008]
xor rax, rsp
mov qword [rsp + 0x1240], rax
mov eax, dword [0x14095e3e8]
xor r13d, r13d
mov r12, rcx
test eax, eax
je 0x140045861
mov ebp, r13d
jle 0x140045861
lea r14, [0x14095e3f0]
nop dword [rax + rax]
mov rdx, qword [r14]
test rdx, rdx
jne 0x140045601
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x143
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x143
lea rcx, str.ymemory
call fcn.14000a9a0
jmp 0x14004566e
mov ecx, r13d
mov rax, rdx
cmp byte [rdx], cl
je 0x140045622
nop dword [rax + rax]
cmp ecx, 0x200
jae 0x140045622
inc rax
inc ecx
cmp byte [rax], r13b
jne 0x140045610
lea eax, [rcx + 1]
cmp eax, 0x200
jbe 0x14004565a
lea r9, str.ymemory
mov dword [rsp + 0x20], 0x14c
lea r8, str.YPANIC:_s:_d_n
mov edx, 0x14c
lea rcx, str.ymemory
call fcn.14000a9a0
mov byte [rsp + 0x40], r13b
jmp 0x14004566e
mov ebx, ecx
mov r8d, ecx
lea rcx, [rsp + 0x40]
call fcn.140050fe0
mov byte [rsp + rbx + 0x40], r13b
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [rcx + rax], r13b
jne 0x140045680
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
add rdi, rax
nop dword [rax + rax]
inc rcx
cmp byte [r12 + rcx], r13b
jne 0x1400456a0
inc rax
add rax, rcx
cmp rax, 0x200
ja 0x1400457cf
mov rsi, r12
nop
movzx eax, byte [rsi]
cmp al, 0x2f
je 0x1400456cb
cmp al, 0x5c
jne 0x1400456d0
inc rsi
jmp 0x1400456c0
lea rax, [rsp + 0x40]
mov rdx, rsi
cmp rdi, rax
jbe 0x1400456fd
nop dword [rax]
movzx eax, byte [rdi - 1]
lea rcx, [rdi - 1]
cmp al, 0x2f
je 0x1400456f0
cmp al, 0x5c
jne 0x1400456fd
lea rax, [rsp + 0x40]
mov rdi, rcx
cmp rcx, rax
ja 0x1400456e0
mov byte [rdi], r13b
movzx eax, byte [rsi]
test al, al
je 0x1400457b6
nop dword [rax + rax]
cmp al, 0x2f
je 0x140045720
cmp al, 0x5c
je 0x140045720
inc rsi
jmp 0x1400457ab
mov rax, rsi
sub rax, rdx
cmp rax, 1
jne 0x140045741
cmp byte [rdx], 0x2e
je 0x1400457a5
lea rax, [rsp + 0x40]
cmp rdi, rax
mov eax, esi
jne 0x140045789
sub eax, edx
jmp 0x140045791
cmp rax, 2
jne 0x140045731
cmp byte [rdx], 0x2e
jne 0x140045731
cmp byte [rdx + 1], 0x2e
jne 0x140045731
lea rcx, [rsp + 0x40]
mov rax, rdi
cmp rdi, rcx
jbe 0x140045731
nop
movzx ecx, byte [rax]
cmp cl, 0x2f
je 0x14004577c
cmp cl, 0x5c
je 0x14004577c
dec rax
lea rcx, [rsp + 0x40]
cmp rax, rcx
ja 0x140045760
jmp 0x140045731
cmp rax, rdi
je 0x140045731
mov rdi, rax
mov byte [rax], r13b
jmp 0x1400457a5
sub eax, edx
mov byte [rdi], 0x5c
inc rdi
movsxd rbx, eax
mov rcx, rdi
mov r8, rbx
call fcn.140050fe0
add rdi, rbx
mov byte [rdi], r13b
inc rsi
mov rdx, rsi
movzx eax, byte [rsi]
test al, al
jne 0x140045710
sub esi, edx
mov byte [rdi], 0x5c
movsxd rbx, esi
lea rcx, [rdi + 1]
mov r8, rbx
call fcn.140050fe0
mov byte [rbx + rdi + 1], r13b
lea rdx, str.bySerial
lea rcx, [rsp + 0x40]
call fcn.14004fbec
test rax, rax
je 0x140045831
lea rdx, [rax + 0x11]
movzx eax, byte [rax + 0x11]
mov r8, rdx
test al, al
je 0x14004582e
movzx ecx, al
movzx eax, cl
cmp cl, 0x2f
je 0x140045813
cmp cl, 0x5c
je 0x140045813
movzx eax, byte [r8 + 1]
inc r8
movzx ecx, al
test al, al
jne 0x1400457f7
test al, al
je 0x14004582e
sub r8, rdx
nop word [rax + rax]
mov byte [rdx], al
inc rdx
movzx eax, byte [r8 + rdx]
test al, al
jne 0x140045820
mov byte [rdx], r13b
lea r8, [0x14010db4c]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.140059800
test eax, eax
je 0x1400458df
inc ebp
add r14, 8
cmp ebp, dword [0x14095e3e8]
jl 0x1400455d0
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.140030cd0
mov rcx, qword [0x1401591c8]
movzx ebp, al
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp bpl, 0xff
je 0x140045924
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, r13d
lea rdi, [0x140000000]
nop word [rax + rax]
mov ecx, ebx
imul rax, rcx, 0x58
cmp dword [rax + rdi + 0x9632c0], r13d
je 0x140045a57
inc ebx
cmp ebx, 0x14
jb 0x1400458b0
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 0xff
jmp 0x140045bc1
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, r13d
lea rdi, [0x140000000]
nop word [rax + rax]
mov ecx, esi
imul rax, rcx, 0x58
cmp dword [rax + rdi + 0x9632c0], r13d
je 0x14004592b
inc esi
cmp esi, 0x14
jb 0x140045900
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 0xff
jmp 0x140045bc1
imul r15, rcx, 0x58
mov rcx, qword [rsp + 0x30]
xor edx, edx
lea r8d, [rdx + 2]
mov dword [r15 + rdi + 0x9632c0], 1
call fcn.14005b3e4
mov rcx, qword [rsp + 0x30]
call fcn.14005b1cc
mov rcx, qword [rsp + 0x30]
xor r8d, r8d
xor edx, edx
mov dword [r15 + rdi + 0x9632d0], eax
call fcn.14005b3e4
mov ebp, dword [r15 + rdi + 0x9632d0]
mov ebx, 0xffffffff
test ebp, ebp
je 0x1400459ea
nop dword [rax]
mov r9, qword [rsp + 0x30]
lea rcx, [rsp + 0x240]
mov r8d, 0x1000
mov edx, 1
cmp ebp, r8d
cmovb r8d, ebp
call fcn.14005b6c4
mov r10, rax
cmp r13w, ax
jae 0x1400459e5
lea r8, [rsp + 0x240]
movzx r9d, r10w
nop dword [rax]
movzx ecx, byte [r8]
lea r8, [r8 + 1]
movzx edx, bx
mov eax, ebx
xor rdx, rcx
shr eax, 8
movzx ecx, dl
mov ebx, dword [rdi + rcx*4 + 0x158c40]
xor ebx, eax
sub r9, 1
jne 0x1400459c0
sub ebp, r10d
jne 0x140045980
mov rcx, qword [rsp + 0x30]
not ebx
xor r8d, r8d
mov dword [r15 + rdi + 0x9632d4], ebx
xor edx, edx
call fcn.14005b3e4
mov rax, qword [rsp + 0x30]
lea rcx, [rdi + 0x9632d8]
mov qword [r15 + rdi + 0x9632c8], rax
add rcx, r15
mov byte [r15 + rdi + 0x9632c4], 0xff
movzx eax, byte [r12]
test al, al
je 0x140045a3e
sub r12, rcx
nop
mov byte [rcx], al
inc rcx
movzx eax, byte [r12 + rcx]
test al, al
jne 0x140045a30
mov byte [rcx], r13b
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, sil
jmp 0x140045bc1
imul r15, rcx, 0x58
mov r14d, 2
movzx ecx, bpl
mov dword [r15 + rdi + 0x9632c0], r14d
call fcn.140031310
mov dword [r15 + rdi + 0x9632d0], eax
cmp bpl, 0x14
jbe 0x140045a88
mov eax, r13d
jmp 0x140045b6f
movzx eax, bpl
add rax, rax
cmp dword [rdi + rax*8 + 0x159060], r13d
jne 0x140045aa1
mov eax, r13d
jmp 0x140045b6f
movzx esi, word [rdi + rax*8 + 0x15906c]
cmp si, 0xffff
jge 0x140045abd
mov eax, dword [rdi + rax*8 + 0x159068]
not eax
jmp 0x140045b6f
test si, si
js 0x140045b69
cmp si, word [0x140159048]
je 0x140045b69
movzx edx, word [0x14015904e]
movsx ecx, si
cmp ecx, edx
jge 0x140045b19
lea eax, [rsi + 3]
mov word [0x140159060], r13w
add ax, ax
mov dword [0x140159064], 4
add ax, dx
mov r8d, r14d
add ax, ax
lea rdx, [0x140159058]
xor ecx, ecx
mov word [0x140159062], ax
call fcn.140031060
jmp 0x140045b38
movzx eax, si
mov word [0x14015905a], r14w
sub ax, dx
inc ax
add ax, word [0x14015904c]
mov word [0x140159058], ax
mov eax, dword [0x140159058]
lea rdx, [0x1401591b0]
mov r8d, 5
mov dword [0x140159060], eax
xor ecx, ecx
mov dword [0x140159064], 0x49
call fcn.140031060
mov word [0x140159048], si
mov eax, dword [0x1401591b4]
lea rcx, [rdi + 0x9632d8]
mov dword [r15 + rdi + 0x9632d4], eax
mov byte [r15 + rdi + 0x9632c4], bpl
add rcx, r15
mov qword [r15 + rdi + 0x9632c8], r13
movzx eax, byte [r12]
test al, al
je 0x140045bae
sub r12, rcx
nop dword [rax]
mov byte [rcx], al
inc rcx
movzx eax, byte [r12 + rcx]
test al, al
jne 0x140045ba0
mov byte [rcx], r13b
mov rcx, qword [0x1401591c8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, bl
mov rcx, qword [rsp + 0x1240]
xor rcx, rsp
call fcn.14004ee60
lea r11, [rsp + 0x1250]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret