Function at 0x6a5d8980
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xf0], xmm7
movaps xmmword [rsp + 0x100], xmm8
movaps xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x120], xmm10
movaps xmmword [rsp + 0x130], xmm11
movaps xmmword [rsp + 0x140], xmm12
movaps xmmword [rsp + 0x150], xmm13
movaps xmmword [rsp + 0x160], xmm14
movaps xmmword [rsp + 0x170], xmm15
mov rax, qword [0x6a68bbb0]
mov rax, qword [rax + 0x218]
mov qword [rsp + 0x48], 0
test rax, rax
je 0x6a5d88c0
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x6a5d87e0
mov rcx, qword [rdx]
mov qword [rsp + 0x28], rdx
mov qword [rax + 0x20], rcx
mov rdi, qword [rax + 0x28]
lea rcx, [rdi - 0x410]
cmp rcx, 0x40f
mov qword [rax + 0x28], rcx
jg 0x6a5d7cb5
mov rbx, qword [0x6a68bbb0]
mov rcx, qword [rax + 0x10]
cmp rax, qword [rbx + 0x218]
je 0x6a5d8945
mov r8, qword [rax + 0x18]
mov qword [r8 + 0x10], rcx
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x6a5d7cad
mov r8, qword [rax + 0x18]
mov qword [rcx + 0x18], r8
pxor xmm0, xmm0
movaps xmmword [rax + 0x10], xmm0
mov rax, qword [0x6a68bbb0]
mov r8d, 0x400
mov rsi, qword [0x6a68ba60]
add qword [rax + 0x2098], 0x410
mov qword [rdx + 8], 1
xor edx, edx
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rsi
lea rcx, [rax + 0x10]
mov qword [rsp + 0x48], rcx
call sub.msvcrt.dll_memset
mov rax, qword [0x6a68ba30]
mov edx, 0x4162ac0e
mov rdi, qword [rsp + 0x28]
lea rcx, [0x6a68af60]
mov qword [rdi + 0x10], rax
mov rax, qword [0x6a68ba60]
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
mov rax, qword [0x6a68ba60]
xor r8d, r8d
xor edx, edx
mov ecx, 0x40000
mov qword [rsp + 0x20], rax
call qword [0x6a68f898]
mov rdi, qword [0x6a68ba60]
mov r8d, 0x1000
mov edx, 8
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [0x6a68f430]
mov rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [0x6a5de070]
mov edx, 0x7c54da0a
lea rcx, [0x6a68af20]
mov dword [rsp + 0x7c], 0
mov qword [0x6a68f428], rbx
lea rdi, [rbx + rax]
lea rax, [rbx + rax*2]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rax
mov qword [0x6a68f8a8], rax
mov rax, qword [0x6a68ba60]
mov qword [0x6a68f798], rdi
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7dd2
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
mov rax, qword [0x6a68ba60]
mov edx, 0x43933dae
lea rcx, [0x6a68aee0]
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7e1d
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
mov rax, qword [0x6a68ba60]
mov edx, 0xeca18ea
lea rcx, [0x6a68aea0]
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7e68
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
mov rax, qword [0x6a5de070]
lea rcx, [0x6a68ae70]
mov rdi, qword [rsp + 0x28]
lea rdx, [rdi + rax*8]
sub rdx, rax
mov rax, qword [0x6a68ba60]
mov qword [rsp + 0x38], rdx
mov qword [0x6a68f7a8], rdx
mov edx, 0x3225384e
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7ed2
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
mov rax, qword [0x6a5de070]
lea rcx, [0x6a68ae40]
mov rsi, qword [rsp + 0x28]
lea rdx, [rax + rax*2]
lea rdx, [rax + rdx*4]
add rsi, rdx
mov edx, 0x3e97a2ca
add rax, rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rax
mov qword [0x6a68f6d0], rax
mov rax, qword [0x6a68ba60]
mov qword [0x6a68f5f0], rsi
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7f4f
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
mov rax, qword [0x6a68ba60]
mov edx, 0x52b543ee
lea rcx, [0x6a68ae00]
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
lea rcx, [0x6a68982a]
test rax, rax
je 0x6a5d7f9a
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [0x6a68ba60]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.6a5d4670
lea r9, [rsp + 0x7c]
mov rax, qword [0x6a68ba60]
mov r8d, 0x20
mov rdx, qword [0x6a5de070]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
call qword [0x6a68f740]
mov rax, qword [0x6a68ba60]
mov edx, 0x2159efaa
lea rcx, [0x6a68aca0]
mov qword [rsp + 0x20], rax
call fcn.6a5ce880
mov rcx, qword [0x6a68ba70]
mov eax, 0x10
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x80], 0
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x6a5d8036
lea rax, [rdx + 0xf]
neg rdx
and rax, rdx
mov rdx, qword [rcx + 0x18]
add rax, qword [rdx]
mov qword [rsp + 0x28], rax
seto al
movzx eax, al
mov qword [rsp + 0x30], rax
jo 0x6a5d87c0
mov rax, qword [rsp + 0x28]
mov rsi, qword [0x6a68ba60]
mov rcx, qword [0x6a68bbb0]
lea rdx, [rax + 0x10]
mov qword [rsp + 0x20], rsi
call fcn.6a5cddb0
cmp qword [rsp + 0x28], 0
lea rdi, [rax + 0x10]
mov qword [rsp + 0x38], rax
mov qword [rax + 8], 1
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x68], rdi
jle 0x6a5d80b2
mov rax, qword [0x6a68ba60]
mov rcx, rdi
xor edx, edx
mov r8, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x38]
mov edx, 0x2b
mov rdi, qword [0x6a68ba60]
mov rcx, qword [0x6a68bbb0]
movdqa xmm0, xmmword [0x6a68b2e0]
movups xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x20], rdi
call fcn.6a5cddb0
mov r8, qword [0x6a68ac90]
mov qword [rax + 8], 1
lea rdx, [rax + 0x20]
movdqa xmm0, xmmword [0x6a68b3c0]
lea rcx, [rax + 0x10]
mov rbx, qword [rsp + 0x40]
movups xmmword [rax + 0x10], xmm0
cmp qword [rsp + 0x38], 0xfffffffffffffff0
mov qword [rax + 0x20], r8
movzx eax, word [0x6a68ac98]
mov word [rdx + 8], ax
movzx eax, byte [0x6a68ac9a]
mov byte [rdx + 0xa], al
mov qword [rbx + 0x10], rcx
je 0x6a5d8810
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rax
mov rax, qword [0x6a68ba60]
mov qword [rsp + 0x20], rax
jmp 0x6a5d8185
mov rdi, qword [rsp + 0x60]
cmp qword [rsp + 0x30], rdi
jge 0x6a5d829a
mov rax, qword [0x6a68f7a0]
lea rdi, [rsp + 0xe0]
mov qword [rsp + 0xc0], rsp
mov r8, 0xffffffffffffffff
mov qword [rsp + 0xb0], rdi
mov rdi, qword [rsp + 0x30]
lea rsi, [0x6a5d8150]
xor edx, edx
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xa0]
mov qword [0x6a68f7a0], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + rdi*8 + 0x10]
call fcn.6a5d6230
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
xor ecx, ecx
mov qword [rsp + 0x28], rax
call qword [fcn.6a5dd780]
cmp qword [rsp + 0x28], rax
je 0x6a5d8277
mov rcx, qword [rsp + 0x28]
call fcn.6a5dd180
mov rcx, qword [rsp + 0x28]
mov r8d, 2
xor edx, edx
mov qword [rsp + 0x40], rax
call fcn.6a5dd3d0
mov rcx, qword [rsp + 0x28]
call fcn.6a5dd180
mov rdx, qword [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x28]
call fcn.6a5dd3d0
mov rax, qword [rsp + 0x38]
test rax, rax
jg 0x6a5d8840
mov rcx, qword [rsp + 0x28]
call fcn.6a5d7000
mov qword [rsp + 0x80], rax
mov rax, qword [0x6a68f7a0]
mov rax, qword [rax]
mov qword [0x6a68f7a0], rax
mov rax, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x18]
test rdx, rdx
mov rax, qword [rax]
je 0x6a5d8750
mov rdi, qword [rdx]
lea rbx, [rdx + 0x10]
test rcx, rcx
mov edx, 0x10
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x28], rdi
je 0x6a5d82e0
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rsp + 0x28]
jo 0x6a5d8969
add rax, rdx
mov qword [rsp + 0x50], rax
jo 0x6a5d8780
mov rax, qword [rsp + 0x50]
mov rcx, qword [0x6a68bbb0]
lea rdx, [rax + 0x10]
call fcn.6a5cddb0
cmp qword [rsp + 0x50], 0
lea rsi, [rax + 0x10]
mov qword [rsp + 0x58], rax
mov qword [rax + 8], 1
mov qword [rsp + 0x38], rsi
jle 0x6a5d833c
mov r8, qword [rsp + 0x50]
mov rcx, rsi
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x58]
movq xmm0, rax
test rax, rax
punpcklqdq xmm0, xmm0
movups xmmword [rdi + 0x10], xmm0
jle 0x6a5d8510
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
lea rax, [rbx + 0x20]
cmp rdi, rax
setae dl
cmp rbx, rdi
setae al
or dl, al
je 0x6a5d8860
mov rsi, qword [rsp + 0x28]
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x6a5d8860
lea rax, [rbx + 0x10]
and rsi, 0xfffffffffffffff0
mov rdx, rsi
mov rsi, qword [rsp + 0x58]
lea rcx, [rsi + rdx + 0x20]
sub rdi, rsi
mov rdx, rdi
nop dword [rax]
movdqu xmm1, xmmword [rax + rdx - 0x20]
add rax, 0x10
movups xmmword [rax - 0x10], xmm1
cmp rax, rcx
jne 0x6a5d83b0
mov rbx, qword [rsp + 0x28]
mov rax, rbx
and rax, 0xfffffffffffffff0
cmp rax, rbx
je 0x6a5d8510
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x38]
movzx edx, byte [rdi + rax]
mov byte [rsi + rax + 0x10], dl
lea rdx, [rax + 1]
cmp rdx, rbx
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 1]
lea rdx, [rax + 2]
cmp rdx, rbx
mov byte [rsi + rax + 0x11], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 2]
lea rdx, [rax + 3]
cmp rdx, rbx
mov byte [rsi + rax + 0x12], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 3]
lea rdx, [rax + 4]
cmp rdx, rbx
mov byte [rsi + rax + 0x13], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 4]
lea rdx, [rax + 5]
cmp rdx, rbx
mov byte [rsi + rax + 0x14], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 5]
lea rdx, [rax + 6]
cmp rdx, rbx
mov byte [rsi + rax + 0x15], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 6]
lea rdx, [rax + 7]
cmp rdx, rbx
mov byte [rsi + rax + 0x16], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 7]
lea rdx, [rax + 8]
cmp rdx, rbx
mov byte [rsi + rax + 0x17], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 8]
lea rdx, [rax + 9]
cmp rdx, rbx
mov byte [rsi + rax + 0x18], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 9]
lea rdx, [rax + 0xa]
cmp rdx, rbx
mov byte [rsi + rax + 0x19], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 0xa]
lea rdx, [rax + 0xb]
cmp rdx, rbx
mov byte [rsi + rax + 0x1a], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 0xb]
lea rdx, [rax + 0xc]
cmp rdx, rbx
mov byte [rsi + rax + 0x1b], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 0xc]
lea rdx, [rax + 0xd]
cmp rdx, rbx
mov byte [rsi + rax + 0x1c], cl
jge 0x6a5d8510
movzx ecx, byte [rdi + rax + 0xd]
lea rdx, [rax + 0xe]
cmp rdx, rbx
mov byte [rsi + rax + 0x1d], cl
jge 0x6a5d8510
movzx eax, byte [rdi + rax + 0xe]
mov byte [rsi + rdx + 0x10], al
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
cmp qword [rsp + 0x58], 0xfffffffffffffff0
mov qword [rax + 0x30], rbx
mov rax, qword [rsp + 0x20]
mov rcx, qword [rax + 8]
mov rax, qword [rax + 0x18]
je 0x6a5d8790
mov rsi, qword [rsp + 0x58]
test rcx, rcx
mov edx, 0x10
mov rax, qword [rax]
mov rbx, qword [rsi + 0x10]
mov qword [rsp + 0x28], rbx
je 0x6a5d855c
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rsp + 0x28]
jo 0x6a5d896e
add rax, rdx
mov qword [rsp + 0x38], rax
jo 0x6a5d8830
mov rax, qword [rsp + 0x38]
mov rcx, qword [0x6a68bbb0]
lea rdx, [rax + 0x10]
call fcn.6a5cddb0
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
lea rcx, [rax + 0x10]
mov qword [rax + 8], 1
jle 0x6a5d85b0
mov r8, qword [rsp + 0x38]
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x40]
movddup xmm0, qword [rsp + 0x28]
mov edx, 0x2a94488e
lea rcx, [0x6a68aa60]
movups xmmword [rax + 0x10], xmm0
call fcn.6a5ce880
mov rdi, qword [rsp + 0x48]
mov r8d, 0x3c8
xor edx, edx
lea rcx, [rdi + 0x38]
call sub.msvcrt.dll_memset
mov rdi, qword [rsp + 0x48]
mov edx, 0x156e378a
lea rcx, [0x6a68a9c0]
lea rax, [rdi + 0x10]
mov qword [rdi + 0x10], 0
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov qword [rax + 0x18], 0
call fcn.6a5ce880
lea rcx, [0x6a68a8a0]
mov edx, 0x46816e2e
call fcn.6a5ce880
lea rcx, [0x6a68a6e0]
mov edx, 0x2bc0726a
call fcn.6a5ce880
lea rcx, [0x6a68a4e0]
mov edx, 0x49f41cce
call fcn.6a5ce880
lea rcx, [0x6a68a480]
mov edx, 0x3949584a
call fcn.6a5ce880
lea rcx, [0x6a68a2e0]
mov edx, 0x7875fc6e
call fcn.6a5ce880
lea rcx, [0x6a68a1a0]
mov edx, 0xfbc612a
call fcn.6a5ce880
lea rcx, [0x6a68a0e0]
mov edx, 0x6f8cf50e
call fcn.6a5ce880
mov rax, qword [rsp + 0x48]
lea rbx, [fcn.6a5d4150]
xor edx, edx
mov qword [rsp + 0x90], rbx
test rax, rax
mov qword [rsp + 0x98], rax
mov rcx, qword [rax + 0x30]
je 0x6a5d88a0
test rcx, rcx
je 0x6a5d86ca
mov rdx, qword [rcx]
mov r8, qword [rsp + 0x48]
add rcx, 0x10
call fcn.6a5d4150
nop
movaps xmm6, xmmword [rsp + 0xe0]
xor eax, eax
movaps xmm7, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm11, xmmword [rsp + 0x130]
movaps xmm12, xmmword [rsp + 0x140]
movaps xmm13, xmmword [rsp + 0x150]
movaps xmm14, xmmword [rsp + 0x160]
movaps xmm15, xmmword [rsp + 0x170]
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x40], 0x10
test rcx, rcx
mov qword [rsp + 0x28], 0
jne 0x6a5d82d6
mov qword [rsp + 0x50], 0x10
jmp 0x6a5d82fa
call fcn.6a5d3620
nop
nop word cs:[rax + rax]
mov qword [rsp + 0x28], 0
test rcx, rcx
mov rax, qword [rax]
jne 0x6a5d8552
mov qword [rsp + 0x38], 0x10
jmp 0x6a5d8576
mov rax, qword [0x6a68ba60]
mov qword [rsp + 0x20], rax
call fcn.6a5d3620
nop dword [rax + rax]
nop word cs:[rax + rax]
mov rcx, qword [rax + 0x30]
lea rdi, [rax + rcx + 0x40]
add rcx, 0x410
mov qword [rsp + 0x28], rdi
mov rdx, rdi
mov qword [rax + 0x30], rcx
jmp 0x6a5d7c64
mov qword [rsp + 0x60], 0
mov rax, qword [0x6a68ba60]
mov qword [rsp + 0x20], rax
jmp 0x6a5d829a
call fcn.6a5d3620
nop
nop word cs:[rax + rax]
mov rcx, qword [rsp + 0x28]
mov rdx, rax
call fcn.6a5d7810
jmp 0x6a5d8281
xor eax, eax
nop dword [rax]
nop word cs:[rax + rax]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
movzx edx, byte [rsi + rax]
mov byte [rdi + rax + 0x10], dl
add rax, 1
cmp rax, qword [rsp + 0x28]
jne 0x6a5d8870
jmp 0x6a5d8510
test rcx, rcx
je 0x6a5d88a8
mov rdx, qword [rcx]
add rcx, 0x10
call fcn.6a5d4150
jmp 0x6a5d86d9
mov rax, qword [0x6a68ba60]
mov edx, 0x1000
mov rcx, qword [0x6a68bbb0]
mov qword [rsp + 0x20], rax
call fcn.6a5cd8c0
mov rbx, qword [0x6a68bbb0]
mov qword [rax + 0x20], 0
movdqa xmm0, xmmword [0x6a68b3b0]
mov qword [rax + 8], 0x410
movups xmmword [rax + 0x28], xmm0
pxor xmm0, xmm0
movaps xmmword [rax + 0x10], xmm0
mov rdx, qword [rbx + 0x218]
test rdx, rdx
mov qword [rax + 0x10], rdx
je 0x6a5d891c
mov qword [rdx + 0x18], rax
mov rsi, qword [0x6a68bbb0]
lea rdx, [rax + 0x40]
mov qword [rsp + 0x28], rdx
mov qword [rsi + 0x218], rax
cmp qword [rax + 0x28], 0x40f
jg 0x6a5d7cb5
mov rcx, qword [rax + 0x10]
mov rsi, qword [0x6a68bbb0]
test rcx, rcx
mov qword [rsi + 0x218], rcx
je 0x6a5d7cad
mov qword [rcx + 0x18], 0
jmp 0x6a5d7cad
call fcn.6a5d3620
call fcn.6a5d3620
nop
nop
nop word cs:[rax + rax]
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, rcx
mov rcx, rdx
mov edx, 1
mov r9, rdi
mov rbx, r8
call sub.msvcrt.dll_fread
cmp rbx, rax
mov rsi, rax
je 0x6a5d89b1
mov rcx, rdi
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x6a5d89bc
mov rax, rsi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov rcx, rdi
call fcn.6a5d6840
nop
nop
nop word cs:[rax + rax]
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov ebp, 0x17
cmp rdx, 0x63
mov rsi, rcx
mov rcx, rdx
jbe 0x6a5d8cd1
movabs r11, 0x28f5c28f5c28f5c3
mov r9, rdx
mov rbx, rcx
lea r8, str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899rbN
shr r9, 2
mov rax, r9
mul r11
mov rdi, rdx
mov r9, rdx
shr rdi, 2
imul rax, rdi, 0x64
sub rbx, rax
cmp rcx, 0x270f
movzx edx, byte [r8 + rbx*2 + 1]
movzx eax, byte [r8 + rbx*2]
mov byte [rsp + 0x37], dl
mov byte [rsp + 0x36], al
jbe 0x6a5d8df0
movabs r10, 0x346dc5d63886594b
mov rax, rcx
shr r9, 4
mul r10
mov rax, r9
mov rbx, rdx
mov r10, rdx
mul r11
mov rax, rdi
shr rbx, 0xb
shr rdx, 2
imul rdx, rdx, 0x64
sub rax, rdx
cmp rcx, 0xf423f
movzx edx, byte [r8 + rax*2 + 1]
movzx eax, byte [r8 + rax*2]
mov byte [rsp + 0x35], dl
mov byte [rsp + 0x34], al
jbe 0x6a5d8e00
movabs r9, 0x431bde82d7b634db
mov rax, rcx
shr r10, 0xd
mul r9
mov rax, r10
mov rdi, rdx
mov r9, rdx
mul r11
shr rdi, 0x12
shr rdx, 2
imul rdx, rdx, 0x64
sub rbx, rdx
cmp rcx, 0x5f5e0ff
movzx eax, byte [r8 + rbx*2 + 1]
mov byte [rsp + 0x33], al
movzx eax, byte [r8 + rbx*2]
mov byte [rsp + 0x32], al
jbe 0x6a5d8e10
movabs r10, 0xabcc77118461cefd
mov rax, rcx
shr r9, 0x14
mul r10
mov rax, r9
mov rbx, rdx
mov r10, rdx
mul r11
shr rbx, 0x1a
shr rdx, 2
imul rdx, rdx, 0x64
sub rdi, rdx
movzx eax, byte [r8 + rdi*2 + 1]
mov byte [rsp + 0x31], al
movzx eax, byte [r8 + rdi*2]
mov byte [rsp + 0x30], al
movabs rax, 0x2540be3ff
cmp rcx, rax
jbe 0x6a5d8e20
movabs r9, 0xdbe6fecebdedd5bf
mov rax, rcx
shr r10, 0x1c
mul r9
mov rax, r10
mov rdi, rdx
mov r9, rdx
mul r11
shr rdi, 0x21
shr rdx, 2
imul rdx, rdx, 0x64
sub rbx, rdx
movzx eax, byte [r8 + rbx*2 + 1]
mov byte [rsp + 0x2f], al
movzx eax, byte [r8 + rbx*2]
mov byte [rsp + 0x2e], al
movabs rax, 0xe8d4a50fff
cmp rcx, rax
jbe 0x6a5d8dc0
movabs r10, 0x232f33025bd42233
mov rax, rcx
shr r9, 0x23
mul r10
mov rax, r9
mov rbx, rdx
mov r10, rdx
mul r11
shr rbx, 0x25
shr rdx, 2
imul rdx, rdx, 0x64
sub rdi, rdx
movzx eax, byte [r8 + rdi*2 + 1]
mov byte [rsp + 0x2d], al
movzx eax, byte [r8 + rdi*2]
mov byte [rsp + 0x2c], al
movabs rax, 0x5af3107a3fff
cmp rcx, rax
jbe 0x6a5d8e30
mov rax, rcx
shr r10, 0x27
movabs rdx, 0xb424dc35095cd81
mul rdx
mov rax, r10
mov r9, rdx
mov rdi, rdx
mul r11
shr r9, 0x2a
shr rdx, 2
imul rdx, rdx, 0x64
sub rbx, rdx
movzx eax, byte [r8 + rbx*2 + 1]
mov byte [rsp + 0x2b], al
movzx eax, byte [r8 + rbx*2]
mov byte [rsp + 0x2a], al
movabs rax, 0x2386f26fc0ffff
cmp rcx, rax
jbe 0x6a5d8e60
mov rax, rcx
shr rdi, 0x2c
movabs rdx, 0x39a5652fb1137857
mul rdx
mov rax, rdi
mov r10, rdx
mov rbx, rdx
mul r11
shr r10, 0x33
shr rdx, 2
imul rdx, rdx, 0x64
sub r9, rdx
movzx eax, byte [r8 + r9*2 + 1]
mov byte [rsp + 0x29], al
movzx eax, byte [r8 + r9*2]
mov byte [rsp + 0x28], al
movabs rax, 0xde0b6b3a763ffff
cmp rcx, rax
jbe 0x6a5d8e70
shr rcx, 0x12
shr rbx, 0x35
mov ebp, 5
movabs rdx, 0x49c97747490f
mov rax, rcx
mul rdx
mov rax, rbx
mov rcx, rdx
mul r11
shr rcx, 0x18
shr rdx, 2
imul rdx, rdx, 0x64
sub r10, rdx
movzx eax, byte [r8 + r10*2 + 1]
mov byte [rsp + 0x27], al
movzx eax, byte [r8 + r10*2]
mov byte [rsp + 0x26], al
cmp rcx, 9
jbe 0x6a5d8d90
lea rax, str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899rbN
mov ebx, 0x18
movzx edx, byte [rax + rcx*2 + 1]
movzx eax, byte [rax + rcx*2]
mov rcx, qword [rsi]
mov byte [rsp + rbp + 0x20], dl
sub rbp, 1
sub rbx, rbp
mov byte [rsp + rbp + 0x20], al
test rcx, rcx
je 0x6a5d8dab
mov rdx, qword [rcx]
lea rdi, [rdx + 0x10]
add rdx, rbx
call fcn.6a5cf9a0
lea r8, [rsp + rbp + 0x20]
mov qword [rsi], rax
add rax, rdi
cmp ebx, 8
jae 0x6a5d8d50
test bl, 4
jne 0x6a5d8dd0
test ebx, ebx
je 0x6a5d8d46
movzx edx, byte [r8]
test bl, 2
mov byte [rax], dl
jne 0x6a5d8e40
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov edx, ebx
sub ebx, 1
mov rcx, qword [r8 + rdx - 8]
cmp ebx, 8
mov qword [rax + rdx - 8], rcx
jb 0x6a5d8d46
and ebx, 0xfffffff8
xor edx, edx
mov ecx, edx
add edx, 8
mov r9, qword [r8 + rcx]
cmp edx, ebx
mov qword [rax + rcx], r9
jb 0x6a5d8d69
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
add ecx, 0x30
mov ebx, 0x18
mov byte [rsp + rbp + 0x20], cl
mov rcx, qword [rsi]
sub rbx, rbp
test rcx, rcx
jne 0x6a5d8d0b
mov rdx, rbx
mov edi, 0x10
jmp 0x6a5d8d15
mov rcx, rdi
mov ebp, 0xd
jmp 0x6a5d8cd1
mov edx, dword [r8]
mov ebx, ebx
mov dword [rax], edx
mov edx, dword [r8 + rbx - 4]
mov dword [rax + rbx - 4], edx
jmp 0x6a5d8d46
mov rcx, rdi
mov ebp, 0x15
jmp 0x6a5d8cd1
mov rcx, rbx
mov ebp, 0x13
jmp 0x6a5d8cd1
mov rcx, rdi
mov ebp, 0x11
jmp 0x6a5d8cd1
mov rcx, rbx
mov ebp, 0xf
jmp 0x6a5d8cd1
mov rcx, rbx
mov ebp, 0xb
jmp 0x6a5d8cd1
mov ebx, ebx
movzx edx, word [r8 + rbx - 2]
mov word [rax + rbx - 2], dx
jmp 0x6a5d8d46
mov rcx, r9
mov ebp, 9
jmp 0x6a5d8cd1
mov rcx, r10
mov ebp, 7
jmp 0x6a5d8cd1