Function at 0x1801b0c40
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
sub rsp, 0x50
mov rax, qword [0x18029e198]
xor rax, rsp
mov qword [rsp + 0x40], rax
test byte [0x18029ccf8], 8
mov r14d, r8d
mov rbx, qword [0x18029cd68]
mov rsi, rdx
mov rdi, rcx
mov r12, 0xffffffffffffffff
je 0x1801b0c96
mov r12, rcx
mov edx, dword [rbx + 0x38]
test edx, edx
jne 0x1801b0cc1
mov dword [0x18029ccf4], 0xb
xor eax, eax
jmp 0x1801b0e64
cmp dword [0x18029cd24], 0
je 0x1801b0cb1
nop
movzx eax, byte [rdi]
cmp al, 0x20
je 0x1801b0cab
cmp al, 9
jne 0x1801b0c7e
add rdi, 2
jmp 0x1801b0ca0
movzx eax, byte [rdi]
cmp al, 0x20
je 0x1801b0cbc
cmp al, 9
jne 0x1801b0c7e
inc rdi
jmp 0x1801b0cb1
mov rcx, qword [rbx + 0x28]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x80], rbp
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
jne 0x1801b0cee
mov dword [0x18029ccf4], 0x65
xor eax, eax
jmp 0x1801b0e5c
mov rcx, qword [rbx + 0x28]
lea r9, [rsp + 0x38]
mov r8d, 4
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1801b0f64
cmp dword [rsp + 0x38], 4
jne 0x1801b0f64
movzx eax, byte [rsp + 0x33]
xor r9d, r9d
mov ebp, dword [rbx + 0x38]
xor r8d, r8d
shl ax, 8
movzx edx, ax
movzx eax, byte [rsp + 0x32]
or edx, eax
movzx eax, byte [rsp + 0x31]
shl edx, 0x10
shl ax, 8
movzx ecx, ax
movzx eax, byte [rsp + 0x30]
or edx, ecx
mov rcx, qword [rbx + 0x28]
or edx, eax
mov dword [rbx + 0x3c], edx
lea edx, [rbp + 4]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
je 0x1801b0cdd
mov rcx, qword [rbx + 0x28]
lea r9, [rsp + 0x38]
mov r8d, 2
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x34]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1801b0f64
cmp dword [rsp + 0x38], 2
jne 0x1801b0f64
movzx r9d, word [rsp + 0x34]
cmp r9d, r14d
jbe 0x1801b0dc2
mov dword [0x18029ccf4], 5
xor eax, eax
jmp 0x1801b0e5c
lea edx, [rbp + 8]
mov r8, rsi
mov rcx, rbx
call fcn.1801af990
test eax, eax
je 0x1801b0f6e
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi]
shl rcx, 8
or rcx, rax
mov qword [rsp + 0x90], r15
lea rsi, [rsi + rcx*2]
add rsi, 2
movzx r14d, byte [rsi]
test r14b, r14b
je 0x1801b0e48
mov r15d, dword [0x18029cd24]
movzx ecx, r14b
nop word [rax + rax]
cmp r12, 0xffffffffffffffff
je 0x1801b0e7d
movzx ecx, byte [rsi + 3]
movzx eax, byte [rsi + 2]
shl cx, 8
or cx, ax
cmp cx, r12w
je 0x1801b0f5c
movzx eax, r14b
lea rsi, [rsi + rax*2]
add rsi, 6
movzx r14d, byte [rsi]
movzx ecx, r14b
test r14b, r14b
jne 0x1801b0e10
mov dword [0x18029ccf4], 3
xor eax, eax
mov r15, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1801e68c0
add rsp, 0x50
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rax, rdi
movzx ebp, cl
xor r11d, r11d
lea rbx, [rsi + 6]
nop word [rax + rax]
cmp r11, rbp
jge 0x1801b0f1f
movsx r10d, byte [rbx]
mov ecx, r10d
sub r10b, 0x61
test r15d, r15d
je 0x1801b0ee2
movzx r9d, word [rax]
lea r8d, [rcx - 0x20]
cmp r10b, 0x19
cmova r8d, ecx
lea ecx, [r9 - 0x61]
cmp cx, 0x19
lea edx, [r9 - 0x20]
cmova edx, r9d
cmp edx, r8d
jne 0x1801b0e2f
mov ecx, 2
inc r11
add rbx, rcx
add rax, rcx
jmp 0x1801b0e90
movsx r8d, byte [rax]
lea edx, [rcx - 0x20]
cmp r10b, 0x19
mov r9d, r8d
cmova edx, ecx
sub r8b, 0x61
cmp r8b, 0x19
lea ecx, [r9 - 0x20]
cmova ecx, r9d
cmp ecx, edx
jne 0x1801b0e2f
mov ecx, 1
inc r11
add rbx, 2
add rax, rcx
jmp 0x1801b0e90
test r15d, r15d
je 0x1801b0f42
movzx ecx, byte [rax]
cmp cl, 0x20
je 0x1801b0f31
cmp cl, 9
jne 0x1801b0f37
add rax, 2
jmp 0x1801b0f24
cmp word [rax], 0
je 0x1801b0f5c
jmp 0x1801b0e48
movzx ecx, byte [rax]
cmp cl, 0x20
je 0x1801b0f4f
cmp cl, 9
jne 0x1801b0f54
inc rax
jmp 0x1801b0f42
test cl, cl
jne 0x1801b0e48
mov rax, rsi
jmp 0x1801b0e54
mov dword [0x18029ccf4], 0x62
xor eax, eax
jmp 0x1801b0e5c