Function at 0x14002b050
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], r8
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0x98
mov r15, r8
mov qword [rbp - 0x29], 0
mov qword [rbp - 0x19], 0
mov qword [rbp - 0x11], setsockopt
mov byte [rbp - 0x29], 0
mov dword [rbp - 0x41], ecx
mov dword [rbp - 0x3d], edx
mov qword [rbp - 0x39], r8
mov dword [rbp - 0x31], r9d
mov rbx, qword [rbp + 0x7f]
mov r13, 0xffffffffffffffff
mov r8, r13
nop dword [rax + rax]
inc r8
cmp byte [rbx + r8], 0
jne 0x14002b0b0
mov rdx, rbx
lea rcx, [rbp - 0x29]
call fcn.140009b80
xor edi, edi
mov qword [rbp - 9], rdi
mov dword [rbp - 1], edi
lea rdx, [rbp - 0x61]
mov rcx, qword [0x14023b518]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x14002b0e9
lea ecx, [rdi + 0x50]
jmp 0x14002b0f3
movsx eax, word [rbp - 0x57]
movsx ecx, word [rbp - 0x53]
sub ecx, eax
mov dword [rbp + 3], ecx
mov qword [rbp + 7], rdi
mov rax, qword [rbp - 0x39]
mov byte [rax], dil
dec dword [rbp - 0x31]
lea rcx, [0x1401a5210]
call fcn.140026530
mov r8d, dword [rbp - 0x19]
mov rdx, rbx
mov ecx, dword [rbp - 0x3d]
call fcn.14002d4c0
cmp eax, r13d
je 0x14002ba2d
lea rsi, [0x140000000]
lea rcx, [rbp + 0x77]
call fcn.14002d590
mov r14d, eax
mov ecx, dword [rbp + 0x77]
cmp eax, 1
jne 0x14002b148
mov byte [rbp + 0x67], cl
jmp 0x14002b150
test eax, eax
jle 0x14002ba29
cmp ecx, 9
jne 0x14002b187
cmp qword [0x14023c5e8], 0
je 0x14002b187
lea r8, [rbp + 0x77]
lea rdx, [rbp + 0x67]
lea rcx, [rbp - 0x41]
call fcn.140029e30
mov r14d, eax
mov ecx, dword [rbp + 0x77]
test ecx, ecx
js 0x14002ba29
je 0x14002b2c1
mov edi, dword [rbp - 9]
dec ecx
cmp ecx, 0x7e
ja case.0x14002b1a7.17
movsxd rax, ecx
movzx eax, byte [rsi + rax + 0x2bad4]
mov ecx, dword [rsi + rax*4 + 0x2ba90]
add rcx, rsi
jmp rcx
test edi, edi
jle case.0x14002b591.69
mov esi, dword [rbp - 1]
test esi, esi
jle 0x14002b128
mov edx, edi
mov r15, qword [rbp - 0x39]
mov rcx, r15
call fcn.14002d370
movsxd rbx, eax
movsxd rcx, edi
sub esi, edi
movsxd r8, esi
lea rdx, [rcx + r15]
sub rcx, rbx
add rcx, r15
call sub.VCRUNTIME140.dll_memmove
sub edi, ebx
mov dword [rbp - 9], edi
mov esi, dword [rbp - 1]
sub esi, ebx
mov dword [rbp - 1], esi
movsxd rax, esi
mov byte [rax + r15], 0
cmp byte [0x14023c577], 0
je 0x14002b954
lea rcx, [rbp - 0x41]
call fcn.14002c010
mov edi, dword [rbp - 9]
mov r15, qword [rbp + 0x6f]
jmp 0x14002b128
cmp dword [rbp - 1], 0
jle 0x14002b9e3
lea rcx, [rbp - 0x41]
call fcn.14002bb80
mov edi, dword [rbp - 9]
jmp case.0x14002b591.69
test edi, edi
jle case.0x14002b591.69
mov esi, dword [rbp - 1]
cmp edi, esi
jge 0x14002b128
lea eax, [rdi - 1]
movsxd rdx, eax
movzx r8d, byte [rdx + r15]
movsxd rcx, edi
movzx eax, byte [rcx + r15]
mov byte [rdx + r15], al
mov byte [rcx + r15], r8b
lea eax, [rsi - 1]
cmp edi, eax
je 0x14002b26c
inc edi
mov dword [rbp - 9], edi
cmp byte [0x14023c577], 0
je 0x14002b286
lea rcx, [rbp - 0x41]
call fcn.14002c010
mov edi, dword [rbp - 9]
jmp 0x14002b128
lea rcx, [rbp - 0x41]
call fcn.14002c600
mov edi, dword [rbp - 9]
jmp 0x14002b128
test edi, edi
jle case.0x14002b591.69
mov edx, edi
mov rcx, qword [rbp - 0x39]
call fcn.14002d370
sub edi, eax
mov dword [rbp - 9], edi
lea rcx, [rbp - 0x41]
cmp byte [0x14023c577], 0
je 0x14002b2c9
call fcn.14002c010
mov edi, dword [rbp - 9]
jmp case.0x14002b591.69
call fcn.14002c600
mov edi, dword [rbp - 9]
jmp case.0x14002b591.69
mov esi, dword [rbp - 1]
cmp edi, esi
je 0x14002b128
mov r8d, edi
mov edx, esi
mov rcx, qword [rbp - 0x39]
call fcn.14002d1d0
add edi, eax
mov dword [rbp - 9], edi
cmp byte [0x14023c577], 0
je 0x14002b286
lea rcx, [rbp - 0x41]
call fcn.14002c010
mov edi, dword [rbp - 9]
jmp 0x14002b128
mov rcx, qword [0x14023c580]
mov rdx, qword [0x14023c578]
sub rcx, rdx
sar rcx, 5
cmp rcx, 1
jbe case.0x14002b591.69
mov rax, qword [rbp - 0x39]
mov r8, r13
inc r8
cmp byte [rax + r8], 0
jne 0x14002b334
movsxd rbx, dword [rbp + 0xb]
sub rcx, rbx
dec rcx
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp - 0x39]
call fcn.140009b80
add ebx, 1
mov dword [rbp + 0xb], ebx
jns 0x14002b36c
mov dword [rbp + 0xb], 0
jmp case.0x14002b591.69
mov rax, qword [0x14023c580]
sub rax, qword [0x14023c578]
sar rax, 5
cmp ebx, eax
jl 0x14002b38c
dec eax
mov dword [rbp + 0xb], eax
jmp case.0x14002b591.69
movsxd r8, dword [rbp - 0x31]
xor edx, edx
mov rcx, qword [rbp - 0x39]
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [0x14023c580]
sub rdx, qword [0x14023c578]
sar rdx, 5
movsxd rax, ebx
sub rdx, rax
dec rdx
shl rdx, 5
add rdx, qword [0x14023c578]
cmp qword [rdx + 0x18], 0x10
jb 0x14002b3cb
mov rdx, qword [rdx]
mov rcx, qword [rbp - 0x39]
sub rcx, rdx
movzx eax, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14002b3d2
mov rcx, qword [rbp - 0x39]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x14002b3e7
mov dword [rbp - 9], eax
mov dword [rbp - 1], eax
jmp 0x14002b2af
mov rcx, qword [0x14023c580]
mov rdx, qword [0x14023c578]
sub rcx, rdx
sar rcx, 5
cmp rcx, 1
jbe case.0x14002b591.69
mov rax, qword [rbp - 0x39]
mov r8, r13
inc r8
cmp byte [rax + r8], 0
jne 0x14002b421
movsxd rbx, dword [rbp + 0xb]
sub rcx, rbx
dec rcx
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp - 0x39]
call fcn.140009b80
sub ebx, 1
mov dword [rbp + 0xb], ebx
jns 0x14002b459
mov dword [rbp + 0xb], 0
jmp case.0x14002b591.69
mov rax, qword [0x14023c580]
sub rax, qword [0x14023c578]
sar rax, 5
cmp ebx, eax
jl 0x14002b479
dec eax
mov dword [rbp + 0xb], eax
jmp case.0x14002b591.69
movsxd r8, dword [rbp - 0x31]
xor edx, edx
mov rcx, qword [rbp - 0x39]
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [0x14023c580]
sub rdx, qword [0x14023c578]
sar rdx, 5
movsxd rax, ebx
sub rdx, rax
dec rdx
shl rdx, 5
add rdx, qword [0x14023c578]
cmp qword [rdx + 0x18], 0x10
jb 0x14002b4b8
mov rdx, qword [rdx]
mov rcx, qword [rbp - 0x39]
sub rcx, rdx
nop
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14002b4c0
mov rcx, qword [rbp - 0x39]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x14002b4d5
mov dword [rbp - 9], eax
mov dword [rbp - 1], eax
jmp 0x14002b2af
mov r8d, 1
lea rdx, [rbp + 0x5f]
mov ebx, dword [rbp - 0x41]
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
cmp eax, r13d
je case.0x14002b591.69
mov r8d, 1
lea rdx, [rbp + 0x60]
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
cmp eax, r13d
je case.0x14002b591.69
movzx eax, byte [rbp + 0x5f]
cmp al, 0x5b
jne 0x14002b7ac
movsx ecx, byte [rbp + 0x60]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x14002b579
mov r8d, 1
lea rdx, [rbp + 0x61]
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
cmp eax, r13d
je case.0x14002b591.69
cmp byte [rbp + 0x61], 0x7e
jne case.0x14002b591.69
cmp byte [rbp + 0x60], 0x33
jne case.0x14002b591.69
lea rcx, [rbp - 0x41]
call fcn.14002bb80
mov edi, dword [rbp - 9]
jmp case.0x14002b591.69
lea eax, [rcx - 0x41]
cmp eax, 7
ja case.0x14002b591.69
cdqe
mov ecx, dword [rsi + rax*4 + 0x2bb54]
add rcx, rsi
jmp rcx
mov rcx, qword [0x14023c580]
mov rdx, qword [0x14023c578]
sub rcx, rdx
sar rcx, 5
cmp rcx, 1
jbe case.0x14002b591.69
mov rax, qword [rbp - 0x39]
mov r8, r13
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14002b5c0
movsxd rbx, dword [rbp + 0xb]
sub rcx, rbx
dec rcx
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp - 0x39]
call fcn.140009b80
add ebx, 1
mov dword [rbp + 0xb], ebx
jns 0x14002b5f8
mov dword [rbp + 0xb], 0
jmp case.0x14002b591.69
mov rax, qword [0x14023c580]
sub rax, qword [0x14023c578]
sar rax, 5
cmp ebx, eax
jl 0x14002b618
dec eax
mov dword [rbp + 0xb], eax
jmp case.0x14002b591.69
movsxd r8, dword [rbp - 0x31]
xor edx, edx
mov rcx, qword [rbp - 0x39]
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [0x14023c580]
sub rdx, qword [0x14023c578]
sar rdx, 5
movsxd rax, ebx
sub rdx, rax
dec rdx
shl rdx, 5
add rdx, qword [0x14023c578]
cmp qword [rdx + 0x18], 0x10
jb 0x14002b657
mov rdx, qword [rdx]
mov rcx, qword [rbp - 0x39]
sub rcx, rdx
nop
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14002b660
mov rcx, qword [rbp - 0x39]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x14002b675
mov dword [rbp - 9], eax
mov dword [rbp - 1], eax
jmp 0x14002b2af
mov rcx, qword [0x14023c580]
mov rdx, qword [0x14023c578]
sub rcx, rdx
sar rcx, 5
cmp rcx, 1
jbe case.0x14002b591.69
mov rax, qword [rbp - 0x39]
mov r8, r13
nop
inc r8
cmp byte [rax + r8], 0
jne 0x14002b6b0
movsxd rbx, dword [rbp + 0xb]
sub rcx, rbx
dec rcx
shl rcx, 5
add rcx, rdx
mov rdx, qword [rbp - 0x39]
call fcn.140009b80
sub ebx, 1
mov dword [rbp + 0xb], ebx
jns 0x14002b6e8
mov dword [rbp + 0xb], 0
jmp case.0x14002b591.69
mov rax, qword [0x14023c580]
sub rax, qword [0x14023c578]
sar rax, 5
cmp ebx, eax
jl 0x14002b708
dec eax
mov dword [rbp + 0xb], eax
jmp case.0x14002b591.69
movsxd r8, dword [rbp - 0x31]
xor edx, edx
mov rcx, qword [rbp - 0x39]
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [0x14023c580]
sub rdx, qword [0x14023c578]
sar rdx, 5
movsxd rax, ebx
sub rdx, rax
dec rdx
shl rdx, 5
add rdx, qword [0x14023c578]
cmp qword [rdx + 0x18], 0x10
jb 0x14002b747
mov rdx, qword [rdx]
mov rcx, qword [rbp - 0x39]
sub rcx, rdx
nop
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x14002b750
mov rcx, qword [rbp - 0x39]
mov rax, r13
inc rax
cmp byte [rcx + rax], 0
jne 0x14002b765
mov dword [rbp - 9], eax
mov dword [rbp - 1], eax
jmp 0x14002b2af
mov esi, dword [rbp - 1]
cmp edi, esi
je 0x14002b128
mov r8d, edi
mov edx, esi
mov rcx, qword [rbp - 0x39]
call fcn.14002d1d0
add edi, eax
jmp 0x14002b269
mov esi, dword [rbp - 1]
cmp edi, esi
je 0x14002b128
mov dword [rbp - 9], esi
jmp 0x14002b26c
cmp al, 0x4f
jne case.0x14002b591.69
movzx eax, byte [rbp + 0x60]
cmp al, 0x46
je case.0x14002b1a7.5
cmp al, 0x48
jne case.0x14002b591.69
test edi, edi
je case.0x14002b591.69
mov dword [rbp - 9], 0
jmp 0x14002b2af
mov byte [r15], 0
mov dword [rbp - 1], 0
mov dword [rbp - 9], 0
jmp 0x14002b2af
movsxd rax, edi
mov byte [rax + r15], 0
mov dword [rbp - 1], edi
jmp 0x14002b2af
mov r8d, 7
lea rdx, str.e_He_2J
lea ecx, [r8 - 6]
call fcn.14002d4c0
jmp 0x14002b2af
movsxd r11, edi
mov edx, r11d
mov r9d, r11d
mov r8d, r11d
test edi, edi
jle 0x14002b861
mov eax, r11d
mov ecx, r11d
lea r10d, [rdi - 1]
mov r9d, eax
mov r8d, ecx
movsxd rcx, r10d
mov rax, qword [rbp - 0x39]
cmp byte [rcx + rax], 0x20
jne 0x14002b85e
mov edx, r10d
mov edi, r10d
mov eax, r10d
mov r9d, r10d
mov ecx, r10d
mov r8d, r10d
test r10d, r10d
jg 0x14002b830
mov dword [rbp - 9], edi
test edx, edx
jle 0x14002b892
nop word [rax + rax]
lea edx, [rdi - 1]
mov r9d, r8d
movsxd rcx, edx
mov rax, qword [rbp - 0x39]
cmp byte [rcx + rax], 0x20
je 0x14002b88f
mov r9d, edx
mov edi, edx
mov r8d, edx
test edx, edx
jg 0x14002b870
mov dword [rbp - 9], edi
mov ebx, dword [rbp - 1]
sub ebx, r11d
lea eax, [rbx + 1]
movsxd r8, eax
mov rdx, r11
add rdx, qword [rbp - 0x39]
movsxd rcx, r9d
add rcx, qword [rbp - 0x39]
call sub.VCRUNTIME140.dll_memmove
lea eax, [rbx + rdi]
mov dword [rbp - 1], eax
jmp 0x14002b9b4
mov esi, dword [rbp - 1]
cmp esi, dword [rbp - 0x31]
jge 0x14002b128
movsxd r12, r14d
mov r15, qword [rbp - 0x39]
cmp esi, edi
jne 0x14002b969
movsxd rcx, edi
add rcx, r15
mov r8, r12
lea rdx, [rbp + 0x67]
call sub.VCRUNTIME140.dll_memcpy
add edi, r14d
mov dword [rbp - 9], edi
add esi, r14d
mov dword [rbp - 1], esi
movsxd rax, esi
mov byte [rax + r15], 0
cmp byte [0x14023c577], 0
jne 0x14002b202
lea rcx, [rbp - 0x29]
cmp qword [rbp - 0x11], 0x10
cmovae rcx, qword [rbp - 0x29]
mov edx, dword [rbp - 0x19]
call fcn.14002cd90
mov ebx, eax
mov edx, esi
mov rcx, r15
call fcn.14002cd90
add ebx, eax
cmp ebx, dword [rbp + 3]
jge 0x14002b954
mov r8d, r14d
lea rdx, [rbp + 0x67]
mov ecx, dword [rbp - 0x3d]
call fcn.14002d4c0
cmp eax, r13d
je 0x14002ba2d
mov r15, qword [rbp + 0x6f]
jmp 0x14002b128
lea rcx, [rbp - 0x41]
call fcn.14002c600
mov edi, dword [rbp - 9]
mov r15, qword [rbp + 0x6f]
jmp 0x14002b128
movsxd rax, edi
lea rbx, [rax + r15]
mov esi, dword [rbp - 1]
sub esi, edi
movsxd r8, esi
lea rcx, [r12 + rax]
add rcx, r15
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov r8, r12
lea rdx, [rbp + 0x67]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
add edi, r14d
mov dword [rbp - 9], edi
mov esi, dword [rbp - 1]
add esi, r14d
mov dword [rbp - 1], esi
movsxd rax, esi
mov byte [rax + r15], 0
lea rsi, [0x140000000]
lea rcx, [rbp - 0x41]
cmp byte [0x14023c577], 0
je 0x14002b9d2
call fcn.14002c010
mov edi, dword [rbp - 9]
mov r15, qword [rbp + 0x6f]
jmp case.0x14002b591.69
call fcn.14002c600
mov edi, dword [rbp - 9]
mov r15, qword [rbp + 0x6f]
jmp case.0x14002b591.69
lea rcx, [0x14023c578]
call fcn.14002bf90
jmp 0x14002ba2d
mov rax, qword [0x14023c580]
cmp qword [0x14023c578], rax
je 0x14002ba0d
lea rcx, [0x14023c578]
call fcn.14002bf90
cmp byte [0x14023c577], 0
je 0x14002ba29
mov esi, dword [rbp - 1]
cmp edi, esi
je 0x14002ba29
mov dword [rbp - 9], esi
lea rcx, [rbp - 0x41]
call fcn.14002c010
mov r13d, dword [rbp - 1]
mov rdx, qword [rbp - 0x11]
cmp rdx, 0x10
jb 0x14002ba79
inc rdx
mov rcx, qword [rbp - 0x29]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002ba74
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002ba74
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], ntohl
jmp 0x14002ba2d
call fcn.1401896b8
mov eax, r13d
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret