Function at 0x14004d5a0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
xor r12d, r12d
lea r15, [0x1401f4260]
mov eax, dword [rsp + 0xa0]
and eax, 1
mov dword [rsp + 0x2c], eax
xor eax, 1
mov r14, rdx
mov rsi, r8
mov qword [rsp + 0x80], rcx
mov rbp, r9
mov rdi, rcx
mov byte [rsp + 0x2a], al
nop word cs:[rax + rax]
nop
mov r13, r14
test r14, r14
js 0x14004d785
je 0x14004d7f3
mov edx, dword [0x1401e0bd0]
xor ebx, ebx
jmp 0x14004d62d
add rbx, 1
cmp rbx, r14
je 0x14004dc68
movzx eax, byte [rdi + rbx]
movsx eax, byte [r15 + rax]
add eax, edx
test eax, eax
jle 0x14004d620
cmp rbx, r14
je 0x14004dc68
lea r13, [rdi + rbx]
cmp byte [rsp + 0x2a], 0
je 0x14004d8a8
cmp rdi, qword [rsp + 0x80]
jne 0x14004d8a8
lea r12, [rbx + r12 + 1]
test rsi, rsi
je 0x14004daf0
mov rdx, qword [rsi]
test rdx, rdx
je 0x14004dbe0
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004dbe0
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], 0x22
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
je 0x14004dc00
mov rdx, rbp
mov ecx, 0x22
call sub.msvcrt.dll_fputc
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.14008f5f0
mov r9, rbp
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_fwrite
mov rdx, qword [rsi]
test rdx, rdx
je 0x14004d8d7
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004d8d7
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], 0x5c
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
je 0x14004d950
mov rdx, rbp
mov ecx, 0x5c
lea rdi, [r13 + 1]
call sub.msvcrt.dll_fputc
movzx r13d, byte [r13]
mov r8d, r13d
test r14, r14
js 0x14004d74b
lea r10, [r14 - 1]
sub r10, rbx
mov r14, r10
movsxd rax, r13d
movzx ebx, byte [r15 + rax]
cmp bl, 0x1f
jle 0x14004d8f0
test rsi, rsi
jne 0x14004dab0
test rbp, rbp
je 0x14004d775
movsx ecx, bl
mov rdx, rbp
call sub.msvcrt.dll_fputc
add r12, 2
mov r13, r14
test r14, r14
jns 0x14004d5fc
movzx eax, byte [rdi]
mov edx, dword [0x1401e0bd0]
mov rcx, rax
movsx eax, byte [r15 + rax]
add eax, edx
test eax, eax
jg 0x14004dc13
xor ebx, ebx
nop word cs:[rax + rax]
nop word cs:[rax + rax]
nop dword [rax + rax]
add rbx, 1
movzx eax, byte [rdi + rbx]
movsx eax, byte [r15 + rax]
add eax, edx
test eax, eax
jle 0x14004d7c0
cmp rbx, r14
je 0x14004dc68
lea r13, [rdi + rbx]
movzx ecx, byte [r13]
test cl, cl
jne 0x14004d649
add r12, rbx
mov r13, rbx
test rsi, rsi
je 0x14004dc40
mov r8, r13
mov rdx, rdi
mov rcx, rsi
call fcn.14008f5f0
test rbp, rbp
je 0x14004dc1d
mov r9, rbp
mov r8d, 1
mov rdx, r13
mov rcx, rdi
call sub.msvcrt.dll_fwrite
cmp rdi, qword [rsp + 0x80]
je 0x14004dc86
mov edx, dword [rsp + 0x2c]
test edx, edx
jne 0x14004d891
test rsi, rsi
je 0x14004d880
mov rdx, qword [rsi]
test rdx, rdx
jne 0x14004dc70
mov edx, 1
mov rcx, rsi
call fcn.14008e7e0
mov rax, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], 0x22
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
je 0x14004d88d
mov rdx, rbp
mov ecx, 0x22
call sub.msvcrt.dll_fputc
add r12, 1
mov rax, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add r12, rbx
test rsi, rsi
je 0x14004db20
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.14008f5f0
test rbp, rbp
jne 0x14004d6cd
mov rdx, qword [rsi]
test rdx, rdx
jne 0x14004d6ed
mov edx, 1
mov rcx, rsi
call fcn.14008e7e0
mov rax, qword [rsi + 8]
jmp 0x14004d6fe
test rsi, rsi
jne 0x14004d980
mov byte [rsp + 0x2b], r8b
test rbp, rbp
je 0x14004d941
mov ecx, r13d
sar r13d, 3
mov rdx, rbp
sar ecx, 6
and r13d, 7
add ecx, 0x30
call sub.msvcrt.dll_fputc
lea ecx, [r13 + 0x30]
mov rdx, rbp
call sub.msvcrt.dll_fputc
movzx r8d, byte [rsp + 0x2b]
and r8d, 7
lea ebx, [r8 + 0x30]
movsx ecx, bl
mov rdx, rbp
call sub.msvcrt.dll_fputc
add r12, 4
jmp 0x14004d5f0
lea rdi, [r13 + 1]
movzx r13d, byte [r13]
mov r8d, r13d
test r14, r14
js 0x14004da90
lea r10, [r14 - 1]
movsxd rax, r13d
sub r10, rbx
movzx ebx, byte [r15 + rax]
mov r14, r10
cmp bl, 0x1f
jg 0x14004dab0
mov ebx, r13d
mov rdx, qword [rsi]
sar ebx, 6
add ebx, 0x30
test rdx, rdx
je 0x14004db78
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004db78
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], bl
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
je 0x14004d9db
mov rdx, rbp
mov ecx, ebx
mov byte [rsp + 0x2b], r8b
call sub.msvcrt.dll_fputc
movzx r8d, byte [rsp + 0x2b]
sar r13d, 3
mov rdx, qword [rsi]
and r13d, 7
add r13d, 0x30
test rdx, rdx
je 0x14004db50
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004db50
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], r13b
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
je 0x14004da3b
mov rdx, rbp
mov ecx, r13d
mov byte [rsp + 0x2b], r8b
call sub.msvcrt.dll_fputc
movzx r8d, byte [rsp + 0x2b]
mov rdx, qword [rsi]
and r8d, 7
lea ebx, [r8 + 0x30]
test rdx, rdx
je 0x14004dba0
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004dba0
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], bl
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
test rbp, rbp
jne 0x14004d936
jmp 0x14004d941
movsxd rax, r13d
movzx ebx, byte [r15 + rax]
cmp bl, 0x1f
jle 0x14004d980
nop word cs:[rax + rax]
nop dword [rax]
mov rdx, qword [rsi]
test rdx, rdx
je 0x14004dbc0
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
je 0x14004dbc0
mov rdx, qword [rsi + 0x10]
lea rcx, [rax + 1]
mov qword [rsi + 8], rcx
mov byte [rdx + rax], bl
mov rdx, qword [rsi + 0x10]
mov rax, qword [rsi + 8]
mov byte [rdx + rax], 0
jmp 0x14004d765
test rbp, rbp
je 0x14004db25
mov rdx, rbp
mov ecx, 0x22
call sub.msvcrt.dll_fputc
mov r9, rbp
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call sub.msvcrt.dll_fwrite
jmp 0x14004d723
test rbp, rbp
jne 0x14004db02
lea rdi, [r13 + 1]
movzx r13d, byte [r13]
mov r8d, r13d
test r14, r14
jns 0x14004d741
movsxd r13, r13d
cmp byte [r15 + r13], 0x1f
jg 0x14004d775
jmp 0x14004d941
mov edx, 1
mov rcx, rsi
mov byte [rsp + 0x2b], r8b
call fcn.14008e7e0
mov rax, qword [rsi + 8]
movzx r8d, byte [rsp + 0x2b]
jmp 0x14004da04
mov edx, 1
mov rcx, rsi
mov byte [rsp + 0x2b], r8b
call fcn.14008e7e0
mov rax, qword [rsi + 8]
movzx r8d, byte [rsp + 0x2b]
jmp 0x14004d9a6
mov edx, 1
mov rcx, rsi
call fcn.14008e7e0
mov rax, qword [rsi + 8]
jmp 0x14004da60
mov edx, 1
mov rcx, rsi
call fcn.14008e7e0
mov rax, qword [rsi + 8]
jmp 0x14004dacd
mov edx, 1
mov rcx, rsi
call fcn.14008e7e0
mov rax, qword [rsi + 8]
jmp 0x14004d68d
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.14008f5f0
jmp 0x14004d6e1
mov r13, rdi
xor ebx, ebx
jmp 0x14004d7e5
cmp rdi, qword [rsp + 0x80]
je 0x14004dc86
mov eax, dword [rsp + 0x2c]
test eax, eax
jne 0x14004d891
mov rdx, qword [rsi]
test rdx, rdx
jne 0x14004dc70
jmp 0x14004d84e
test rbp, rbp
jne 0x14004d813
cmp rdi, qword [rsp + 0x80]
je 0x14004dc86
mov ecx, dword [rsp + 0x2c]
test ecx, ecx
jne 0x14004d891
jmp 0x14004d88d
add r12, r14
jmp 0x14004d7f3
mov rax, qword [rsi + 8]
sub rdx, rax
cmp rdx, 1
jne 0x14004d85f
jmp 0x14004d84e
xor r12d, r12d
jmp 0x14004d891