Function at 0x14000fc20
Capabilities:
Read file on windows

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov rdi, rcx
mov dword [rbp - 0x19], 1
lea rcx, [0x14002886c]
mov dword [rbp - 0x15], 1
mov r13d, edx
mov dword [rbp - 0x1d], 0x3b
call fcn.14000e8a0
mov r9, qword [rdi + 0x90]
xor esi, esi
mov dword [rbp - 0x21], esi
mov r12d, 1
mov dword [rbp - 0x2d], r12d
mov r15, rax
mov dword [rbp - 0x39], r12d
mov r14d, esi
mov dword [rbp - 0x3d], esi
test r9, r9
je 0x14001034e
mov qword [rbp - 0x49], r9
movzx esi, word [r9]
cmp si, 0x22
jne 0x14001ad68
add r9, 2
mov qword [rbp - 0x49], r9
test r9, r9
je 0x14001034c
movzx eax, word [r9]
test ax, ax
je 0x14000fe4c
cmp ax, 0x20
jbe 0x1400102b9
cmp word [r9], si
je 0x14000fe4c
mov r8d, 8
lea rdx, str.usebackq
mov rcx, r9
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
je 0x14001060c
mov rcx, qword [rbp - 0x49]
lea rdx, str.useback
mov r8d, 7
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
je 0x14001ad7c
mov rcx, qword [rbp - 0x49]
lea rdx, str.eol
mov r8d, 4
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
je 0x1400105e1
mov rcx, qword [rbp - 0x49]
lea rdx, str.delims
mov r8d, 7
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
je 0x140010217
mov rcx, qword [rbp - 0x49]
lea rdx, str.skip
mov r8d, 5
call qword [sym.imp.msvcrt.dll__wcsnicmp]
mov rcx, qword [rbp - 0x49]
test eax, eax
je 0x14001065d
mov r8d, 7
lea rdx, str.tokens
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
jne 0x14001ad93
mov r9, qword [rbp - 0x49]
xor eax, eax
add r9, 0xe
mov dword [rbp - 0x39], eax
mov qword [rbp - 0x49], r9
mov edi, eax
movzx eax, word [r9]
test ax, ax
je 0x14000fe38
cmp ax, si
je 0x14000fe38
cmp ax, 0x2a
je 0x1400105fa
xor r8d, r8d
lea rdx, [rbp - 0x49]
mov rcx, r9
call qword [sym.imp.msvcrt.dll_wcstol]
mov ebx, eax
test eax, eax
jle 0x14001ad93
mov r9, qword [rbp - 0x49]
cmp word [r9], 0x2d
je 0x14001035a
mov edx, eax
cmp edx, 0x20
jge 0x14000fe20
cmp ebx, edx
jg 0x14000fe20
mov r13d, dword [rbp - 0x39]
mov eax, edx
sub eax, ebx
inc edi
add edi, eax
lea ecx, [rbx - 1]
mov eax, 1
shl eax, cl
inc ebx
or r13d, eax
cmp ebx, edx
jle 0x14000fe05
mov dword [rbp - 0x39], r13d
mov r13d, dword [rbp + 0x6f]
movzx eax, word [r9]
cmp ax, 0x2c
je 0x1400102d3
cmp ax, 0x2a
je 0x1400102db
cmp edi, r12d
jle 0x140010284
mov r12d, edi
mov dword [rbp - 0x2d], edi
jmp 0x140010284
cmp r12d, 1
jle 0x140010348
mov rcx, qword [0x14002f6e8]
lea ebx, [r12 + r13]
lea edx, [rbx*2 + 2]
call fcn.14000d360
mov rcx, qword [0x14002f6f0]
lea edx, [rbx*8 + 8]
mov qword [0x14002f6e8], rax
call fcn.14000d360
mov rdx, qword [0x14002f6e8]
mov r9, rax
mov qword [0x14002f6f0], rax
test rdx, rdx
je 0x14001adb0
test rax, rax
je 0x14001adb0
mov rdi, qword [rbp + 0x67]
mov r8d, 1
xor esi, esi
cmp r12d, r8d
jle 0x14000feec
lea eax, [r13 + 1]
cdqe
lea rcx, [r9 + rax*8]
lea r9, [rdx + rax*2]
movzx eax, r8w
lea rcx, [rcx + 8]
add ax, word [rdi + 0x88]
inc r8d
mov word [r9], ax
add r9, 2
mov qword [rcx - 8], rsi
cmp r8d, r12d
jl 0x14000fec9
lea eax, [r8 + r13]
movsxd rcx, eax
mov word [rdx + rcx*2], si
mov r12, qword [rdi + 0x78]
mov qword [rbp - 0x29], r12
test r14d, r14d
jne 0x140010623
mov eax, 0x27
mov r8d, 0x22
movzx r9d, ax
mov dword [rbp - 0x35], r8d
mov dword [rbp - 0x31], r9d
test r12, r12
je 0x140010316
movzx eax, word [r12]
cmp ax, r8w
jne 0x14001030c
cmp word [r12], 0
mov dword [rbp + 0x77], esi
je 0x1400101d9
cmp byte [0x140030350], 0
mov r10d, 0xa
jne 0x1400101d5
call fcn.140011bf8
cmp dword [0x14002f70c], 0
jne 0x14001adc2
mov qword [rbp - 0x49], rsi
or r13, 0xffffffffffffffff
mov qword [rbp + 7], rsi
mov esi, dword [rbp - 0x21]
mov dword [rbp + 0x7f], esi
nop dword [rax]
inc r13
cmp word [r12 + r13*2], 0
jne 0x14000ff80
movzx edx, word [r12]
mov qword [rbp - 9], r13
cmp dx, r9w
je 0x14001037e
cmp dx, r8w
jne 0x14001051a
cmp r13d, 1
jle 0x14001051a
lea eax, [r13 - 1]
movsxd rcx, eax
cmp word [r12 + rcx*2], r8w
jne 0x14001051a
sub r13d, 2
mov word [r12 + rcx*2], r10w
add r12, 2
movsxd rdi, r13d
inc rdi
mov qword [rbp - 0x29], r12
mov qword [rbp - 9], r13
xor r14d, r14d
mov qword [rbp - 0x49], r12
lea rdi, [r12 + rdi*2]
mov qword [rbp - 0x11], rdi
cmp qword [rbp - 0x49], rdi
jae 0x1400101a5
mov r13d, dword [rbp - 0x2d]
mov r12d, dword [rbp + 0x77]
cmp byte [0x140030350], 0
jne 0x140010199
cmp dword [0x14002f70c], 0
jne 0x14001ae0c
mov rbx, qword [rbp - 0x49]
mov edx, r10d
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_wcschr]
mov qword [rbp - 0x49], rax
test rax, rax
je 0x140010199
cmp rax, rbx
jbe 0x14001004c
cmp word [rax - 2], 0xd
jne 0x14001004c
mov word [rax - 2], r14w
mov rax, qword [rbp - 0x49]
mov word [rax], r14w
add qword [rbp - 0x49], 2
test esi, esi
jne 0x140010653
cmp r13d, 1
jg 0x140010292
xor eax, eax
mov esi, r14d
mov qword [rbp - 1], rax
cmp word [rbx], ax
je 0x140010304
cmp word [rbx], 0
mov eax, 1
mov dword [rbp + 0x77], eax
je 0x140010113
jmp 0x1400100fb
movzx edx, word [rbx]
mov rcx, r15
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
jne 0x1400100aa
add rbx, 2
cmp word [rbx], ax
jne 0x140010090
cmp rdi, rbx
je 0x1400100e3
cmp esi, 0x20
jge 0x1400100e3
mov ecx, dword [rbp - 0x39]
mov eax, esi
inc esi
bt ecx, eax
jae 0x1400100e3
mov rdx, qword [rbp - 1]
inc r14d
movsxd rcx, dword [rbp + 0x6f]
mov rax, qword [0x14002f6f0]
add rcx, rdx
inc dword [rbp + 0x77]
inc rdx
mov qword [rbp - 1], rdx
mov qword [rax + rcx*8], rdi
cmp word [rbx], 0
je 0x1400100f2
xor eax, eax
mov word [rbx], ax
add rbx, 2
cmp word [rbx], 0
mov eax, dword [rbp + 0x77]
je 0x140010151
movzx edx, word [rbx]
mov rcx, r15
call qword [sym.imp.msvcrt.dll_wcschr]
test rax, rax
jne 0x1400102ed
mov eax, dword [rbp + 0x77]
test esi, esi
je 0x14001012d
mov edx, dword [rbp - 0x3d]
mov rdi, rbx
test edx, edx
jne 0x140010137
cmp word [rbx], 0
jne 0x140010090
jmp 0x140010151
mov ecx, dword [rbp - 0x1d]
cmp word [rbx], cx
jne 0x140010117
jmp 0x140010151
cmp eax, edx
jne 0x140010121
movsxd r8, dword [rbp + 0x6f]
add r8, qword [rbp - 1]
mov rax, qword [0x14002f6f0]
inc r14d
mov qword [rax + r8*8], rbx
test r14d, r14d
je 0x140010300
mov rax, qword [rbp + 0x67]
mov edx, dword [rbp - 0x19]
mov rcx, qword [rax + 0x80]
call fcn.14000fbd8
mov ecx, r12d
mov dword [rbp - 0x15], eax
call fcn.1400106d8
mov rdi, qword [rbp - 0x11]
xor r14d, r14d
mov dword [rbp - 0x19], r14d
mov r12d, eax
mov esi, dword [rbp + 0x7f]
mov r10d, 0xa
cmp qword [rbp - 0x49], rdi
jb 0x140010000
mov r13, qword [rbp - 9]
mov dword [rbp + 0x77], r12d
mov r12, qword [rbp - 0x29]
mov rcx, qword [rbp + 7]
test rcx, rcx
jne 0x14001033e
mov rdx, qword [0x14002f6e8]
lea eax, [r13 + 1]
movsxd rcx, eax
xor esi, esi
lea r12, [r12 + rcx*2]
mov qword [rbp - 0x29], r12
cmp word [r12], si
jne 0x14001ae1c
mov r13d, dword [rbp + 0x6f]
cmp dword [rbp - 0x2d], 1
jle 0x140010200
test rdx, rdx
je 0x140010200
cmp word [rdx], 0
je 0x140010200
lea eax, [r13 + 1]
movsxd rcx, eax
mov rax, qword [0x14002f6f0]
mov word [rdx + rcx*2], si
mov qword [rax + rcx*8], rsi
mov eax, dword [rbp - 0x15]
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rbp - 0x49]
add rax, 0xe
mov qword [rbp - 0x49], rax
mov rdi, rax
movzx ecx, word [rax]
test cx, cx
je 0x140010251
cmp cx, si
je 0x140010251
cmp cx, 0x20
je 0x14001024b
add rax, 2
mov qword [rbp - 0x49], rax
movzx ecx, word [rax]
test cx, cx
jne 0x14001022e
jmp 0x140010251
cmp word [rax + 2], si
je 0x140010239
movzx ebx, word [rax]
xor ecx, ecx
mov word [rax], cx
mov rcx, r15
call fcn.14000b4a0
mov rcx, rdi
call fcn.14000e8a0
mov r15, rax
mov rax, qword [rbp - 0x49]
mov word [rax], bx
mov r9, qword [rbp - 0x49]
test bx, bx
je 0x140010284
add r9, 2
mov qword [rbp - 0x49], r9
test r9, r9
jne 0x14000fcbc
jmp 0x14000fe4c
mov eax, dword [rbp + 0x6f]
lea r8d, [r13 - 1]
inc eax
shl r8, 3
movsxd rcx, eax
xor edx, edx
mov rax, qword [0x14002f6f0]
lea rcx, [rax + rcx*8]
call sub.msvcrt.dll_memset
jmp 0x140010067
add r9, 2
mov qword [rbp - 0x49], r9
movzx eax, word [r9]
test ax, ax
jne 0x14000fcc9
jmp 0x14000fcd3
add r9, 2
mov qword [rbp - 0x49], r9
movzx eax, word [r9]
test ax, ax
jne 0x14000fdb6
jmp 0x14000fe38
add rbx, 2
cmp word [rbx], 0
jne 0x1400100fb
jmp 0x140010110
mov rdi, qword [rbp - 0x11]
xor r14d, r14d
jmp 0x140010186
cmp ax, r9w
je 0x14000ff37
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.140008fa0
mov rdx, qword [0x14002f6e8]
mov r12, rax
mov r8d, dword [rbp - 0x35]
mov r9d, dword [rbp - 0x31]
mov qword [rbp - 0x29], rax
jmp 0x14000ff37
call fcn.14000b4a0
jmp 0x1400101b2
mov rdi, qword [rbp + 0x67]
xor esi, esi
mov rdx, qword [0x14002f6e8]
jmp 0x14000fef7
lea rcx, [r9 + 2]
xor r8d, r8d
lea rdx, [rbp - 0x49]
call qword [sym.imp.msvcrt.dll_wcstol]
mov edx, eax
test eax, eax
jle 0x14001ad93
mov r9, qword [rbp - 0x49]
jmp 0x14000fdf0
cmp r13d, 1
jle 0x14000ff9e
lea eax, [r13 - 1]
movsxd rcx, eax
cmp word [r12 + rcx*2], r9w
jne 0x14000ff9e
add r12, 2
lea rdx, [0x140028ba0]
sub r13d, 2
mov qword [rbp - 0x29], r12
movsxd rax, r13d
xor ebx, ebx
mov rcx, r12
mov qword [rbp - 9], r13
mov word [r12 + rax*2], bx
call qword [sym.imp.msvcrt.dll__wpopen]
mov r14, rax
test rax, rax
je 0x14001ae90
mov rcx, rax
mov esi, ebx
mov edi, ebx
call qword [sym.imp.msvcrt.dll_feof]
test eax, eax
jne 0x140010456
mov rcx, r14
call qword [sym.imp.msvcrt.dll_ferror]
test eax, eax
jne 0x140010456
mov rax, rsi
sub rax, rdi
cmp rax, 0x200
jae 0x14001041f
add rsi, 0x100
test rbx, rbx
jne 0x14001050b
mov ecx, esi
call fcn.14000b530
mov rbx, rax
test rax, rax
je 0x14001ae61
mov edx, esi
mov byte [rbx + rdi], 0
lea rcx, [rbx + rdi]
sub edx, edi
mov r8, r14
call qword [sym.imp.msvcrt.dll_fgets]
test rax, rax
je 0x140010456
or rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rbx + rdi], 0
jne 0x140010440
mov rcx, r14
call qword [sym.imp.msvcrt.dll_feof]
test eax, eax
je 0x1400103e1
mov rcx, r14
call qword [sym.imp.msvcrt.dll__pclose]
lea edx, [rdi*2 + 4]
mov rcx, rbx
call fcn.14000d360
cmp qword [0x14002f6e8], 0
mov r14, rax
mov qword [rbp + 7], rax
je 0x14001ae74
cmp qword [0x14002f6f0], 0
je 0x14001ae74
lea rcx, [rax + rdi]
mov r8, rdi
mov rdx, rax
call qword [sym.imp.msvcrt.dll_memmove]
mov dword [rbp - 0x41], edi
mov ecx, dword [0x14003a844]
call fcn.14000bbf0
test eax, eax
je 0x14001ae03
mov edx, 1
mov r8d, edi
mov r9d, edi
add r8, r14
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], r14
call qword [sym.imp.api_ms_win_core_string_l1_1_0.dll_MultiByteToWideChar]
mov eax, eax
mov qword [rbp - 0x49], r14
lea rdi, [r14 + rax*2]
mov qword [rbp - 0x11], rdi
cmp rdi, r14
je 0x140010632
cmp word [rdi - 2], 0xa
jne 0x140010632
mov esi, dword [rbp + 0x7f]
xor r14d, r14d
mov word [rdi], r14w
mov r10d, 0xa
jmp 0x14000ffee
mov edx, esi
mov rcx, rbx
call fcn.14000d360
jmp 0x140010413
cmp dx, 0x22
je 0x140010686
xor eax, eax
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov edx, 0x80000000
mov dword [rsp + 0x28], eax
mov rcx, r12
mov dword [rsp + 0x20], 3
lea r8d, [rax + 5]
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14001aea7
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_SetFilePointer]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov edi, eax
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_SetFilePointer]
lea ecx, [rdi*2 + 4]
call fcn.14000b530
mov qword [rbp + 7], rax
mov r14, rax
mov rcx, rsi
test rax, rax
je 0x14001ae97
lea rdx, [rax + rdi]
mov dword [rbp - 0x41], 0xffffffff
xor eax, eax
lea r9, [rbp - 0x41]
mov r8d, edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.api_ms_win_core_file_l1_2_1.dll_ReadFile]
mov rcx, rsi
mov ebx, eax
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
test ebx, ebx
je 0x14001adf9
mov eax, dword [rbp - 0x41]
cmp eax, edi
je 0x1400104a4
jmp 0x1400101a5
mov r9, qword [rbp - 0x49]
movzx eax, word [r9 + 8]
add r9, 0xa
mov qword [rbp - 0x49], r9
mov dword [rbp - 0x1d], eax
jmp 0x140010284
add r9, 2
inc edi
mov qword [rbp - 0x49], r9
mov dword [rbp - 0x3d], edi
jmp 0x14000fe38
mov r9, qword [rbp - 0x49]
mov r14d, 1
add r9, 0x10
mov qword [rbp - 0x49], r9
jmp 0x140010284
mov r9d, 0x60
lea r8d, [r9 - 0x39]
jmp 0x14000ff17
mov esi, dword [rbp + 0x7f]
mov r10d, 0xa
mov word [rdi], r10w
add rdi, 2
xor r14d, r14d
mov qword [rbp - 0x11], rdi
mov word [rdi], r14w
jmp 0x14000ffee
dec esi
mov dword [rbp + 0x7f], esi
jmp 0x140010189
add rcx, 0xa
lea rdx, [rbp - 0x49]
xor r8d, r8d
mov qword [rbp - 0x49], rcx
call qword [sym.imp.msvcrt.dll_wcstol]
mov dword [rbp - 0x21], eax
test eax, eax
jle 0x14001ad93
mov r9, qword [rbp - 0x49]
jmp 0x140010284
add r12, 2
dec r13d
mov rcx, r12
mov qword [rbp - 0x29], r12
mov qword [rbp - 9], r13
call fcn.14000e900
mov qword [rbp - 0x49], rax
cmp word [rax], 0x22
jne 0x140010524
xor ecx, ecx
mov word [rax], cx
mov rax, qword [rbp - 0x49]
sub rax, 2
mov qword [rbp - 0x49], rax
cmp rax, r12
jb 0x140010524
cmp word [rax], 0x20
jne 0x140010524
jmp 0x1400106ad
cmp si, 0x27
je 0x14000fcab
xor eax, eax
movzx esi, ax
jmp 0x14000fcb3
mov r9, qword [rbp - 0x49]
mov r14d, 1
add r9, 0xe
mov qword [rbp - 0x49], r9
jmp 0x140010284
mov r8, qword [rbp - 0x49]
mov edx, 1
mov ecx, 0x234a
call fcn.1400057e4
mov eax, 1
jmp 0x140010203
xor edx, edx
mov ecx, 0x2374
call fcn.1400057e4
call fcn.140024580
int3
cmp qword [0x140046d30], 0
je 0x14001ae49
mov edx, 0x237b
xor ecx, ecx
lea r8d, [rdx - 0x53]
call fcn.1400248fc
cmp eax, 1
je 0x14001ae29
call fcn.140006068
mov r8d, dword [rbp - 0x35]
mov r10d, 0xa
mov r9d, dword [rbp - 0x31]
jmp 0x14000ff6b
xor eax, eax
mov dword [rbp - 0x41], eax
jmp 0x1400105d4
xor eax, eax
mov edx, eax
jmp 0x1400104bc
call fcn.1400245a4
mov r10d, 0xa
jmp 0x14001001a
mov r8d, dword [rbp - 0x35]
mov r9d, dword [rbp - 0x31]
jmp 0x14000ff46
mov rbx, qword [0x140046d30]
test rbx, rbx
je 0x14001ae49
mov rcx, rbx
call fcn.140007140
mov rbx, qword [rbx + 0x1d0]
test rbx, rbx
jne 0x14001ae35
call fcn.140024610
mov edx, 1
lea rcx, [0x1400428e0]
call qword [sym.imp.msvcrt.dll_longjmp]
int3
mov rcx, r14
call qword [sym.imp.msvcrt.dll__pclose]
mov eax, 8
jmp 0x140010203
mov r8, r12
mov edx, 1
mov ecx, 0x2374
call fcn.1400057e4
mov eax, 8
jmp 0x140010203
mov ecx, 0x2331
jmp 0x14001aeac
call qword [sym.imp.api_ms_win_core_handle_l1_1_0.dll_CloseHandle]
mov eax, 8
jmp 0x140010203
mov ecx, 0x2363
mov r8, r12
mov edx, 1
call fcn.1400057e4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
nop
jmp 0x140010203