Function at 0x6a56ab90
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 [0x6a59e7c0]
mov rax, qword [rax + 0x218]
mov qword [rsp + 0x48], 0
test rax, rax
je 0x6a56aad0
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x6a56a9f0
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 0x6a569ec5
mov rbx, qword [0x6a59e7c0]
mov rcx, qword [rax + 0x10]
cmp rax, qword [rbx + 0x218]
je 0x6a56ab55
mov r8, qword [rax + 0x18]
mov qword [r8 + 0x10], rcx
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x6a569ebd
mov r8, qword [rax + 0x18]
mov qword [rcx + 0x18], r8
pxor xmm0, xmm0
movaps xmmword [rax + 0x10], xmm0
mov rax, qword [0x6a59e7c0]
mov r8d, 0x400
mov rsi, qword [str.__Zj]
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 [0x6a59e630]
mov edx, 0x6c120768
mov rdi, qword [rsp + 0x28]
lea rcx, [0x6a59db20]
mov qword [rdi + 0x10], rax
mov rax, qword [str.__Zj]
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
mov rax, qword [str.__Zj]
xor r8d, r8d
xor edx, edx
mov ecx, 0x40000
mov qword [rsp + 0x20], rax
call qword [0x6a5a28c8]
mov rdi, qword [str.__Zj]
mov r8d, 0x1000
mov edx, 8
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [0x6a5a2440]
mov rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [0x6a570070]
mov edx, 0x861a8a8
lea rcx, [0x6a59dae0]
mov dword [rsp + 0x7c], 0
mov qword [0x6a5a2438], rbx
lea rdi, [rbx + rax]
lea rax, [rbx + rax*2]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rax
mov qword [0x6a5a28d8], rax
mov rax, qword [str.__Zj]
mov qword [0x6a5a27b8], rdi
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a569fe2
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
call fcn.6a566880
mov rax, qword [str.__Zj]
mov edx, 0x59bc8068
lea rcx, [0x6a59daa0]
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a56a02d
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a566880
mov rax, qword [str.__Zj]
mov edx, 0x2bbe23a8
lea rcx, [0x6a59da60]
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a56a078
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.6a566880
mov rax, qword [0x6a570070]
lea rcx, [0x6a59da30]
mov rdi, qword [rsp + 0x28]
lea rdx, [rdi + rax*8]
sub rdx, rax
mov rax, qword [str.__Zj]
mov qword [rsp + 0x38], rdx
mov qword [0x6a5a27c8], rdx
mov edx, 0x4522168
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a56a0e2
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a566880
mov rax, qword [0x6a570070]
lea rcx, [0x6a59da00]
mov rsi, qword [rsp + 0x28]
lea rdx, [rax + rax*2]
lea rdx, [rax + rdx*4]
add rsi, rdx
mov edx, 0x354a96a8
add rax, rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rax
mov qword [0x6a5a26f0], rax
mov rax, qword [str.__Zj]
mov qword [0x6a5a2610], rsi
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a56a15f
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call fcn.6a566880
mov rax, qword [str.__Zj]
mov edx, 0xc6b2a68
lea rcx, [0x6a59d9c0]
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
lea rcx, [0x6a59c24a]
test rax, rax
je 0x6a56a1aa
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
mov rax, qword [str.__Zj]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.6a566880
lea r9, [rsp + 0x7c]
mov rax, qword [str.__Zj]
mov r8d, 0x20
mov rdx, qword [0x6a570070]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
call qword [0x6a5a2760]
mov rax, qword [str.__Zj]
mov edx, 0x74b3c1a8
lea rcx, [0x6a59d7c0]
mov qword [rsp + 0x20], rax
call fcn.6a55fbd0
mov rcx, qword [str._Zj]
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 0x6a56a246
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 0x6a56a9d0
mov rax, qword [rsp + 0x28]
mov rsi, qword [str.__Zj]
mov rcx, qword [0x6a59e7c0]
lea rdx, [rax + 0x10]
mov qword [rsp + 0x20], rsi
call fcn.6a55f100
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 0x6a56a2c2
mov rax, qword [str.__Zj]
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 [str.__Zj]
mov rcx, qword [0x6a59e7c0]
movdqa xmm0, xmmword [0x6a59de60]
movups xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x20], rdi
call fcn.6a55f100
mov r8, qword [0x6a59d7b0]
mov qword [rax + 8], 1
lea rdx, [rax + 0x20]
movdqa xmm0, xmmword [0x6a59df40]
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 [0x6a59d7b8]
mov word [rdx + 8], ax
movzx eax, byte [0x6a59d7ba]
mov byte [rdx + 0xa], al
mov qword [rbx + 0x10], rcx
je 0x6a56aa20
mov rax, qword [rsp + 0x38]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rax
mov rax, qword [str.__Zj]
mov qword [rsp + 0x20], rax
jmp 0x6a56a395
mov rdi, qword [rsp + 0x60]
cmp qword [rsp + 0x30], rdi
jge 0x6a56a4aa
mov rax, qword [0x6a5a27c0]
lea rdi, [rsp + 0xe0]
mov qword [rsp + 0xc0], rsp
mov r8, 0xffffffffffffffff
mov qword [rsp + 0xb0], rdi
mov rdi, qword [rsp + 0x30]
lea rsi, [0x6a56a360]
xor edx, edx
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0xa0]
mov qword [0x6a5a27c0], rax
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + rdi*8 + 0x10]
call fcn.6a568440
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
xor ecx, ecx
mov qword [rsp + 0x28], rax
call qword [fcn.6a56fb60]
cmp qword [rsp + 0x28], rax
je 0x6a56a487
mov rcx, qword [rsp + 0x28]
call fcn.6a56f560
mov rcx, qword [rsp + 0x28]
mov r8d, 2
xor edx, edx
mov qword [rsp + 0x40], rax
call fcn.6a56f7b0
mov rcx, qword [rsp + 0x28]
call fcn.6a56f560
mov rdx, qword [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x28]
call fcn.6a56f7b0
mov rax, qword [rsp + 0x38]
test rax, rax
jg 0x6a56aa50
mov rcx, qword [rsp + 0x28]
call fcn.6a569210
mov qword [rsp + 0x80], rax
mov rax, qword [0x6a5a27c0]
mov rax, qword [rax]
mov qword [0x6a5a27c0], 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 0x6a56a960
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 0x6a56a4f0
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rsp + 0x28]
jo 0x6a56ab79
add rax, rdx
mov qword [rsp + 0x50], rax
jo 0x6a56a990
mov rax, qword [rsp + 0x50]
mov rcx, qword [0x6a59e7c0]
lea rdx, [rax + 0x10]
call fcn.6a55f100
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 0x6a56a54c
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 0x6a56a720
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 0x6a56aa70
mov rsi, qword [rsp + 0x28]
lea rax, [rsi - 1]
cmp rax, 0xe
jbe 0x6a56aa70
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 0x6a56a5c0
mov rbx, qword [rsp + 0x28]
mov rax, rbx
and rax, 0xfffffffffffffff0
cmp rax, rbx
je 0x6a56a720
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 0x6a56a720
movzx ecx, byte [rdi + rax + 1]
lea rdx, [rax + 2]
cmp rdx, rbx
mov byte [rsi + rax + 0x11], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 2]
lea rdx, [rax + 3]
cmp rdx, rbx
mov byte [rsi + rax + 0x12], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 3]
lea rdx, [rax + 4]
cmp rdx, rbx
mov byte [rsi + rax + 0x13], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 4]
lea rdx, [rax + 5]
cmp rdx, rbx
mov byte [rsi + rax + 0x14], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 5]
lea rdx, [rax + 6]
cmp rdx, rbx
mov byte [rsi + rax + 0x15], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 6]
lea rdx, [rax + 7]
cmp rdx, rbx
mov byte [rsi + rax + 0x16], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 7]
lea rdx, [rax + 8]
cmp rdx, rbx
mov byte [rsi + rax + 0x17], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 8]
lea rdx, [rax + 9]
cmp rdx, rbx
mov byte [rsi + rax + 0x18], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 9]
lea rdx, [rax + 0xa]
cmp rdx, rbx
mov byte [rsi + rax + 0x19], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 0xa]
lea rdx, [rax + 0xb]
cmp rdx, rbx
mov byte [rsi + rax + 0x1a], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 0xb]
lea rdx, [rax + 0xc]
cmp rdx, rbx
mov byte [rsi + rax + 0x1b], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 0xc]
lea rdx, [rax + 0xd]
cmp rdx, rbx
mov byte [rsi + rax + 0x1c], cl
jge 0x6a56a720
movzx ecx, byte [rdi + rax + 0xd]
lea rdx, [rax + 0xe]
cmp rdx, rbx
mov byte [rsi + rax + 0x1d], cl
jge 0x6a56a720
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 0x6a56a9a0
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 0x6a56a76c
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rsp + 0x28]
jo 0x6a56ab7e
add rax, rdx
mov qword [rsp + 0x38], rax
jo 0x6a56aa40
mov rax, qword [rsp + 0x38]
mov rcx, qword [0x6a59e7c0]
lea rdx, [rax + 0x10]
call fcn.6a55f100
cmp qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
lea rcx, [rax + 0x10]
mov qword [rax + 8], 1
jle 0x6a56a7c0
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, 0x5ef9db68
lea rcx, [0x6a59d6c0]
movups xmmword [rax + 0x10], xmm0
call fcn.6a55fbd0
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, 0x6b5464a8
lea rcx, [0x6a59d5a0]
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.6a55fbd0
lea rcx, [0x6a59d4e0]
mov edx, 0x1dda7468
call fcn.6a55fbd0
lea rcx, [0x6a59d3e0]
mov edx, 0x66e53fa8
call fcn.6a55fbd0
lea rcx, [0x6a59d260]
mov edx, 0x22e33568
call fcn.6a55fbd0
lea rcx, [0x6a59d080]
mov edx, 0x53ad12a8
call fcn.6a55fbd0
call fcn.6a563040
lea rcx, [0x6a59ce80]
mov edx, 0x2653dba8
call fcn.6a55fbd0
lea rcx, [0x6a59cd80]
mov edx, 0x7e02c968
call fcn.6a55fbd0
lea rcx, [0x6a59ccc0]
mov edx, 0x46630ea8
call fcn.6a55fbd0
mov rax, qword [rsp + 0x48]
lea rbx, [fcn.6a566360]
xor edx, edx
mov qword [rsp + 0x90], rbx
test rax, rax
mov qword [rsp + 0x98], rax
mov rcx, qword [rax + 0x30]
je 0x6a56aab0
test rcx, rcx
je 0x6a56a8df
mov rdx, qword [rcx]
mov r8, qword [rsp + 0x48]
add rcx, 0x10
call fcn.6a566360
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 0x6a56a4e6
mov qword [rsp + 0x50], 0x10
jmp 0x6a56a50a
call fcn.6a565830
nop
nop word cs:[rax + rax]
mov qword [rsp + 0x28], 0
test rcx, rcx
mov rax, qword [rax]
jne 0x6a56a762
mov qword [rsp + 0x38], 0x10
jmp 0x6a56a786
mov rax, qword [str.__Zj]
mov qword [rsp + 0x20], rax
call fcn.6a565830
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 0x6a569e74
mov qword [rsp + 0x60], 0
mov rax, qword [str.__Zj]
mov qword [rsp + 0x20], rax
jmp 0x6a56a4aa
call fcn.6a565830
nop
nop word cs:[rax + rax]
mov rcx, qword [rsp + 0x28]
mov rdx, rax
call fcn.6a569a20
jmp 0x6a56a491
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 0x6a56aa80
jmp 0x6a56a720
test rcx, rcx
je 0x6a56aab8
mov rdx, qword [rcx]
add rcx, 0x10
call fcn.6a566360
jmp 0x6a56a8ee
mov rax, qword [str.__Zj]
mov edx, 0x1000
mov rcx, qword [0x6a59e7c0]
mov qword [rsp + 0x20], rax
call fcn.6a55ec10
mov rbx, qword [0x6a59e7c0]
mov qword [rax + 0x20], 0
movdqa xmm0, xmmword [0x6a59df30]
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 0x6a56ab2c
mov qword [rdx + 0x18], rax
mov rsi, qword [0x6a59e7c0]
lea rdx, [rax + 0x40]
mov qword [rsp + 0x28], rdx
mov qword [rsi + 0x218], rax
cmp qword [rax + 0x28], 0x40f
jg 0x6a569ec5
mov rcx, qword [rax + 0x10]
mov rsi, qword [0x6a59e7c0]
test rcx, rcx
mov qword [rsi + 0x218], rcx
je 0x6a569ebd
mov qword [rcx + 0x18], 0
jmp 0x6a569ebd
call fcn.6a565830
call fcn.6a565830
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 0x6a56abc1
mov rcx, rdi
call sub.msvcrt.dll_ferror
test eax, eax
jne 0x6a56abcc
mov rax, rsi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
mov rcx, rdi
call fcn.6a568a50
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 0x6a56aee1
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 0x6a56b000
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 0x6a56b010
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 0x6a56b020
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 0x6a56b030
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 0x6a56afd0
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 0x6a56b040
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 0x6a56b070
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 0x6a56b080
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 0x6a56afa0
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 0x6a56afbb
mov rdx, qword [rcx]
lea rdi, [rdx + 0x10]
add rdx, rbx
call fcn.6a560ff0
lea r8, [rsp + rbp + 0x20]
mov qword [rsi], rax
add rax, rdi
cmp ebx, 8
jae 0x6a56af60
test bl, 4
jne 0x6a56afe0
test ebx, ebx
je 0x6a56af56
movzx edx, byte [r8]
test bl, 2
mov byte [rax], dl
jne 0x6a56b050
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 0x6a56af56
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 0x6a56af79
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 0x6a56af1b
mov rdx, rbx
mov edi, 0x10
jmp 0x6a56af25
mov rcx, rdi
mov ebp, 0xd
jmp 0x6a56aee1
mov edx, dword [r8]
mov ebx, ebx
mov dword [rax], edx
mov edx, dword [r8 + rbx - 4]
mov dword [rax + rbx - 4], edx
jmp 0x6a56af56
mov rcx, rdi
mov ebp, 0x15
jmp 0x6a56aee1
mov rcx, rbx
mov ebp, 0x13
jmp 0x6a56aee1
mov rcx, rdi
mov ebp, 0x11
jmp 0x6a56aee1
mov rcx, rbx
mov ebp, 0xf
jmp 0x6a56aee1
mov rcx, rbx
mov ebp, 0xb
jmp 0x6a56aee1
mov ebx, ebx
movzx edx, word [r8 + rbx - 2]
mov word [rax + rbx - 2], dx
jmp 0x6a56af56
mov rcx, r9
mov ebp, 9
jmp 0x6a56aee1
mov rcx, r10
mov ebp, 7
jmp 0x6a56aee1