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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x120], xmm6
mov qword [rsp + 0x90], rdx
mov rdi, rcx
mov rax, qword [0x180036098]
xor rax, rsp
mov qword [rsp + 0x118], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov dword [rax], 0x50
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], 0x46
mov eax, 0x4e8743bf
mov r13, qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rbx, [rsp + 0xc0]
movaps xmm8, xmmword [str.UPPR]
movsd xmm7, qword [0x180032220]
jmp 0x18002f4d0
cmp eax, 0x520dd0b3
jne 0x18002f4d0
mov eax, 0x42fadfc
xor esi, esi
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp eax, 0xe309f9e7
jg 0x18002f530
cmp eax, 0xad1778e0
jg 0x18002f5a0
cmp eax, 0x9d5c0dc2
jg 0x18002f64e
cmp eax, 0x91f867e0
jle 0x18002f783
cmp eax, 0x91f867e1
je 0x18002f8e9
cmp eax, 0x930e2f4b
je 0x18002f8f9
cmp eax, 0x9c15dbb9
jne 0x18002f4d0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 0x7223cd20
jmp 0x18002f4d0
cmp eax, 0x2d91db11
jle 0x18002f600
cmp eax, 0x54448808
jg 0x18002f687
cmp eax, 0x3c4a502c
jle 0x18002f7ae
cmp eax, 0x3c4a502d
je 0x18002f903
cmp eax, 0x4e8743bf
jne 0x18002f4b3
mov rax, qword [rsp + 0x50]
mov dword [rax + 8], 0x41
mov rax, qword [rsp + 0x50]
mov dword [rax + 0xc], 0x59
mov rax, qword [rsp + 0x50]
add rax, 0x10
mov qword [rsp + 0x98], rax
mov eax, 0x131ebc3e
jmp 0x18002f4d0
cmp eax, 0xd0d26810
jg 0x18002f6ca
cmp eax, 0xc29e73c8
jle 0x18002f7db
cmp eax, 0xc29e73c9
je 0x18002f929
cmp eax, 0xc595b826
je 0x18002f96a
cmp eax, 0xca1fa14e
jne 0x18002f4d0
movsxd rax, dword [rsp + 0x40]
lea rax, [rsp + rax*8]
add rax, 0xd0
mov qword [rsp + 0xb8], rax
mov eax, 0xb3ac8fb4
jmp 0x18002f4d0
cmp eax, 0xcdb67c2
jg 0x18002f71e
cmp eax, 0xe8e60126
jle 0x18002f809
cmp eax, 0xe8e60127
je 0x18002f9a1
cmp eax, 0x42fadfc
je 0x18002f9c5
cmp eax, 0x502fbc2
jne 0x18002f4d0
cmp byte [rsp + 0x3b], 0
mov eax, 0x91f867e1
mov ecx, 0xe309f9e8
cmovne eax, ecx
jmp 0x18002f4d0
cmp eax, 0xa80624d2
jle 0x18002f831
cmp eax, 0xa80624d3
je 0x18002f9d7
cmp eax, 0xa80ebdc6
je 0x18002fa16
cmp eax, 0xa8893113
jne 0x18002f4d0
mov eax, 0x259d3992
xor r15d, r15d
jmp 0x18002f4d0
cmp eax, 0x7223cd1f
jle 0x18002f865
cmp eax, 0x7223cd20
je 0x18002fa26
cmp eax, 0x7579704c
je 0x18002fa38
cmp eax, 0x784fd391
jne 0x18002f4d0
cmp byte [rsp + 0x3a], 0
mov eax, 0x2d91db12
mov ecx, 0xc595b826
cmovne eax, ecx
jmp 0x18002f4d0
cmp eax, 0xd6df8582
jle 0x18002f89c
cmp eax, 0xd6df8583
je 0x18002fa4d
cmp eax, 0xd9831113
je 0x18002fa5e
cmp eax, 0xe24fb821
jne 0x18002f4d0
mov rcx, qword [rsp + 0x48]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x58]
mov qword [rsp + 0xb0], rax
mov eax, 0x8bfe12e5
jmp 0x18002f4d0
cmp eax, 0x131ebc3d
jle 0x18002f8c9
cmp eax, 0x131ebc3e
je 0x18002fa72
cmp eax, 0x29b73450
jne 0x18002fb67
mov rax, qword [rsp + 0xa0]
movsxd rcx, dword [rsp + 0x44]
lea rax, [rax + rax*4]
lea rax, [rsp + rax*4]
add rax, 0xf0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rax + rcx*4]
addss xmm0, dword [rsp + 0x5c]
movss dword [rsp + 0x78], xmm0
mov eax, dword [rsp + 0x44]
add eax, 1
mov dword [rsp + 0x7c], eax
mov eax, 0x8ebbc96c
jmp 0x18002f4d0
cmp eax, 0x8bfe12e5
je 0x18002faa0
cmp eax, 0x8ebbc96c
jne 0x18002f4d0
movss xmm6, dword [rsp + 0x78]
mov eax, 0xe8e60127
mov r14d, dword [rsp + 0x7c]
jmp 0x18002f4d0
cmp eax, 0x2d91db12
je 0x18002f4ba
cmp eax, 0x3505ba68
jne 0x18002f4d0
movsxd rax, dword [rsp + 0x3c]
mov qword [rsp + 0xa0], rax
mov eax, 0x29b73450
jmp 0x18002f4d0
cmp eax, 0xad1778e1
je 0x18002facf
cmp eax, 0xb3ac8fb4
jne 0x18002f4d0
mov rax, qword [rsp + 0xb8]
mov ecx, dword [rsp + 0x40]
call qword [rax]
mov eax, 0xad1778e1
jmp 0x18002f4d0
cmp eax, 0xe309f9e8
je 0x18002fae2
cmp eax, 0xe58a35ab
jne 0x18002f4d0
mov rcx, qword [rsp + 0x48]
call r13
mov eax, 0x520dd0b3
jmp 0x18002f4d0
cmp eax, 0x9d5c0dc3
je 0x18002fafe
cmp eax, 0xa7e3b7fb
jne 0x18002f4d0
mov dword [rsp + 0x40], r12d
mov eax, dword [rsp + 0x40]
cmp eax, 3
mov eax, 0x7579704c
mov ecx, 0xca1fa14e
cmovl eax, ecx
jmp 0x18002f4d0
cmp eax, 0x54448809
je 0x18002fb25
cmp eax, 0x6695f62f
jne 0x18002f4d0
movss xmm0, dword [rsp + 0x5c]
cvtss2sd xmm0, xmm0
divsd xmm0, xmm7
movsd qword [rsp + 0xa8], xmm0
mov eax, 0xc29e73c9
jmp 0x18002f4d0
cmp eax, 0xd0d26811
je 0x18002fb2f
cmp eax, 0xd48ef216
jne 0x18002f4d0
cmp dword [rsp + 0x84], 0
setne byte [rsp + 0x3b]
mov eax, 0x502fbc2
jmp 0x18002f4d0
cmp eax, 0xcdb67c3
je 0x18002fb4a
cmp eax, 0xf66129b
jne 0x18002f4d0
mov eax, 0x54448809
jmp 0x18002f4d0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, 0xe58a35ab
jmp 0x18002f4d0
mov eax, 0xa80624d3
jmp 0x18002f4d0
mov rax, qword [rsp + 0x70]
movaps xmm0, xmmword [0x180032210]
movaps xmmword [rax], xmm0
mov rcx, rbx
mov edx, 8
call fcn.18002f270
mov eax, 0xd9831113
jmp 0x18002f4d0
movsd xmm0, qword [rsp + 0xa8]
cvtsd2ss xmm0, xmm0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
mov edx, dword [rsp + 0x3c]
lea rcx, str.The_average_marks_obtained_in_subject__d_is:__.2f_n
movq r8, xmm2
call fcn.180005a30
mov eax, dword [rsp + 0x3c]
add eax, 1
mov dword [rsp + 0x80], eax
mov eax, 0xd6df8583
jmp 0x18002f4d0
mov rcx, qword [rsp + 0x48]
mov r8d, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x20], 0
mov r9, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x84], eax
mov eax, 0xd48ef216
jmp 0x18002f4d0
movss dword [rsp + 0x5c], xmm6
mov dword [rsp + 0x44], r14d
mov eax, dword [rsp + 0x44]
cmp eax, 5
mov eax, 0x6695f62f
mov ecx, 0x3505ba68
cmovl eax, ecx
jmp 0x18002f4d0
mov rax, qword [rsp + 0x68]
mov eax, 0x259d3992
mov r15, rsi
jmp 0x18002f4d0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov rcx, rdi
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov qword [rsp + 0x48], rax
mov eax, 0xd0d26811
jmp 0x18002f4d0
mov eax, 0xe8e60127
xor r14d, r14d
xorps xmm6, xmm6
jmp 0x18002f4d0
mov rcx, qword [rsp + 0x48]
call r13
mov eax, 0xa8893113
jmp 0x18002f4d0
cmp qword [rsp + 0x60], 0
setne byte [rsp + 0x3a]
mov eax, 0x784fd391
jmp 0x18002f4d0
mov eax, 0xcdb67c3
mov ebp, dword [rsp + 0x80]
jmp 0x18002f4d0
mov rax, qword [rsp + 0x70]
mov eax, 0x42fadfc
mov rsi, qword [rsp + 0x60]
jmp 0x18002f4d0
mov rax, qword [rsp + 0x98]
mov dword [rax], 0x5a
movups xmmword [rsp + 0x104], xmm8
mov dword [rsp + 0x114], 0x57
mov eax, 0xcdb67c3
xor ebp, ebp
jmp 0x18002f4d0
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x68]
mov eax, 0x9d5c0dc3
jmp 0x18002f4d0
mov r12d, dword [rsp + 0x40]
add r12d, 1
mov eax, 0xa7e3b7fb
jmp 0x18002f4d0
mov rcx, qword [rsp + 0x48]
call r13
mov qword [rsp + 0x70], rbx
mov rax, qword [rsp + 0x70]
mov eax, 0x3c4a502d
jmp 0x18002f4d0
mov rax, qword [rsp + 0x68]
mov rcx, qword [0x180032200]
mov qword [rax + 0x10], rcx
movaps xmm0, xmmword [0x1800321f0]
movaps xmmword [rax], xmm0
mov eax, 0xa7e3b7fb
xor r12d, r12d
jmp 0x18002f4d0
mov eax, 0xa80ebdc6
jmp 0x18002f4d0
mov rax, qword [rsp + 0x48]
cmp rax, 0xffffffffffffffff
mov eax, 0xe24fb821
mov ecx, 0x9c15dbb9
cmove eax, ecx
jmp 0x18002f4d0
mov dword [rsp + 0x3c], ebp
mov eax, dword [rsp + 0x3c]
cmp eax, 2
mov eax, 0x930e2f4b
mov ecx, 0xf66129b
cmovl eax, ecx
jmp 0x18002f4d0
cmp eax, 0x259d3992
jne 0x18002f4d0
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x118]
xor rcx, rsp
call fcn.180030dc0
mov rax, r15
movaps xmm6, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret