Function at 0x140011f68
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov ebx, r8d
mov dword [rbp - 0x30], 0xfffffffe
xor r15d, r15d
movsxd r8, ecx
mov dword [rbp - 0x28], r15d
mov r9, rdx
mov dword [rbp - 0x20], ebx
cmp r8d, 0xfffffffe
jne 0x140011fbc
call fcn.140008d50
mov dword [rax], r15d
call fcn.140008dcc
mov dword [rax], 9
jmp 0x140012849
test ecx, ecx
js 0x140012822
cmp r8d, dword [0x140022220]
jae 0x140012822
mov rax, r8
lea r10, [0x140000000]
mov qword [rbp - 0x10], rax
mov rcx, r8
sar rcx, 5
and eax, 0x1f
imul rsi, rax, 0x38
mov r13, qword [r10 + rcx*8 + 0x22240]
mov qword [rbp - 0x18], rcx
mov r12b, byte [rsi + r13 + 8]
test r12b, 1
je 0x140012822
cmp ebx, 0x7fffffff
jbe 0x140012028
call fcn.140008d50
mov dword [rax], r15d
call fcn.140008dcc
mov dword [rax], 0x16
jmp 0x140012835
mov edi, r15d
test ebx, ebx
je 0x14001281e
test r12b, 2
jne 0x14001281e
test r9, r9
je 0x140012010
mov edx, dword [rsi + r13 + 0xc]
mov ecx, 4
and edx, 3
mov eax, edx
mov dword [rbp - 0x38], edx
sub eax, 1
je 0x14001206e
cmp eax, 1
jne 0x140012069
mov eax, ebx
not eax
test al, 1
je 0x140012010
and ebx, 0xfffffffe
mov r14, r9
jmp 0x1400120b5
mov eax, ebx
not eax
test al, 1
je 0x140012010
shr ebx, 1
cmp ebx, ecx
cmovb ebx, ecx
mov ecx, ebx
call fcn.140005b24
mov r14, rax
test rax, rax
jne 0x1400120a7
call fcn.140008dcc
mov dword [rax], 0xc
call fcn.140008d50
mov dword [rax], 8
jmp 0x140012849
mov edx, dword [rbp - 0x38]
lea r10, [0x140000000]
mov r8d, dword [rbp + 0x48]
mov r15, r14
mov r9d, 0xa
test r12b, 0x48
je 0x140012169
mov al, byte [rsi + r13 + 9]
cmp al, r9b
je 0x140012169
mov r12, qword [rbp - 0x18]
test ebx, ebx
je 0x14001216d
mov byte [r14], al
lea r15, [r14 + 1]
mov rax, qword [r10 + r12*8 + 0x22240]
lea edi, [r9 - 9]
or r11d, 0xffffffff
add ebx, r11d
mov byte [rax + rsi + 9], r9b
test edx, edx
je 0x14001216d
mov rax, qword [r10 + r12*8 + 0x22240]
mov cl, byte [rax + rsi + 0xa]
cmp cl, r9b
je 0x14001216d
test ebx, ebx
je 0x14001216d
mov byte [r15], cl
lea edi, [r9 - 8]
mov rax, qword [r10 + r12*8 + 0x22240]
inc r15
add ebx, r11d
mov byte [rax + rsi + 0xa], r9b
cmp edx, 1
jne 0x14001216d
mov rax, qword [r10 + r12*8 + 0x22240]
mov cl, byte [rax + rsi + 0xb]
cmp cl, r9b
je 0x14001216d
test ebx, ebx
je 0x14001216d
mov byte [r15], cl
lea edi, [rdx + 2]
mov rax, qword [r10 + r12*8 + 0x22240]
inc r15
add ebx, r11d
mov byte [rax + rsi + 0xb], r9b
jmp 0x14001216d
mov r12, qword [rbp - 0x18]
mov ecx, r8d
call fcn.140011a58
test eax, eax
je 0x140012201
lea rcx, [0x140000000]
mov rcx, qword [rcx + r12*8 + 0x22240]
cmp byte [rcx + rsi + 8], 0
jge 0x140012201
mov rcx, qword [rcx + rsi]
lea rdx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_GetConsoleMode]
mov r13d, dword [rbp - 0x38]
mov dword [rbp - 0x28], eax
test eax, eax
je 0x140012205
cmp r13d, 2
jne 0x140012205
and qword [rsp + 0x20], 0
lea rax, [0x140000000]
mov rcx, qword [rax + r12*8 + 0x22240]
lea r9, [rbp - 0x34]
shr ebx, 1
mov rdx, r15
mov r8d, ebx
mov rcx, qword [rcx + rsi]
call qword [sym.imp.KERNEL32.dll_ReadConsoleW]
test eax, eax
jne 0x1400121f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140008d78
or ebx, 0xffffffff
jmp 0x1400125ee
mov eax, dword [rbp - 0x34]
lea edx, [rax + rax]
mov dword [rbp - 0x34], edx
jmp 0x14001224d
mov r13d, dword [rbp - 0x38]
and qword [rsp + 0x20], 0
lea rcx, [0x140000000]
mov rcx, qword [rcx + r12*8 + 0x22240]
lea r9, [rbp - 0x34]
mov r8d, ebx
mov rdx, r15
mov rcx, qword [rcx + rsi]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400127e8
movsxd rdx, dword [rbp - 0x34]
test edx, edx
js 0x1400127e8
mov eax, ebx
cmp rdx, rax
ja 0x1400127e8
lea r10, [0x140000000]
add edi, edx
mov rcx, qword [r10 + r12*8 + 0x22240]
mov al, byte [rcx + rsi + 8]
test al, al
jns 0x1400125eb
cmp r13d, 2
je 0x140012556
mov r8d, 0xa
test edx, edx
je 0x140012287
cmp byte [r14], r8b
jne 0x140012287
or al, 4
jmp 0x140012289
and al, 0xfb
mov byte [rcx + rsi + 8], al
mov rbx, r14
movsxd rcx, edi
add rcx, r14
mov qword [rbp - 0x28], rcx
cmp r14, rcx
jae 0x14001240d
mov edx, 0x1a
mov rdi, rbx
mov rax, rcx
lea r15d, [rdx - 0xd]
mov cl, byte [rdi]
cmp cl, dl
je 0x1400123ec
lea rdx, [rdi + 1]
cmp cl, r15b
je 0x1400122d2
mov byte [rbx], cl
mov rdi, rdx
inc rbx
jmp 0x1400123dc
dec rax
cmp rdi, rax
jae 0x1400122fb
cmp byte [rdx], r8b
jne 0x1400122e9
mov byte [rbx], r8b
mov eax, 2
jmp 0x1400122f0
mov byte [rbx], cl
mov eax, 1
inc rbx
add rdi, rax
jmp 0x1400123d8
mov rax, qword [rbp - 0x10]
lea r9, [rbp - 0x34]
and qword [rsp + 0x20], 0
mov r13, rax
and eax, 0x1f
sar r13, 5
imul rax, rax, 0x38
mov rcx, qword [r10 + r13*8 + 0x22240]
mov rdi, rdx
mov r8d, 1
mov qword [rbp - 0x18], rax
lea rdx, [rbp + 0x58]
mov rcx, qword [rcx + rax]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140012348
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400123c5
cmp dword [rbp - 0x34], 0
je 0x1400123c5
mov rdx, qword [rbp - 0x18]
lea r10, [0x140000000]
mov rax, qword [r10 + r13*8 + 0x22240]
test byte [rax + rdx + 8], 0x48
je 0x14001238d
mov r8d, 0xa
cmp byte [rbp + 0x58], r8b
jne 0x140012379
mov byte [rbx], r8b
jmp 0x1400123d5
mov byte [rbx], r15b
mov rcx, qword [r10 + r13*8 + 0x22240]
mov al, byte [rbp + 0x58]
mov byte [rcx + rdx + 9], al
jmp 0x1400123d5
cmp rbx, r14
jne 0x14001239e
mov r8d, 0xa
cmp byte [rbp + 0x58], r8b
je 0x140012374
mov ecx, dword [rbp + 0x48]
mov r8d, 1
or rdx, 0xffffffffffffffff
call fcn.1400137ac
mov r8d, 0xa
lea r10, [0x140000000]
cmp byte [rbp + 0x58], r8b
je 0x1400123d8
jmp 0x1400123d2
mov r8d, 0xa
lea r10, [0x140000000]
mov byte [rbx], r15b
inc rbx
mov rax, qword [rbp - 0x28]
mov edx, 0x1a
cmp rdi, rax
jb 0x1400122b2
jmp 0x140012409
mov rcx, qword [r10 + r12*8 + 0x22240]
mov al, byte [rcx + rsi + 8]
test al, 0x40
jne 0x140012404
or al, 2
mov byte [rcx + rsi + 8], al
jmp 0x140012409
mov byte [rbx], dl
inc rbx
mov r13d, dword [rbp - 0x38]
mov edi, ebx
sub edi, r14d
cmp r13d, 1
jne 0x1400125eb
test edi, edi
je 0x1400125eb
mov r13d, 1
sub rbx, r13
cmp byte [rbx], 0
jl 0x14001243a
add rbx, r13
jmp 0x1400124fb
mov edx, r13d
jmp 0x14001244f
cmp edx, 4
jg 0x14001245d
cmp rbx, r14
jb 0x14001245d
sub rbx, r13
add edx, r13d
movzx eax, byte [rbx]
cmp byte [rax + r10 + 0x1bc00], 0
je 0x14001243f
movzx ecx, byte [rbx]
movsx eax, byte [rcx + r10 + 0x1bc00]
test eax, eax
jne 0x14001247d
call fcn.140008dcc
mov dword [rax], 0x2a
jmp 0x1400121ee
inc eax
cmp eax, edx
jne 0x14001248b
movsxd rax, edx
add rbx, rax
jmp 0x1400124fb
mov rax, qword [rbp - 0x10]
mov r8, rax
and eax, 0x1f
imul r9, rax, 0x38
sar r8, 5
mov rax, qword [r10 + r8*8 + 0x22240]
test byte [rax + r9 + 8], 0x48
je 0x1400124eb
add rbx, r13
mov byte [rax + r9 + 9], cl
cmp edx, 2
jl 0x1400124cc
mov al, byte [rbx]
add rbx, r13
mov rcx, qword [r10 + r8*8 + 0x22240]
mov byte [rcx + r9 + 0xa], al
cmp edx, 3
jne 0x1400124e3
mov al, byte [rbx]
add rbx, r13
mov rcx, qword [r10 + r8*8 + 0x22240]
mov byte [rcx + r9 + 0xb], al
movsxd rax, edx
sub rbx, rax
jmp 0x1400124fb
mov ecx, dword [rbp + 0x48]
neg edx
movsxd rdx, edx
mov r8d, r13d
call fcn.1400137ac
mov rsi, qword [rbp + 0x50]
mov edi, ebx
mov ebx, dword [rbp - 0x20]
sub edi, r14d
mov eax, ebx
mov r9d, edi
shr eax, 1
mov r8, r14
mov dword [rsp + 0x28], eax
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x140012541
movsxd rdx, eax
add rdx, rdx
cmp rdx, rbx
ja 0x140012541
mov ebx, dword [rbp - 0x30]
lea edi, [rax + rax]
jmp 0x1400125f2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140008d78
or ebx, 0xffffffff
jmp 0x1400125f2
cmp dword [rbp - 0x28], 0
je 0x14001260c
mov eax, edi
mov r8, r14
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
lea r9, [r14 + rcx*2]
cmp r14, r9
jae 0x1400125e0
mov r10d, 0x1a
mov rcx, r14
lea r15d, [r10 - 0xd]
lea r11d, [r10 - 0x10]
movzx edx, word [rcx]
cmp dx, r10w
je 0x1400125cc
cmp dx, r15w
je 0x1400125a4
mov word [r8], dx
add r8, 2
add rcx, 2
jmp 0x1400125c5
lea rax, [r9 - 2]
cmp rcx, rax
jae 0x1400125c5
add rcx, 2
cmp word [rcx], r11w
jne 0x1400125bd
mov word [r8], r11w
jmp 0x1400125c1
mov word [r8], dx
add r8, 2
cmp rcx, r9
jb 0x140012587
jmp 0x1400125e0
lea rax, [0x140000000]
mov rax, qword [rax + r12*8 + 0x22240]
or byte [rax + rsi + 8], 2
sub r8, r14
mov rdi, r8
sar rdi, 1
add edi, edi
mov ebx, dword [rbp - 0x30]
mov rsi, qword [rbp + 0x50]
cmp r14, rsi
je 0x1400125ff
mov rcx, r14
call fcn.14000a664
cmp ebx, 0xfffffffe
cmove ebx, edi
mov eax, ebx
jmp 0x14001284c
mov r8d, 0xa
test edx, edx
je 0x140012620
cmp word [r14], r8w
jne 0x140012620
or al, 4
jmp 0x140012622
and al, 0xfb
mov byte [rcx + rsi + 8], al
mov rbx, r14
movsxd rax, edi
add rax, r14
mov qword [rbp - 0x20], rax
lea rcx, [rax - 1]
cmp r14, rcx
jae 0x1400127de
mov edx, 0x1a
mov rdi, rbx
lea r15d, [rdx - 0xd]
movzx ecx, word [rdi]
cmp cx, dx
je 0x1400127bb
lea rdx, [rdi + 2]
cmp cx, r15w
je 0x140012671
mov word [rbx], cx
mov rdi, rdx
add rbx, 2
jmp 0x1400127a7
add rax, 0xfffffffffffffffe
cmp rdi, rax
jae 0x14001269f
cmp word [rdx], r8w
jne 0x14001268b
mov word [rbx], r8w
mov eax, 4
jmp 0x140012693
mov word [rbx], cx
mov eax, 2
add rbx, 2
add rdi, rax
jmp 0x1400127a3
mov rax, qword [rbp - 0x10]
lea r9, [rbp - 0x34]
and qword [rsp + 0x20], 0
mov r12, rax
and eax, 0x1f
sar r12, 5
imul r13, rax, 0x38
mov rcx, qword [r10 + r12*8 + 0x22240]
mov rdi, rdx
mov r8d, 2
lea rdx, [rbp + 0x60]
mov rcx, qword [rcx + r13]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400126ec
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14001278e
cmp dword [rbp - 0x34], 0
je 0x14001278e
lea r10, [0x140000000]
mov rax, qword [r10 + r12*8 + 0x22240]
test byte [rax + r13 + 8], 0x48
je 0x140012753
mov r8d, 0xa
cmp word [rbp + 0x60], r8w
jne 0x140012720
mov word [rbx], r8w
jmp 0x14001279f
mov word [rbx], r15w
mov al, byte [rbp + 0x60]
mov rcx, qword [r10 + r12*8 + 0x22240]
mov byte [rcx + r13 + 9], al
mov al, byte [rbp + 0x61]
mov rcx, qword [r10 + r12*8 + 0x22240]
mov byte [rcx + r13 + 0xa], al
mov rax, qword [r10 + r12*8 + 0x22240]
mov byte [rax + r13 + 0xb], r8b
jmp 0x14001279f
cmp rbx, r14
jne 0x140012765
mov r8d, 0xa
cmp word [rbp + 0x60], r8w
je 0x14001271a
mov ecx, dword [rbp + 0x48]
mov rdx, 0xfffffffffffffffe
lea r8d, [rdx + 3]
call fcn.1400137ac
mov r8d, 0xa
lea r10, [0x140000000]
cmp word [rbp + 0x60], r8w
je 0x1400127a3
jmp 0x14001279b
mov r8d, 0xa
lea r10, [0x140000000]
mov word [rbx], r15w
add rbx, 2
mov rax, qword [rbp - 0x20]
lea rcx, [rax - 1]
mov edx, 0x1a
cmp rdi, rcx
jb 0x14001264c
jmp 0x1400127de
mov rcx, qword [rbp - 0x18]
mov rcx, qword [r10 + rcx*8 + 0x22240]
mov al, byte [rcx + rsi + 8]
test al, 0x40
jne 0x1400127d7
or al, 2
mov byte [rcx + rsi + 8], al
jmp 0x1400127de
mov word [rbx], dx
add rbx, 2
sub ebx, r14d
mov edi, ebx
jmp 0x1400125eb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x14001280e
call fcn.140008dcc
mov dword [rax], 9
call fcn.140008d50
mov dword [rax], 5
jmp 0x1400121ee
cmp eax, 0x6d
jne 0x1400121e7
xor ebx, ebx
jmp 0x1400125ee
xor eax, eax
jmp 0x14001284c
call fcn.140008d50
mov dword [rax], r15d
call fcn.140008dcc
mov dword [rax], 9
xor r9d, r9d
mov qword [rsp + 0x20], r15
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140008e44
or eax, 0xffffffff
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret