Function at 0x1400045a0
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x140010008]
xor rax, rsp
mov qword [rsp + 0x38], rax
movzx eax, word [0x14000ea40]
mov rbx, rcx
movsd xmm0, qword [str.qwertyuiop]
mov word [rsp + 0x30], ax
movzx eax, byte [0x14000ea42]
mov byte [rsp + 0x32], al
movsxd rax, dword [0x140010034]
movsd qword [rsp + 0x28], xmm0
test eax, eax
je 0x140004883
test rcx, rcx
je 0x140004883
mov qword [rsp + 0x50], rbp
mov rcx, rax
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x60], rdi
call fcn.1400053d8
movsxd rcx, dword [0x140010034]
mov rdi, rax
call fcn.1400053d8
mov ecx, dword [0x140010034]
mov rsi, rax
lea ecx, [rcx*2 + 1]
movsxd rcx, ecx
call fcn.1400053d8
mov r9d, dword [0x140010034]
mov rbp, rax
test r9d, r9d
jle 0x140004663
lea ecx, [r9 - 1]
mov r8d, r9d
movsxd rdx, ecx
add rdx, rdi
nop
movzx ecx, byte [rbx]
lea rbx, [rbx + 1]
mov byte [rdx], cl
lea rdx, [rdx - 1]
sub r8, 1
jne 0x140004650
xor r8d, r8d
test r9d, r9d
jle 0x1400046a1
mov r10, rdi
nop
mov eax, 0x38e38e39
lea r10, [r10 + 1]
mul r8d
mov ecx, r8d
shr edx, 1
lea eax, [rdx + rdx*8]
sub ecx, eax
movsxd rax, ecx
movzx ecx, byte [rsp + rax + 0x28]
xor cl, byte [r10 - 1]
xor cl, r8b
inc r8d
mov byte [r10 - 1], cl
cmp r8d, r9d
jl 0x140004670
xor edx, edx
test r9d, r9d
jle 0x140004760
cmp r9d, 0x40
jb 0x140004740
mov ecx, r9d
and ecx, 0x8000003f
jge 0x1400046c8
dec ecx
or ecx, 0xffffffc0
inc ecx
movdqa xmm2, xmmword [str._n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
mov eax, r9d
sub eax, ecx
mov r8, 0xffffffffffffffe0
movsxd r10, eax
lea rcx, [rdi + 0x20]
sub r8, rdi
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x20]
lea rcx, [rcx + 0x40]
add edx, 0x40
movdqa xmm1, xmm2
lea rax, [r8 + rcx]
paddb xmm0, xmm2
movdqu xmmword [rcx - 0x60], xmm0
movdqu xmm0, xmmword [rcx - 0x50]
paddb xmm1, xmm0
movdqu xmmword [rcx - 0x50], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rcx - 0x40]
paddb xmm1, xmm0
movdqu xmmword [rcx - 0x40], xmm1
movdqu xmm0, xmmword [rcx - 0x30]
paddb xmm0, xmm2
movdqu xmmword [rcx - 0x30], xmm0
cmp rax, r10
jl 0x1400046f0
cmp edx, r9d
jge 0x140004760
movsxd rcx, edx
mov eax, r9d
add rcx, rdi
sub eax, edx
movsxd rdx, eax
add byte [rcx], 0xa
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140004753
lea eax, [r9 - 1]
movsxd rcx, eax
test eax, eax
js 0x140004780
mov rdx, rsi
nop
movzx eax, byte [rcx + rdi]
sub rcx, 1
mov byte [rdx], al
lea rdx, [rdx + 1]
jns 0x140004770
lea r8, [0x14000ea44]
mov qword [rsp + 0x20], 0
lea rdx, str.._check.bin
lea rcx, [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s]
mov r9, qword [rsp + 0x20]
test r9, r9
jne 0x1400047e0
mov rcx, rdi
call fcn.1400053d0
mov rcx, rsi
call fcn.1400053d0
xor eax, eax
mov rsi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400053b0
add rsp, 0x40
pop rbx
ret
movsxd r8, dword [0x140010034]
mov edx, 1
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rcx, rdi
call fcn.1400053d0
mov eax, dword [0x140010034]
test eax, eax
jle 0x14000485d
mov r9, rsi
mov r8, rbp
mov r10d, eax
mov r11d, 0x37
movzx eax, byte [r9]
mov ecx, 0x30
movzx edx, al
and al, 0xf
sar dl, 4
and dl, 0xf
cmp dl, 9
cmova ecx, r11d
add cl, dl
mov byte [r8], cl
cmp al, 9
ja 0x140004849
add al, 0x30
jmp 0x14000484c
add al, r11b
mov byte [r8 + 1], al
inc r9
add r8, 2
sub r10, 1
jne 0x140004821
mov rcx, rsi
call fcn.1400053d0
mov eax, dword [0x140010034]
lea ecx, [rax + rax]
movsxd rax, ecx
mov dword [0x140010034], ecx
mov byte [rax + rbp], 0
mov rax, rbp
jmp 0x1400047be
xor eax, eax
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400053b0
add rsp, 0x40
pop rbx
ret