Function at 0x140025730
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
movzx r14d, word [rbp + 0x48]
mov r15, r8
movzx r12d, dx
mov rbx, rcx
mov r13d, 0x106
mov esi, 1
xor r8d, r8d
nop dword [rax]
mov rcx, qword [rbx]
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x10]
lea rdx, [rbp + 0x48]
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400257c4
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x1400257aa
lea rcx, [0x140000000]
mov eax, eax
mov ecx, dword [rcx + rax*4 + 0x310a0]
jmp 0x1400257ad
mov ecx, r13d
mov dword [0x1400430b8], ecx
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], 0
mov ecx, dword [rbp - 0x10]
test ecx, ecx
je 0x140025ba5
dec ecx
jne 0x140025ba0
movzx ecx, byte [rbp + 0x48]
mov r8d, 0
test cl, cl
je 0x140025770
test r12b, 4
jne 0x140025b4a
test r12b, 2
jne 0x140025af4
test r12b, 1
je 0x140025ba0
cmp cl, 0x80
jb 0x140025ad4
cmp cl, 0xf0
je 0x140025a2b
cmp cl, 0xd0
jae 0x14002584e
movzx edx, cl
add edx, 0xffffff80
cmp edx, 0x4f
ja 0x140025770
lea rcx, [rbp + 0x48]
call fcn.140025c70
cmp ax, 1
je 0x140025769
movzx eax, byte [rbp + 0x48]
xor edi, edi
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
cmp cl, 0xf1
jne 0x14002595f
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
mov rcx, rbx
cmp byte [rbp + 0x48], al
je 0x140025886
mov r8d, esi
mov edx, 3
call fcn.14002ad10
jmp 0x140025769
lea rdx, [rbp + 0x48]
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx edi, byte [rbp + 0x48]
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx eax, byte [rbp + 0x48]
mov edx, 0x100
mov r8d, esi
mov rcx, rbx
imul ax, dx
mov edx, esi
add di, ax
call fcn.14002ad10
nop
mov rcx, rbx
call fcn.140025eb0
test ax, ax
jne 0x140025ba8
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
cmp byte [rbp + 0x48], 1
mov rcx, rbx
je 0x140025906
mov edx, 3
jmp 0x140025948
lea rdx, [rbp + 0x48]
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx r14d, byte [rbp + 0x48]
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx eax, byte [rbp + 0x48]
mov ecx, 0x100
mov edx, esi
imul ax, cx
mov rcx, rbx
add r14w, ax
mov r8d, esi
call fcn.14002ad10
cmp r14w, di
jne 0x1400258d0
jmp 0x140025769
cmp cl, 0xd0
jne 0x140025a1b
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
mov eax, 0xd0
sub al, byte [rbp + 0x48]
movzx edx, al
mov byte [rbp + 0x48], al
add edx, 0xffffff80
cmp edx, 0x4f
ja 0x1400259a3
lea rcx, [rbp + 0x48]
call fcn.140025c70
movzx esi, ax
movzx eax, byte [rbp + 0x48]
movzx eax, al
lea rdx, [rbp + 0x48]
mov rcx, rbx
mov word [r15], ax
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx edi, byte [rbp + 0x48]
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx eax, byte [rbp + 0x48]
mov ecx, 0x100
imul ax, cx
add di, ax
movsx eax, di
sub eax, 4
test eax, eax
jle 0x140025a07
sub di, 4
mov r8d, 1
mov rcx, rbx
movzx edx, di
call fcn.14002ad10
cmp si, 1
je 0x140025764
xor edi, edi
movzx eax, di
jmp 0x140025ba8
movzx edx, cl
mov rcx, rbx
call fcn.140025d10
jmp 0x140025769
mov rcx, qword [rbx]
lea r9, [rbp - 0x10]
lea rdx, [rbp + 0x48]
xor edi, edi
mov r8d, esi
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140025a7e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x58
jae 0x140025a66
lea rcx, [0x140000000]
mov eax, eax
mov r13d, dword [rcx + rax*4 + 0x310a0]
mov dword [0x1400430b8], r13d
mov dword [0x1400434c8], 2
mov byte [0x1400433c0], dil
mov ecx, dword [rbp - 0x10]
test ecx, ecx
je 0x140025ba5
dec ecx
jne 0x140025ba0
movzx eax, byte [rbp + 0x48]
lea rdx, [rbp + 0x48]
mov rcx, rbx
mov word [r15], ax
call fcn.140025bd0
test ax, ax
jne 0x140025ba8
movzx eax, byte [rbp + 0x48]
mov ecx, 0x100
mov r8d, esi
mov edx, esi
imul ax, cx
add word [r15], ax
mov rcx, rbx
call fcn.14002ad10
movzx eax, di
jmp 0x140025ba8
movzx eax, cl
lea rcx, [0x140000000]
xor edi, edi
movzx eax, word [rcx + rax*2 + 0x3cbb0]
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
cmp cl, 9
je 0x140025b90
lea eax, [rcx - 0xa]
test al, 0xfc
jne 0x140025b1c
cmp cl, 0xb
je 0x140025b1c
mov eax, 0xcc
xor edi, edi
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
movzx eax, cl
cmp cl, 0x80
jb 0x140025b95
mov edx, 0x100
cmp eax, edx
jg 0x140025b90
movzx eax, cl
lea rcx, [0x140000000]
xor edi, edi
movzx eax, word [rcx + rax*2 + 0x30cc0]
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
cmp cl, 9
je 0x140025b90
lea eax, [rcx - 0xa]
test al, 0xfc
jne 0x140025b5b
cmp cl, 0xb
jne 0x140025b09
cmp cl, 0x80
jae 0x140025b6e
movzx eax, cl
xor edi, edi
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
cmp cl, 0xa8
ja 0x140025b90
movzx eax, cl
lea rcx, [0x140000000]
xor edi, edi
movzx eax, word [rcx + rax*2 + 0x30c50]
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
mov eax, 0x20
xor edi, edi
mov word [r15], ax
movzx eax, di
jmp 0x140025ba8
or eax, 0xffffffff
jmp 0x140025ba8
movzx eax, si
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rbp
ret