Function at 0x140009bb0
Capabilities:
Read file on windows

Disassembly:
mov byte [rsp + 0x20], r9b
push rbx
push rdi
sub rsp, 0x68
test rcx, rcx
mov word [r8 + 0x10], 0
lea rax, str._etc_localtime
mov rbx, r8
cmovne rax, rcx
cmp byte [rax], 0x3a
lea rcx, [rax + 1]
cmovne rcx, rax
call fcn.1400011e0
mov edi, eax
test eax, eax
jns 0x140009bf5
mov eax, 2
add rsp, 0x68
pop rdi
pop rbx
ret
mov qword [rsp + 0x48], r14
mov r8d, 0xd6b8
mov r14, qword [rsp + 0xa0]
mov ecx, edi
mov rdx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
cdqe
mov qword [rsp + 0x30], rax
cmp rax, 0x2c
jge 0x140009c5e
test rax, rax
jns 0x140009c43
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, edi
mov ebx, dword [rax]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__close]
mov r14, qword [rsp + 0x48]
mov eax, ebx
add rsp, 0x68
pop rdi
pop rbx
ret
mov ecx, edi
mov ebx, 0x16
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__close]
mov r14, qword [rsp + 0x48]
mov eax, ebx
add rsp, 0x68
pop rdi
pop rbx
ret
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__close]
test eax, eax
jns 0x140009c7e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov r14, qword [rsp + 0x48]
mov eax, dword [rax]
add rsp, 0x68
pop rdi
pop rbx
ret
mov qword [rsp + 0x88], rbp
lea r8, [r14 + 0x2c]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], r12
mov r12d, 4
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x40], r15
nop dword [rax]
movsx edx, byte [r14 + 0x18]
movzx eax, byte [r14 + 0x19]
mov ecx, edx
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x15]
test dl, dl
movsx edx, byte [r14 + 0x14]
lea esi, [rcx - 0x80000000]
cmovns esi, ecx
mov ecx, edx
and ecx, 0x7f
mov dword [rsp + 0x90], esi
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x1d]
test dl, dl
movsx edx, byte [r14 + 0x1c]
lea ebp, [rcx - 0x80000000]
cmovns ebp, ecx
mov ecx, edx
and ecx, 0x7f
mov dword [rsp + 0x20], ebp
shl ecx, 8
xor r13d, r13d
or ecx, eax
xor r15d, r15d
movzx eax, byte [r14 + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x21]
test dl, dl
movsx edx, byte [r14 + 0x20]
lea r11d, [rcx - 0x80000000]
cmovns r11d, ecx
mov ecx, edx
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x25]
test dl, dl
movsx edx, byte [r14 + 0x24]
lea edi, [rcx - 0x80000000]
cmovns edi, ecx
mov ecx, edx
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x27]
shl ecx, 8
or ecx, eax
test dl, dl
movsx edx, byte [r14 + 0x28]
lea r9d, [rcx - 0x80000000]
cmovns r9d, ecx
mov ecx, edx
movzx eax, byte [r14 + 0x29]
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [r14 + 0x2b]
shl ecx, 8
or ecx, eax
test dl, dl
mov rdx, r8
lea r10d, [rcx - 0x80000000]
cmovns r10d, ecx
cmp r11d, 0x31
ja 0x14000a779
cmp r9d, 0xff
ja 0x14000a779
cmp edi, 0x7cf
ja 0x14000a779
cmp r10d, 0x31
ja 0x14000a779
cmp esi, r9d
je 0x140009e36
test esi, esi
jne 0x14000a779
cmp ebp, r9d
je 0x140009e43
test ebp, ebp
jne 0x14000a779
lea r14d, [r12 + 4]
mov ecx, r14d
mov dword [rsp + 0x80], r14d
imul ecx, r11d
lea r8d, [r12 + 1]
imul r8d, edi
lea eax, [r9 + 0xb]
lea eax, [r9 + rax*2]
add ecx, r10d
add ecx, r8d
lea eax, [rcx + rax*2]
add eax, ebp
add eax, esi
movsxd rcx, eax
cmp qword [rsp + 0x30], rcx
jl 0x14000a779
mov dword [rbx + 0xc], r10d
xor ebp, ebp
xor r10d, r10d
mov dword [rbx], r11d
xor esi, esi
mov dword [rbx + 4], edi
mov dword [rbx + 8], r9d
test edi, edi
jle 0x140009fb7
lea rax, [rbx + 0x10]
mov r9, rax
lea r11, [rbx + 0x18]
nop dword [rax + rax]
movzx edi, byte [rdx]
movzx eax, byte [rdx + 1]
movzx r8d, byte [rdx + 2]
movzx r14d, byte [rdx + 3]
cmp r12d, 4
jne 0x140009ef9
movzx eax, al
movsx ecx, dil
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, r8b
shl ecx, 8
or ecx, eax
movzx eax, r14b
shl ecx, 8
or ecx, eax
test dil, dil
lea eax, [rcx - 0x80000000]
cmovns eax, ecx
movsxd r8, eax
jmp 0x140009f60
movzx eax, al
movsx rcx, dil
and ecx, 0x7f
shl rcx, 8
or rcx, rax
movzx eax, r8b
shl rcx, 8
movabs r8, 0x8000000000000000
or rcx, rax
movzx eax, r14b
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdx + 7]
shl rcx, 8
or rcx, rax
add r8, rcx
test dil, dil
cmovns r8, rcx
mov byte [rsi + rbx + 0x3e98], 1
test r10, r10
je 0x140009f8b
cmp r8, qword [r9]
jg 0x140009f8b
jl 0x14000a779
dec r10
mov byte [rsi + rbx + 0x3e97], r13b
sub r9, 8
sub r11, 8
mov qword [r11], r8
inc r10
mov edi, dword [rbx + 4]
add r9, 8
movsxd rax, r12d
add r11, 8
add rdx, rax
inc ebp
inc rsi
cmp ebp, edi
jl 0x140009eb0
mov r14d, dword [rsp + 0x80]
xor r11d, r11d
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
test edi, edi
jle 0x14000a008
nop word [rax + rax]
movzx r10d, byte [rdx]
inc rdx
mov eax, r10d
cmp dword [rbx + 8], r10d
jle 0x14000a779
cmp byte [rcx + rbx + 0x3e98], r13b
je 0x140009ffc
inc r11d
mov byte [r9 + rbx + 0x3e98], r10b
inc r9
inc r8d
inc rcx
cmp r8d, dword [rbx + 4]
jl 0x140009fd0
xor r10d, r10d
mov dword [rbx + 4], r11d
cmp dword [rbx + 8], r10d
jle 0x14000a08d
lea r9, [rbx + 0x4670]
nop dword [rax]
movsx r8d, byte [rdx]
movzx eax, byte [rdx + 1]
mov ecx, r8d
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
test r8b, r8b
lea eax, [rcx - 0x80000000]
cmovns eax, ecx
mov dword [r9 - 8], eax
movzx eax, byte [rdx + 4]
cmp al, 2
jae 0x14000a779
test al, al
setne al
mov byte [r9 - 4], al
movzx eax, byte [rdx + 5]
add rdx, 6
mov ecx, eax
cmp eax, dword [rbx + 0xc]
jge 0x14000a779
mov dword [r9], eax
inc r10d
add r9, 0x10
cmp r10d, dword [rbx + 8]
jl 0x14000a020
xor r8d, r8d
xor ecx, ecx
cmp dword [rbx + 0xc], ecx
jle 0x14000a0b9
nop word [rax + rax]
movzx eax, byte [rdx]
inc r8d
mov byte [rcx + rbx + 0x5668], al
inc rdx
inc rcx
cmp r8d, dword [rbx + 0xc]
jl 0x14000a0a0
xor ebp, ebp
mov byte [rcx + rbx + 0x5668], r13b
xor esi, esi
cmp dword [rbx], esi
jle 0x14000a22d
movsxd r14, r14d
lea rdi, [rbx + 0x5870]
lea r9, [rdx + 2]
nop dword [rax + rax]
cmp qword [rsp + 0x28], 4
movzx r8d, byte [rdx]
movzx eax, byte [r9 - 1]
movzx r10d, byte [r9]
movzx r11d, byte [r9 + 1]
jne 0x14000a12c
movzx eax, al
movsx ecx, r8b
and ecx, 0x7f
shl ecx, 8
or ecx, eax
movzx eax, r10b
shl ecx, 8
or ecx, eax
movzx eax, r11b
shl ecx, 8
or ecx, eax
test r8b, r8b
lea eax, [rcx - 0x80000000]
cmovns eax, ecx
movsxd r10, eax
jmp 0x14000a197
movzx eax, al
movsx rcx, r8b
and ecx, 0x7f
shl rcx, 8
or rcx, rax
movzx eax, r10b
shl rcx, 8
movabs r10, 0x8000000000000000
or rcx, rax
movzx eax, r11b
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 5]
shl rcx, 8
or rcx, rax
add r10, rcx
test r8b, r8b
cmovns r10, rcx
mov r11, qword [rsp + 0x28]
movsx r8d, byte [r11 + r9 - 2]
movzx ecx, byte [r11 + r9 - 1]
mov eax, r8d
and eax, 0x7f
shl eax, 8
or ecx, eax
movzx eax, byte [r11 + r9]
shl ecx, 8
or ecx, eax
movzx eax, byte [r11 + r9 + 1]
shl ecx, 8
or ecx, eax
test r8b, r8b
lea r11d, [rcx - 0x80000000]
cmovns r11d, ecx
add rdx, r14
add r9, r14
test r10, r10
js 0x14000a779
mov rax, r10
sub rax, r13
cmp rax, 0x24e9ff
jl 0x14000a779
lea eax, [r15 - 1]
cmp r11d, eax
je 0x14000a20d
lea eax, [r15 + 1]
cmp r11d, eax
jne 0x14000a779
mov qword [rdi - 8], r10
inc ebp
movsxd rax, r11d
inc esi
mov qword [rdi], rax
mov r13, r10
add rdi, 0x10
mov r15d, r11d
cmp esi, dword [rbx]
jl 0x14000a0e0
mov eax, dword [rbx + 8]
xor r9d, r9d
mov dword [rbx], ebp
mov ecx, eax
test eax, eax
jle 0x14000a280
mov r10d, dword [rsp + 0x90]
lea r8, [rbx + 0x4674]
nop word [rax + rax]
test r10d, r10d
jne 0x14000a259
xor al, al
jmp 0x14000a26c
movzx eax, byte [rdx]
cmp al, 1
ja 0x14000a779
inc rdx
test al, al
setne al
mov byte [r8], al
inc r9d
mov eax, dword [rbx + 8]
add r8, 0x10
mov ecx, eax
cmp r9d, eax
jl 0x14000a250
xor r8d, r8d
test eax, eax
jle 0x14000a2c1
mov r9d, dword [rsp + 0x20]
lea rax, [rbx + 0x4675]
test r9d, r9d
jne 0x14000a29c
xor cl, cl
jmp 0x14000a2b0
movzx ecx, byte [rdx]
cmp cl, 1
ja 0x14000a779
inc rdx
test cl, cl
setne cl
mov byte [rax], cl
inc r8d
mov ecx, dword [rbx + 8]
add rax, 0x10
cmp r8d, ecx
jl 0x14000a293
mov r14, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x30]
cmp byte [r14 + 4], 0
je 0x14000a312
mov rax, r14
mov rcx, r14
sub rax, rdx
add rsi, rax
mov r8, rsi
mov qword [rsp + 0x30], rsi
call sub.VCRUNTIME140.dll_memmove
mov r8, qword [rsp + 0x28]
lea eax, [r12 + r12]
add r8, r8
mov r12d, eax
mov qword [rsp + 0x28], r8
lea r8, [r14 + 0x2c]
cmp eax, 8
jle 0x140009cb0
mov ecx, dword [rbx + 8]
cmp rsi, 2
jle 0x14000a5e0
cmp byte [rsp + 0x98], 0
je 0x14000a5e0
cmp byte [r14], 0xa
jne 0x14000a5e0
cmp byte [rsi + r14 - 1], 0xa
jne 0x14000a5e0
lea eax, [rcx + 2]
cmp eax, 0x100
jg 0x14000a5e0
lea rdi, [r14 + 0xd6b8]
mov byte [rsi + r14 - 1], 0
mov rdx, rdi
lea rcx, [r14 + 1]
xor r8d, r8d
call fcn.140008230
test al, al
je 0x14000a5e0
mov eax, dword [rdi + 8]
xor ebp, ebp
mov r11d, dword [rbx + 0xc]
xor r14d, r14d
test eax, eax
jle 0x14000a450
lea rsi, [rdi + 0x4670]
nop dword [rax]
movsxd rax, dword [rsi]
lea r9, [rdi + 0x5668]
add r9, rax
xor r10d, r10d
test r11d, r11d
jle 0x14000a3ee
nop word [rax + rax]
movsxd rax, r10d
lea rcx, [rbx + 0x5668]
add rcx, rax
mov r8, r9
sub r8, rcx
movzx edx, byte [rcx]
movzx eax, byte [rcx + r8]
sub edx, eax
jne 0x14000a3d6
inc rcx
test eax, eax
jne 0x14000a3c3
test edx, edx
je 0x14000a3e4
inc r10d
cmp r10d, r11d
jl 0x14000a3b0
jmp 0x14000a3ee
inc ebp
mov dword [rsi], r10d
cmp r10d, r11d
jl 0x14000a43d
mov rax, 0xffffffffffffffff
nop word [rax + rax]
cmp byte [r9 + rax + 1], 0
lea rax, [rax + 1]
jne 0x14000a400
lea edx, [rax + r10]
cmp edx, 0x32
jge 0x14000a43d
movsxd rcx, r10d
sub rcx, r9
add rcx, rbx
nop
movzx eax, byte [r9]
mov byte [rcx + r9 + 0x5668], al
lea r9, [r9 + 1]
test al, al
jne 0x14000a420
lea r11d, [rdx + 1]
mov dword [rsi], r10d
inc ebp
mov eax, dword [rdi + 8]
inc r14d
add rsi, 0x10
cmp r14d, eax
jl 0x14000a390
cmp ebp, eax
jne 0x14000a5e0
mov r8d, dword [rbx + 4]
mov dword [rbx + 0xc], r11d
cmp r8d, 1
jle 0x14000a495
mov edx, r8d
nop dword [rax]
movsxd rcx, edx
movzx eax, byte [rcx + rbx + 0x3e96]
cmp byte [rcx + rbx + 0x3e97], al
jne 0x14000a495
lea r8d, [rdx - 1]
mov dword [rbx + 4], r8d
mov edx, r8d
cmp r8d, 1
jg 0x14000a470
movsxd r12, dword [rdi + 4]
xor r9d, r9d
test r12d, r12d
jle 0x14000a50f
movsxd rax, r8d
lea r11, [rdi + 0x18]
xor esi, esi
mov r15, rdi
sub r15, r11
lea r14, [rbx + rax*8]
test r8d, r8d
je 0x14000a50f
movsxd rax, dword [rbx]
test eax, eax
jle 0x14000a4f3
mov r10, qword [r11]
lea rcx, [rax - 1]
mov rax, rcx
lea rdx, [rbx + 0x5868]
shl rax, 4
add rdx, rax
nop dword [rax + rax]
cmp r10, qword [rdx]
jge 0x14000a69f
sub rdx, 0x10
sub rcx, 1
jns 0x14000a4e0
xor ecx, ecx
add rcx, qword [r15 + r11 + 0x18]
cmp qword [r14 + 0x10], rcx
jl 0x14000a50f
inc r9d
inc rsi
add r11, 8
cmp rsi, r12
jl 0x14000a4b4
cmp r9d, r12d
jge 0x14000a5a7
mov edx, dword [rbx + 4]
lea rcx, [rdi + 0x18]
movsxd r11, r9d
mov rsi, rdi
sub rsi, rcx
lea r10, [rcx + r11*8]
nop dword [rax]
cmp edx, 0x7d0
jge 0x14000a5a7
movsxd rax, dword [rbx]
test eax, eax
jle 0x14000a56a
mov r8, qword [r10]
lea rcx, [rax - 1]
mov rax, rcx
lea rdx, [rbx + 0x5868]
shl rax, 4
add rdx, rax
cmp r8, qword [rdx]
jge 0x14000a6a8
sub rdx, 0x10
sub rcx, 1
jns 0x14000a557
xor ecx, ecx
add rcx, qword [r10 + rsi + 0x18]
inc r9d
movsxd rax, dword [rbx + 4]
add r10, 8
mov qword [rbx + rax*8 + 0x18], rcx
movzx ecx, byte [r11 + rdi + 0x3e98]
inc r11
movsxd rax, dword [rbx + 4]
add cl, byte [rbx + 8]
mov byte [rax + rbx + 0x3e98], cl
inc dword [rbx + 4]
mov edx, dword [rbx + 4]
cmp r9d, dword [rdi + 4]
jl 0x14000a530
xor edx, edx
cmp dword [rdi + 8], edx
jle 0x14000a5e0
lea rcx, [rdi + 0x4668]
nop word [rax + rax]
movsxd rax, dword [rbx + 8]
inc edx
add rax, rax
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x10]
movups xmmword [rbx + rax*8 + 0x4668], xmm0
inc dword [rbx + 8]
cmp edx, dword [rdi + 8]
jl 0x14000a5c0
movsxd r14, dword [rbx + 8]
test r14d, r14d
je 0x14000a779
mov r11d, dword [rbx + 4]
cmp r11d, 1
jle 0x14000a6be
movzx ebp, byte [rbx + 0x3e98]
lea rsi, [rbx + 0x3e99]
mov r10d, 1
lea rdi, [rbx + 0x20]
movabs r15, 0x2f0605980
nop dword [rax]
movzx edx, byte [rsi]
mov r8d, ebp
mov rcx, rbx
call fcn.140009ae0
test al, al
je 0x14000a63e
mov rax, qword [rdi]
sub rax, qword [rbx + 0x18]
cmp rax, r15
je 0x14000a6b1
inc r10d
add rdi, 8
inc rsi
cmp r10d, r11d
jl 0x14000a620
mov eax, r11d
lea ecx, [rax - 2]
test ecx, ecx
js 0x14000a6be
cdqe
lea rdi, [rbx + 0x18]
movsxd r10, ecx
movzx ebp, byte [rax + rbx + 0x3e97]
lea rsi, [rbx + rax*8]
lea rdi, [rdi + r10*8]
movzx r8d, byte [r10 + rbx + 0x3e98]
mov edx, ebp
mov rcx, rbx
call fcn.140009ae0
test al, al
je 0x14000a693
mov rax, qword [rsi + 0x10]
sub rax, qword [rdi]
cmp rax, r15
je 0x14000a6ba
sub rdi, 8
sub r10, 1
jns 0x14000a670
jmp 0x14000a6be
mov rcx, qword [rdx + 8]
jmp 0x14000a4f5
mov rcx, qword [rdx + 8]
jmp 0x14000a56c
mov eax, dword [rbx + 4]
mov byte [rbx + 0x10], 1
jmp 0x14000a650
mov byte [rbx + 0x11], 1
xor eax, eax
test r11d, r11d
jle 0x14000a6df
lea rcx, [rbx + 0x3e98]
nop dword [rax]
cmp byte [rcx], 0
je 0x14000a6df
inc eax
inc rcx
cmp eax, r11d
jl 0x14000a6d0
xor ecx, ecx
cmp eax, r11d
setge cl
dec ecx
cmp eax, r11d
jge 0x14000a735
test r11d, r11d
jle 0x14000a735
movzx edx, byte [rbx + 0x3e98]
mov eax, edx
add rax, rax
cmp byte [rbx + rax*8 + 0x466c], 0
je 0x14000a735
lea ecx, [rdx - 1]
sub rdx, 1
js 0x14000a735
mov rax, rdx
lea r8, [rbx + 0x466c]
shl rax, 4
add r8, rax
cmp byte [r8], 0
je 0x14000a735
dec ecx
sub r8, 0x10
sub rdx, 1
jns 0x14000a723
test ecx, ecx
jns 0x14000a76f
xor ecx, ecx
lea rax, [rbx + 0x466c]
cmp byte [rax], cl
je 0x14000a76f
xor edx, edx
nop dword [rax + rax]
inc ecx
lea rax, [rax + 0x10]
inc rdx
cmp rdx, r14
jge 0x14000a76d
cmp byte [rax], 0
jne 0x14000a750
mov dword [rbx + 0x5b88], ecx
xor eax, eax
jmp 0x14000a77e
xor ecx, ecx
mov dword [rbx + 0x5b88], ecx
xor eax, eax
jmp 0x14000a77e
mov eax, 0x16
mov rbp, qword [rsp + 0x88]
mov r13, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x68
pop rdi
pop rbx
ret