Function at 0x1400754a0
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov r13, qword [0x140129dc0]
xor r9d, r9d
mov rbx, rdx
mov qword [rsp + 0x48], r13
mov r14, rcx
mov byte [rsp + 0x20], 1
xor edx, edx
mov rcx, r13
lea r8, [r9 - 1]
call fcn.1400d3520
mov rax, qword [0x140124200]
xor r12b, r12b
mov byte [rsp + 0xc8], r12b
mov rbp, 0xffffffffffffffff
mov qword [rsp + 0x78], rsi
mov r15d, dword [rax + 0x13c]
btr r15d, 0x1f
nop dword [rax]
mov rdi, rbx
movzx eax, word [rdi]
cmp ax, 0x20
je 0x140075522
cmp ax, 9
jne 0x140075528
add rdi, 2
jmp 0x140075513
cmp ax, 0x2a
jne 0x140075653
movzx esi, word [rdi + 2]
lea rbx, [rdi + 2]
test esi, 0xffffff80
jne 0x140075556
mov edx, 2
mov ecx, esi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__isctype]
test eax, eax
je 0x140075556
and esi, 0xffffffdf
cmp esi, 0x43
je 0x14007562a
cmp esi, 0x4d
je 0x1400755d7
cmp esi, 0x50
je 0x14007557a
cmp esi, 0x54
jne 0x140075632
mov r12b, 1
jmp 0x140075632
lea rcx, [rdi + 4]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
movzx edx, word [rbx]
mov r15d, eax
test dx, dx
je 0x1400755bf
nop
lea rcx, [0x140106710]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x140075624
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x1400755a0
movzx edx, word [rbx + 2]
add rbx, 2
test dx, dx
jne 0x140075590
mov rax, qword [0x140124200]
mov dl, 1
mov rcx, r14
mov dword [rax + 0x40], 0x57
jmp 0x140075d02
lea rcx, [rdi + 4]
call fcn.140061c00
movzx r8d, word [rbx]
mov rbp, rax
test r8w, r8w
je 0x1400755bf
nop dword [rax]
lea rdx, [0x140106710]
mov ecx, SafeArrayAllocDescriptor
nop dword [rax]
cmp r8w, cx
je 0x140075624
movzx ecx, word [rdx + 2]
add rdx, 2
test cx, cx
jne 0x140075600
movzx r8d, word [rbx + 2]
add rbx, 2
test r8w, r8w
jne 0x1400755f0
jmp 0x1400755bf
add rbx, 0xfffffffffffffffe
jmp 0x140075632
mov byte [rsp + 0xc8], 1
cmp word [rbx], 0
je 0x140075510
add rbx, 2
cmp word [rbx], 0
je 0x140075510
add rbx, 2
jmp 0x140075510
xor edi, edi
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x8000000
mov rcx, rbx
mov dword [rsp + 0x20], 3
lea r8d, [rdi + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400756a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x140124200]
mov dl, 1
mov dword [rcx + 0x40], eax
mov rcx, r14
jmp 0x140075d02
xor eax, eax
lea rdx, [rsp + 0xd4]
mov rcx, rsi
mov qword [rsp + 0xd0], rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, 0xffffffff
mov dword [rsp + 0xd0], eax
cmp eax, ecx
jne 0x1400756dc
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400756ea
mov ecx, 0xffffffff
mov rbx, qword [rsp + 0xd0]
cmp rbx, 0xffffffffffffffff
jne 0x14007570d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x140124200]
mov dword [rcx + 0x40], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dl, 1
mov rcx, r14
jmp 0x140075d02
cmp rbx, rbp
cmova rbx, rbp
cmp rbx, rcx
jbe 0x140075737
lea r9, [0x1400ef7d4]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r14
call fcn.14005f950
jmp 0x140075d07
test rbx, rbx
jne 0x140075759
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x140124200]
xor edx, edx
mov rcx, r14
mov dword [rax + 0x40], edi
jmp 0x140075d02
cmp byte [rsp + 0xc8], dil
je 0x140075872
movzx eax, byte [r13 + 0x23]
test al, al
jne 0x140075778
mov rax, qword [r13 + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
je 0x140075872
mov rax, rbx
mov byte [rsp + 0x20], dil
and eax, 1
mov r8, rbx
shr r8, 1
mov bpl, 1
add r8, rax
movzx r9d, bpl
xor edx, edx
mov rcx, r13
call fcn.1400d3520
cmp eax, 1
jne 0x1400758a4
xor r8d, r8d
mov edx, eax
mov rcx, r13
call fcn.140001740
mov rdi, rax
test rax, rax
je 0x1400758a4
lea r9, [rsp + 0xd8]
mov qword [rsp + 0x20], 0
mov r8d, ebx
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r14d, eax
mov dword [rsp + 0xd0], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [0x140124200]
mov dword [rcx + 0x40], eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14d, r14d
je 0x140075c65
movzx ebx, byte [rsp + 0xc8]
test bl, bl
jne 0x140075bb6
mov ecx, dword [rsp + 0xd8]
cmp ecx, 3
jb 0x1400758b4
cmp byte [rdi], 0xef
jne 0x1400758b4
cmp byte [rdi + 1], 0xbb
jne 0x1400758b4
cmp byte [rdi + 2], 0xbf
jne 0x1400758b4
lea r8d, [rcx - 3]
mov r9d, 0xfde9
mov rcx, r13
lea rdx, [rdi + 3]
call fcn.1400d4300
test eax, eax
jne 0x1400758f9
xor r14d, r14d
mov dword [rsp + 0xd0], r14d
jmp 0x1400758f9
lea rcx, [rbx + 2]
xor bpl, bpl
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x1400757c7
lea r9, [0x1400ef7d4]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r14
call fcn.14005f950
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140075d07
cmp ecx, 2
jb 0x14007592f
cmp byte [rdi], 0xff
jne 0x14007592f
cmp byte [rdi + 1], 0xfe
jne 0x14007592f
lea rdx, [rdi + 2]
add ecx, 0xfffffffe
mov r8d, ecx
mov r9b, 1
shr r8, 1
mov rcx, r13
mov byte [rsp + 0x20], 0
call fcn.1400d3520
test eax, eax
mov eax, 0
cmove r14d, eax
mov dword [rsp + 0xd0], r14d
test rdi, rdi
je 0x140075902
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor r8d, r8d
mov rcx, r13
lea edx, [r8 + 1]
call fcn.140001740
mov qword [rsp + 0x58], rax
mov r15, rax
test r12b, r12b
je 0x140075cb6
cmp byte [r13 + 0x23], 0
jne 0x140075952
mov rbx, qword [r13 + 0x10]
jmp 0x140075955
mov rdx, rdi
cmp r15d, 0x4b0
je 0x1400758cb
mov r8d, ecx
mov r9d, r15d
mov rcx, r13
call fcn.1400d4300
test eax, eax
jne 0x1400758f4
xor r14d, r14d
jmp 0x1400758ec
mov rbx, r13
cmp byte [rbx + 0x23], 1
lea r12, [0x14012d5d0]
jne 0x140075976
test byte [rbx + 0x21], 8
je 0x140075970
mov rcx, rbx
call fcn.1400015e0
lea rsi, [rbx + 0x10]
jmp 0x140075979
mov rsi, r12
mov rsi, qword [rsi]
xor eax, eax
shr rsi, 1
mov ebp, 0xffffffff
mov r14d, eax
mov ebx, eax
mov qword [rsp + 0x50], rax
cmp word [r15], ax
je 0x140075b76
cmp rsi, 0x1388
jb 0x140075b11
mov edi, eax
nop dword [rax]
lea rdx, [0x14010f738]
mov rcx, r15
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov r13, rax
test rax, rax
je 0x140075a79
inc edi
mov eax, 0xffffffff
mov dword [rsp + 0x40], edi
add ebp, eax
mov rdi, r13
sub rdi, r15
sar rdi, 1
lea rax, [rdi + rbx]
lea rcx, [rax + 1]
mov qword [rsp + 0x60], rax
cmp rcx, qword [rsp + 0x50]
jb 0x140075a40
mov edx, dword [rsp + 0x40]
mov rax, r13
sub rax, qword [rsp + 0x58]
mov r8d, ebp
movsxd rcx, ecx
sar rax, 1
cdqe
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, 0xffffffffffffffff
movsxd r9, esi
call fcn.1400cf210
mov rcx, r14
mov qword [rsp + 0x50], rax
lea rdx, [rax + rax]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x140075ab5
mov r14, rax
test rdi, rdi
je 0x140075a5a
lea r8, [rdi + rdi]
mov rdx, r15
lea rcx, [r14 + rbx*2]
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rsp + 0x60]
movzx eax, word [reloc.WSOCK32.dll_inet_addr]
lea r15, [r13 + 4]
mov edi, dword [rsp + 0x40]
mov word [r14 + rbx*2], ax
inc rbx
test ebp, ebp
jne 0x1400759b0
test edi, edi
je 0x140075b71
mov rdi, qword [rsp + 0x58]
mov rax, r15
sub rax, rdi
sar rax, 1
sub rsi, rax
je 0x140075ae7
lea rbp, [rsi + rbx]
cmp rbp, qword [rsp + 0x50]
jb 0x140075ad4
lea rdx, [rbp*2 + 2]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
jne 0x140075ad1
test r14, r14
je 0x140075ac3
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r13, qword [rsp + 0x48]
xor eax, eax
mov ebx, eax
jmp 0x140075b79
mov r14, rax
lea r8, [rsi + rsi]
mov rdx, r15
lea rcx, [r14 + rbx*2]
call sub.VCRUNTIME140.dll_memcpy
mov rbx, rbp
xor eax, eax
lea r8, [rbx*2 + 2]
mov rdx, r14
mov word [r14 + rbx*2], ax
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r13, qword [rsp + 0x48]
jmp 0x140075b79
mov rdi, r15
mov r13, rbp
nop word [rax + rax]
lea rdx, [0x14010f738]
mov rcx, rdi
call qword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov rbx, rax
test rax, rax
je 0x140075b71
mov rcx, rax
lea rdi, [rax + 2]
sub rcx, r15
lea rdx, [rax + 4]
sar rcx, 1
mov r8, rsi
sub r8, rcx
mov rcx, rdi
lea r8, [r8*2 - 2]
call sub.VCRUNTIME140.dll_memmove
movzx eax, word [reloc.WSOCK32.dll_inet_addr]
dec rsi
mov word [rbx], ax
add ebp, r13d
jne 0x140075b20
mov r13, qword [rsp + 0x48]
mov rbx, rsi
cmp byte [r13 + 0x23], 0
jne 0x140075b86
mov rdi, qword [r13 + 0x10]
jmp 0x140075b89
mov rdi, r13
cmp byte [rdi + 0x23], 1
jne 0x140075ba1
test byte [rdi + 0x21], 8
je 0x140075b9d
mov rcx, rdi
call fcn.1400015e0
lea r12, [rdi + 0x10]
mov r14d, dword [rsp + 0xd0]
lea rax, [rbx + rbx]
mov qword [r12], rax
jmp 0x140075cae
movzx eax, byte [r13 + 0x23]
test al, al
jne 0x140075bc7
mov rax, qword [r13 + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
jne 0x140075c11
mov edx, dword [rsp + 0xd8]
mov rcx, rdi
call fcn.1400d3300
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp ebx, 1
jne 0x140075ce2
mov rcx, qword [0x140127a38]
lea rdx, [0x1400ef8b4]
xor r9d, r9d
mov byte [rsp + 0x20], bl
lea r8, [r9 - 1]
call fcn.1400d3520
jmp 0x140075d07
mov ecx, dword [rsp + 0xd8]
test cl, 1
je 0x140075c23
mov byte [rcx + rdi], 0
inc ecx
xor eax, eax
mov esi, ecx
mov word [rcx + rdi], ax
cmp byte [r13 + 0x23], al
jne 0x140075c37
mov rbx, qword [r13 + 0x10]
jmp 0x140075c3a
mov rbx, r13
cmp byte [rbx + 0x23], 1
jne 0x140075c58
test byte [rbx + 0x21], 8
je 0x140075c4e
mov rcx, rbx
call fcn.1400015e0
lea r12, [rbx + 0x10]
mov qword [r12], rsi
jmp 0x140075cae
lea r12, [0x14012d5d0]
mov qword [r12], rsi
jmp 0x140075cae
xor eax, eax
mov word [rdi], ax
cmp byte [r13 + 0x23], al
jne 0x140075c76
mov rbx, qword [r13 + 0x10]
jmp 0x140075c79
mov rbx, r13
cmp byte [rbx + 0x23], 1
jne 0x140075c95
test byte [rbx + 0x21], 8
je 0x140075c8f
mov rcx, rbx
call fcn.1400015e0
xor eax, eax
lea r12, [rbx + 0x10]
jmp 0x140075c9c
lea r12, [0x14012d5d0]
mov qword [r12], rax
test bpl, bpl
jne 0x140075cae
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
movzx ebx, byte [rsp + 0xc8]
cmp byte [r13 + 0x23], 0
jne 0x140075cc1
mov r13, qword [r13 + 0x10]
cmp byte [r13 + 0x23], 2
jne 0x140075ce6
cmp qword [0x14012bc60], 0
je 0x140075ce6
lea rcx, [0x14012bc48]
call fcn.140007560
test eax, eax
jne 0x140075cf4
xor eax, eax
jmp 0x140075d07
and byte [r13 + 0x21], 0x86
test bl, bl
je 0x140075cf4
or byte [r13 + 0x21], 1
mov rcx, qword [rsp + 0xc0]
test r14d, r14d
sete dl
call fcn.14005f550
mov rsi, qword [rsp + 0x78]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret