Function at 0x140067890
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
xor r15d, r15d
lea rdi, [rdx + 0x100480]
mov ebx, r8d
and ebx, 0xfffffff0
mov dword [rax + 0x18], r15d
mov rsi, r9
lea eax, [rbx + rbx*2]
mov r12, rcx
mov qword [rdi + 0xffc40], r15
add eax, eax
mov qword [rdi + 0xffc00], r15
movsxd rbp, eax
cmp r9, r15
je 0x1400678f1
mov rbp, qword [rdx]
movsxd rax, ebx
mov qword [rdx], r15
sub rbp, rax
add rbp, r9
xor r8d, r8d
mov rdx, rbp
call fcn.14005a2ec
cmp rax, rbp
je 0x14006790a
or rax, 0xffffffffffffffff
jmp 0x140067bc4
lea r9, [rsp + 0xf0]
mov r8d, ebx
mov rdx, rdi
mov rcx, r12
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp ebx, dword [rsp + 0xf0]
jne 0x140067901
mov r13d, 8
lea rcx, str.PRIVHEAD
mov rdx, rdi
mov r8d, r13d
call qword [sym.imp.SHLWAPI.dll_StrCmpNA]
cmp eax, r15d
jne 0x140067901
lea rdx, [rdi + 0x30]
lea r8d, [r13 + 0x38]
lea rcx, [rdi + 0xffc00]
call fcn.14001cecc
cmp rsi, r15
jne 0x140067996
lea rcx, [rdi + 0x11b]
mov edx, r13d
call fcn.14005dbc4
lea rcx, [rdi + 0x12b]
mov edx, r13d
mov qword [rsp + 0x60], rax
call fcn.14005dbc4
movsxd rcx, ebx
lea rsi, [rax + 1]
imul rsi, rcx
jmp 0x1400679a3
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x60], rax
lea rcx, [rdi + 0xffc00]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
xor r8d, r8d
mov rdx, rsi
mov rcx, r12
mov dword [rsp + 0xf8], eax
call fcn.14005a2ec
cmp rax, rsi
jne 0x140067901
mov ebp, 0x2000
lea r9, [rsp + 0xf0]
mov rdx, rdi
mov rcx, r12
mov r8d, ebp
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [rsp + 0xf0], ebp
jne 0x140067901
mov qword [rsp + 0x30], r15
mov rdx, r15
mov qword [rsp + 0x58], r15
mov rcx, rdi
cmp dword [rdi], r15d
jne 0x140067a24
cmp rdx, rbp
jge 0x140067a24
movsxd rax, ebx
add rcx, rax
add rdx, rax
cmp dword [rcx], r15d
je 0x140067a11
movsxd r9, ebx
add rcx, 0x2e
mov edx, r13d
mov qword [rsp + 0x70], r9
call fcn.14005dbc4
xor r8d, r8d
lea rbp, [rax - 1]
mov rcx, r12
imul rbp, r9
add rbp, rsi
mov rdx, rbp
call fcn.14005a2ec
cmp rax, rbp
jne 0x140067901
lea r9, [rsp + 0xf0]
mov r8d, ebx
mov rdx, rdi
mov rcx, r12
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp ebx, dword [rsp + 0xf0]
jne 0x140067901
mov r10d, 4
lea rcx, [rdi + 8]
mov edx, r10d
call fcn.14005dbc4
cmp rax, r15
mov r13, rax
jle 0x140067901
mov eax, 0xffc00
lea rcx, [rdi + 4]
cqo
idiv r13
mov edx, r10d
mov r9, rax
call fcn.14005dbc4
lea rcx, [rdi + 0xc]
mov r15, rax
cmp rax, r9
mov edx, r10d
cmovg r15, r9
mov rsi, r15
imul rsi, r13
call fcn.14005dbc4
lea rcx, [rdi + 0x85]
mov edx, r10d
lea rbx, [rbp + rax]
call fcn.14005dbc4
xor r8d, r8d
mov rdx, rbx
mov rcx, r12
mov qword [rsp + 0x38], rax
call fcn.14005a2ec
cmp rax, rbx
jne 0x140067901
and qword [rsp + 0x20], 0
lea r9, [rsp + 0xf0]
mov r8d, esi
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r11d, dword [rsp + 0xf0]
cmp rsi, r11
jne 0x140067901
xor ebp, ebp
test r15, r15
jle 0x140067bc2
lea rsi, [rdi + 0x19]
mov qword [rsp + 0x50], rsi
cmp byte [rsi - 6], 0x34
jne 0x140067bb7
movzx r9d, byte [rsi - 1]
mov rcx, rsi
mov edx, r9d
call fcn.14005dbc4
movsx r12d, byte [rsp + 0xf8]
lea rbx, [rsi + r9]
movzx ecx, byte [rbx]
mov qword [rsp + 0x68], rax
inc ecx
movsxd rcx, ecx
add rbx, rcx
movzx eax, byte [rbx]
cmp eax, r12d
mov dword [rsp + 0x40], eax
jl 0x140067bb7
lea rdx, [rbx + 1]
lea rcx, [rdi + 0xffc00]
mov r8d, r12d
call qword [sym.imp.SHLWAPI.dll_StrCmpNIA]
test eax, eax
jne 0x140067bb7
cmp r12d, dword [rsp + 0x40]
je 0x140067bdf
movsx rax, byte [rsp + 0xf8]
cmp byte [rax + rbx + 1], 0
je 0x140067bdf
inc rbp
add rsi, r13
cmp rbp, r15
jl 0x140067b49
xor eax, eax
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [rsp + 0x68], 0
je 0x140067bc2
xor eax, eax
cmp qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rax
jle 0x140067f17
mov rbp, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x38]
lea r10, [rdi + 0x19]
add rbp, 0x36
mov rdx, rax
cmp rax, r15
jge 0x140067f17
cmp byte [r10 - 6], 0x51
jne 0x140067efe
movzx r9d, byte [r10 - 1]
inc qword [rsp + 0x30]
mov rcx, r10
mov edx, r9d
call fcn.14005dbc4
lea rdx, [r10 + r9]
movzx ecx, byte [rdx]
mov r14, rax
mov qword [rsp + 0x98], rax
lea r8, [rdx + rcx + 1]
movzx ecx, byte [r8]
inc ecx
movsxd rcx, ecx
lea rdx, [r8 + rcx + 0x16]
movzx ecx, byte [rdx]
inc ecx
movsxd rcx, ecx
lea r10, [rdx + rcx + 0x10]
movzx r9d, byte [r10]
lea rcx, [r10 + 1]
mov edx, r9d
call fcn.14005dbc4
xor edx, edx
lea rcx, [rbp - 0x16]
lea r8d, [rdx + 0x10]
lea rsi, [r10 + r9 + 5]
imul rax, qword [rsp + 0x70]
mov qword [rbp - 0x26], rax
call fcn.1400f78a0
mov r11b, byte [rsi]
mov r12, qword [rsp + 0x58]
lea rcx, [rsi + 1]
mov edx, 4
lea eax, [r12 + 1]
mov byte [rbp - 0x16], r11b
mov dword [rbp - 0x1e], eax
call fcn.14005dbc4
lea rcx, [rsi + 5]
mov edx, 2
mov dword [rbp - 6], eax
call fcn.14005dbc4
lea rcx, [rsi + 7]
mov edx, 2
mov dword [rbp - 2], eax
call fcn.14005dbc4
lea rdx, [rsi + 9]
lea rcx, [rbp + 2]
mov r8d, 8
mov dword [rbp], eax
call fcn.14001cecc
and qword [rbp + 0xa], 0
cmp byte [rsi + 0x11], 0
jbe 0x140067d06
movzx eax, byte [rsi + 0x12]
mov qword [rbp + 0xa], rax
and qword [rbp - 0x2e], 0
xor r9d, r9d
mov rbx, rdi
mov qword [rsp + 0x78], r9
cmp byte [rbx + 0x13], 0x32
jne 0x140067e7a
movzx r10d, byte [rbx + 0x18]
movzx r8d, byte [r10 + rbx + 0x19]
add r8, r10
movzx edx, byte [r8 + rbx + 0x38]
lea rcx, [r8 + rbx + 0x39]
call fcn.14005dbc4
cmp r14d, eax
jne 0x140067e7a
lea rcx, [rbx + 0x19]
mov edx, r10d
call fcn.14005dbc4
mov rsi, rdi
mov qword [rsp + 0x90], rax
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0xf8], rax
cmp byte [rsi + 0x13], 0x33
jne 0x140067e4e
movzx ecx, byte [rsi + 0x18]
mov rdx, rcx
mov qword [rsp + 0x80], rcx
movzx r8d, byte [rcx + rsi + 0x19]
lea r11, [rdx + rsi + 0x1a]
mov rax, r8
mov dword [rsp + 0xe8], r8d
mov qword [rsp + 0x88], rax
add rax, rcx
movzx ecx, byte [rax + rsi + 0x36]
add ecx, r8d
movsxd r10, ecx
lea rax, [r10 + rdx]
movzx r9d, byte [rax + rsi + 0x37]
lea rcx, [rax + rsi + 0x38]
mov edx, r9d
call fcn.14005dbc4
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
lea r14, [r10 + r9]
add r14, rdx
add r14, rcx
cmp dword [rsp + 0x90], eax
jne 0x140067e46
mov r10, qword [rsp + 0x88]
add r10, rdx
mov edx, 8
add r10, rcx
lea rcx, [r10 + rdi + 0x2e]
call fcn.14005dbc4
lea rcx, [r10 + rdi + 0x26]
mov edx, 8
mov r9, rax
call fcn.14005dbc4
mov r10, qword [rsp + 0x60]
movzx edx, byte [r14 + rdi + 0x38]
add r10, r9
lea rcx, [r14 + rdi + 0x39]
add r10, rax
imul r10, qword [rsp + 0x70]
call fcn.14005dbc4
cmp dword [rsp + 0x68], eax
je 0x140067e8f
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0xf8]
inc rax
add rcx, r13
add rsi, r13
cmp rax, r15
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x40], rcx
jl 0x140067d6f
mov r9, qword [rsp + 0x78]
mov r14, qword [rsp + 0x98]
inc r9
add rbx, r13
cmp r9, r15
mov qword [rsp + 0x78], r9
jge 0x140067eea
jmp 0x140067d16
movsxd rdx, dword [rsp + 0xe8]
mov qword [rbp - 0x2e], r10
add rdx, r11
jmp 0x140067ecf
cmp byte [r11], 0x2d
jne 0x140067ecc
inc r11
xor ecx, ecx
jmp 0x140067ec4
mov al, byte [r11]
sub al, 0x30
cmp al, 9
ja 0x140067ec9
movsx eax, byte [r11]
lea ecx, [rcx + rcx*4]
inc r11
lea ecx, [rax + rcx*2 - 0x30]
cmp r11, rdx
jb 0x140067ead
mov dword [rbp - 0x1e], ecx
inc r11
cmp r11, rdx
jb 0x140067ea0
inc r12
add rbp, 0x90
cmp r12, qword [rsp + 0x38]
mov qword [rsp + 0x58], r12
jge 0x140067f17
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x50]
inc rax
add r10, r13
cmp rdx, rcx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], r10
jl 0x140067c10
mov rbx, qword [rsp + 0x58]
lea rdx, str._d:__nPart_d_r_n
lea rcx, [0x1401310e0]
mov r9, rbx
mov r8d, 0x3560
call fcn.140018674
mov rax, rbx
jmp 0x140067bc4