Function at 0x14004a2c0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x60
movzx eax, byte [rdx + 0xa]
mov rdi, r8
movzx r11d, byte [rdx + 0xb]
mov r8, rdx
shl r11, 8
mov rbx, rcx
add r11, rax
movzx eax, byte [rdx + 9]
shl r11, 8
add r11, rax
movzx eax, byte [rdx + 8]
movzx edx, byte [rdx + 0xf]
shl rdx, 8
shl r11, 8
add r11, rax
movzx eax, byte [r8 + 0xe]
add rdx, rax
movzx eax, byte [r8 + 0xd]
shl rdx, 8
add rdx, rax
movzx eax, byte [r8 + 0xc]
shl rdx, 8
add rdx, rax
shl rdx, 0x20
add rdx, r11
cmp rdx, 0x7fffffff
ja 0x14004a623
lea rax, [rdx + 0x38]
cmp rax, 0x7fffffff
ja 0x14004a623
cmp r8, rdi
jb 0x14004a602
lea eax, [rdx + 0x38]
movsxd rcx, r9d
movsxd r10, eax
mov rax, rcx
sub rax, rdi
add rax, r8
cmp r10, rax
jg 0x14004a602
cmp edx, r9d
jl 0x14004a389
add rcx, qword [rsp + 0x90]
cmp r10, rcx
jg 0x14004a389
sub edx, r9d
movsxd r8, edx
add r8, rdi
jmp 0x14004a423
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
je 0x14004a3ba
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, dword [rax]
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14004a63d
mov dword [rax + 4], ecx
jmp 0x14004a637
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_clearerr]
mov r9, rbx
lea rcx, [rsp + 0x20]
mov edx, 1
mov r8d, 0x38
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, 0x38
jb 0x14004a3ef
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
test eax, eax
je 0x14004a41e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, dword [rax]
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14004a63d
mov dword [rax], 5
mov dword [rax + 4], ecx
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
lea r8, [rsp + 0x20]
cmp dword [r8], 0x6064b50
jne 0x14004a602
movzx eax, byte [r8 + 0x1a]
movzx ecx, byte [r8 + 0x1b]
movzx r9d, byte [r8 + 0x1f]
movzx edx, byte [r8 + 0x23]
shl rcx, 8
add rcx, rax
shl r9, 8
movzx eax, byte [r8 + 0x19]
shl rcx, 8
add rcx, rax
shl rdx, 8
movzx eax, byte [r8 + 0x18]
shl rcx, 8
add rcx, rax
movzx eax, byte [r8 + 0x1e]
add r9, rax
movzx eax, byte [r8 + 0x1d]
shl r9, 8
add r9, rax
movzx eax, byte [r8 + 0x1c]
shl r9, 8
add r9, rax
movzx eax, byte [r8 + 0x22]
add rdx, rax
shl r9, 0x20
movzx eax, byte [r8 + 0x21]
add r9, rcx
movzx ecx, byte [r8 + 0x27]
shl rcx, 8
shl rdx, 8
add rdx, rax
movzx eax, byte [r8 + 0x20]
shl rdx, 8
add rdx, rax
movzx eax, byte [r8 + 0x26]
add rcx, rax
movzx eax, byte [r8 + 0x25]
shl rcx, 8
add rcx, rax
movzx eax, byte [r8 + 0x24]
shl rcx, 8
add rcx, rax
shl rcx, 0x20
add rcx, rdx
cmp r9, rcx
je 0x14004a50c
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14004a63d
mov qword [rax], 1
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
movzx eax, byte [r8 + 0x2a]
movzx ecx, byte [r8 + 0x2b]
movzx edi, byte [r8 + 0x2f]
movzx edx, byte [r8 + 0x33]
movzx ebx, byte [r8 + 0x37]
shl rdi, 8
shl rcx, 8
add rcx, rax
shl rdx, 8
movzx eax, byte [r8 + 0x29]
shl rcx, 8
add rcx, rax
shl rbx, 8
movzx eax, byte [r8 + 0x28]
shl rcx, 8
add rcx, rax
movzx eax, byte [r8 + 0x2e]
add rdi, rax
movzx eax, byte [r8 + 0x2d]
shl rdi, 8
add rdi, rax
movzx eax, byte [r8 + 0x2c]
shl rdi, 8
add rdi, rax
movzx eax, byte [r8 + 0x32]
add rdx, rax
shl rdi, 0x20
movzx eax, byte [r8 + 0x31]
add rdi, rcx
shl rdx, 8
add rdx, rax
movzx eax, byte [r8 + 0x30]
shl rdx, 8
add rdx, rax
movzx eax, byte [r8 + 0x36]
add rbx, rax
movzx eax, byte [r8 + 0x35]
shl rbx, 8
add rbx, rax
cmp rdi, 0x7fffffff
ja 0x14004a623
movzx eax, byte [r8 + 0x34]
shl rbx, 8
add rbx, rax
shl rbx, 0x20
add rbx, rdx
cmp rbx, 0x7fffffff
ja 0x14004a623
lea rax, [rbx + rdi]
cmp rax, 0x7fffffff
ja 0x14004a623
mov rdx, qword [rsp + 0xa0]
mov rcx, r9
call fcn.14004ae50
test rax, rax
je 0x14004a63d
mov dword [rax + 0x18], edi
mov dword [rax + 0x1c], ebx
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14004a63d
mov qword [rax], reloc.WS2_32.dll_setsockopt
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x60
pop rdi
ret
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x14004a63d
mov dword [rax + 4], 0x1b
mov dword [rax], 4
mov rbx, qword [rsp + 0x70]
xor eax, eax
add rsp, 0x60
pop rdi
ret