Function at 0x140002930
Capabilities:
Get file size
Parse pe header
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp], 0xfffffffffffffffe
mov qword [rbp - 0x40], r9
mov rsi, r8
mov qword [rbp - 0x20], rdx
mov r12, rcx
mov r13, qword [rbp + 0x70]
mov eax, dword [0x14002ec28]
mov ecx, dword [0x14002ec2c]
lea edx, [rax - 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [rbp - 0x28]
cmp ecx, 0xa
setl byte [rbp - 0x10]
mov eax, 0x9b7f3800
mov edi, 0xfdf49fcf
mov r15d, 0x19a61d90
mov ebx, 0x6c31c394
nop
cmp eax, 0x19a61d8f
jle 0x1400029c0
cmp eax, 0x19a61d90
je 0x140002a0d
cmp eax, 0x6c31c394
jne 0x1400029a0
jmp 0x140002a41
cmp eax, 0x9b7f3800
je 0x140002a1c
cmp eax, 0xfdf49fcf
jne 0x1400029a0
mov rcx, r12
call fcn.140006e90
mov qword [rbp - 8], rax
mov eax, dword [0x14002ec28]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
mov eax, 0x19a61d90
cmove eax, ebx
cmp dword [0x14002ec2c], 0xa
cmovge eax, r15d
setl dl
xor dl, cl
cmovne eax, ebx
jmp 0x1400029a0
mov rcx, r12
call fcn.140006e90
mov eax, 0xfdf49fcf
jmp 0x1400029a0
movzx ecx, byte [rbp - 0x28]
movzx eax, byte [rbp - 0x10]
mov edx, ecx
xor dl, al
mov edx, 0x19a61d90
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x1400029a0
mov rcx, qword [rbp - 8]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r15d, r15d
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x140002f11
mov r14, rax
mov eax, dword [0x14002ec58]
mov ecx, dword [0x14002ec5c]
lea edx, [rax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
setne al
cmp ecx, 0xa
setl bl
cmp ecx, 9
setg cl
cmp bl, dl
jne 0x140002ab6
or cl, al
jne 0x140002af4
lea rdx, [rbp - 8]
lea r8, [rbp - 0x10]
lea r9, [rbp - 0x28]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileTime]
mov ecx, dword [0x14002ec58]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x14002ec5c], 0xa
setl dl
test dl, cl
jne 0x140002b0b
xor dl, cl
jne 0x140002b0b
lea rdx, [rbp - 8]
lea r8, [rbp - 0x10]
lea r9, [rbp - 0x28]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileTime]
jmp 0x140002ab6
xor r15d, r15d
test eax, eax
je 0x140002f08
mov qword [rbp - 0x38], r12
lea rcx, [rbp - 8]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov ecx, dword [0x14002ec58]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x14002ec5c], 0xa
setl dl
test dl, cl
jne 0x140002b9b
xor dl, cl
jne 0x140002b9b
mov r12, qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
lea rdi, [rbp - 8]
nop dword [rax + rax]
mov rcx, rdi
mov rdx, rsi
call r12
mov rcx, rdi
mov rdx, rsi
call r12
mov ecx, dword [0x14002ec58]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x14002ec5c], 0xa
setl dl
test dl, cl
jne 0x140002b9b
xor dl, cl
je 0x140002b60
test eax, eax
je 0x140002be3
lea rcx, [rbp - 0x10]
mov rdx, qword [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
mov r12, qword [rbp - 0x38]
je 0x140002f08
mov eax, dword [0x14002ec58]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x14002ec5c], 0xa
setl cl
test cl, al
jne 0x140002bec
xor cl, al
je 0x140002c2f
jmp 0x140002bec
mov r12, qword [rbp - 0x38]
jmp 0x140002f08
lea rcx, [rbp - 0x28]
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov ecx, dword [0x14002ec58]
mov ebx, dword [0x14002ec5c]
lea edx, [rcx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
setne r8b
sete cl
cmp ebx, 9
setg dl
cmp ebx, 0xa
setl bl
xor bl, cl
jne 0x140002c3e
or dl, r8b
je 0x140002c3e
lea rcx, [rbp - 0x28]
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
jmp 0x140002bec
test eax, eax
mov r13, qword [rbp - 0x20]
je 0x140002f08
mov rcx, r14
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [0x14002ec58]
mov edi, dword [0x14002ec5c]
lea ebx, [rcx - 1]
imul ebx, ecx
mov edx, ebx
xor edx, 0xfffffffe
and edx, ebx
sete r8b
cmp edi, 0xa
setl cl
test cl, r8b
jne 0x140002cca
xor cl, r8b
jne 0x140002cca
mov r15, qword [sym.imp.KERNEL32.dll_GetFileSize]
nop dword [rax]
mov rcx, r14
xor edx, edx
call r15
mov rcx, r14
xor edx, edx
call r15
mov ecx, dword [0x14002ec58]
mov edi, dword [0x14002ec5c]
lea ebx, [rcx - 1]
imul ebx, ecx
mov edx, ebx
xor edx, 0xfffffffe
and edx, ebx
sete cl
cmp edi, 0xa
setl bl
test bl, cl
jne 0x140002cca
xor bl, cl
je 0x140002c90
lea ecx, [rax - 0x41]
cmp ecx, 0xffffffbd
ja 0x140002eac
cmp eax, 0x1000
mov edi, 0x1000
cmovb edi, eax
mov rcx, rdi
call fcn.14000763c
mov r12, rax
mov byte [rax], 0
mov rcx, rax
add rcx, 1
lea r8, [rdi - 1]
xor r15d, r15d
xor edx, edx
call fcn.140009610
mov dword [rbp - 0x2c], 0
mov qword [rsp + 0x20], 0
lea r9, [rbp - 0x2c]
mov rcx, r14
mov rdx, r12
mov r8d, edi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140002e86
movzx eax, word [r12]
cmp eax, 0x5a4d
jne 0x140002e86
movsxd rdi, dword [r12 + 0x3c]
xor r15d, r15d
test rdi, rdi
js 0x140002e39
mov eax, dword [rbp - 0x2c]
cmp rdi, rax
jge 0x140002e39
cmp dword [r12 + rdi], 0x4550
jne 0x140002e39
mov eax, dword [0x14002ec58]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x14002ec5c], 0xa
setl cl
movabs r13, 0x19db1ded53e8000
test cl, al
jne 0x140002da0
xor cl, al
je 0x140002e05
jmp 0x140002da0
mov eax, dword [r12 + rdi + 8]
mov qword [rbp - 0x18], 0
imul rax, rax, 0x989680
add rax, r13
mov dword [rbp - 0x18], eax
shr rax, 0x20
mov dword [rbp - 0x14], eax
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov r15d, eax
mov eax, dword [0x14002ec58]
mov edx, dword [0x14002ec5c]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x140002e39
or cl, al
je 0x140002e39
mov eax, dword [r12 + rdi + 8]
mov qword [rbp - 0x18], 0
imul rax, rax, 0x989680
add rax, r13
mov dword [rbp - 0x18], eax
shr rax, 0x20
mov dword [rbp - 0x14], eax
lea rcx, [rbp - 0x18]
mov rdx, qword [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
jmp 0x140002da0
mov eax, dword [0x14002ec58]
mov edx, dword [0x14002ec5c]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
setne al
sete bl
cmp edx, 9
setg cl
cmp edx, 0xa
setl dl
xor dl, bl
jne 0x140002e82
or cl, al
mov r13, qword [rbp - 0x20]
je 0x140002e86
nop word cs:[rax + rax]
nop dword [rax + rax]
jmp 0x140002e80
mov r13, qword [rbp - 0x20]
mov rcx, r12
call fcn.140007608
test r15d, r15d
mov r12, qword [rbp - 0x38]
jne 0x140002f08
mov eax, dword [0x14002ec58]
mov edi, dword [0x14002ec5c]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
test edx, edx
setne al
sete cl
cmp edi, 9
setg dl
cmp edi, 0xa
setl bl
xor bl, cl
jne 0x140002ec8
or dl, al
jne 0x140002efe
movups xmm0, xmmword [rsi]
movups xmmword [r13], xmm0
mov eax, dword [0x14002ec58]
lea ecx, [rax - 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x14002ec5c], 0xa
setl cl
mov r15d, 1
test cl, al
jne 0x140002f08
xor cl, al
jne 0x140002f08
movups xmm0, xmmword [rsi]
movups xmmword [r13], xmm0
jmp 0x140002ec8
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call fcn.140004580
mov eax, dword [0x14002ec38]
mov edx, dword [0x14002ec3c]
lea ecx, [rax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp edx, 0xa
setl bl
xor bl, al
mov ebx, 0xed92d092
mov eax, 0xe4e212
cmovne eax, ebx
cmp ecx, 0xffffffff
sete byte [rbp - 0x10]
mov edi, 0xe4e212
cmovne ebx, eax
cmp edx, 0xa
setl byte [rbp - 8]
cmovge ebx, eax
mov eax, 0xb6177676
mov esi, 0xe0858ad7
nop
cmp eax, 0xed92d091
jg 0x140002f90
cmp eax, 0xb6177676
je 0x140002fa5
cmp eax, 0xe0858ad7
jne 0x140002f70
mov eax, ebx
jmp 0x140002f70
cmp eax, 0xed92d092
je 0x140002fc7
cmp eax, 0xe4e212
jne 0x140002f70
mov eax, 0xe0858ad7
jmp 0x140002f70
movzx edx, byte [rbp - 0x10]
movzx eax, byte [rbp - 8]
mov ecx, edx
xor cl, al
test al, al
mov eax, 0xe4e212
cmovne eax, esi
test dl, dl
cmove eax, edi
test cl, cl
cmovne eax, esi
jmp 0x140002f70
mov eax, r15d
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret