Function at 0x40c4a0
Capabilities:
Read file on windows

Disassembly:
push r15
mov eax, 0x23a8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.0067cdd0
sub rsp, rax
mov rax, qword [0x00826960]
test byte [rax + 0x1c001], 1
mov rsi, rcx
mov rbx, rdx
mov rbp, r8
mov rdi, r9
je 0x40c4f0
mov dword [r9], 0
add rsp, 0x23a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x140]
xor edx, edx
xor r8d, r8d
mov byte [rsp + 0x160], 0
lea rax, [rcx + 0x22]
mov word [rsp + 0x162], dx
lea r12, [rsp + 0x270]
mov qword [rsp + 0x150], rax
lea rdx, [r12 + 0x22]
mov word [rsp + 0x292], r8w
mov r8d, dword [rsi + 0x14]
lea rax, [0x00840bc0]
mov qword [rsp + 0x280], rdx
mov edx, dword [rbx + 0x138]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x270], rax
mov rax, qword [rbx + 0x860]
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x158], pe_nt_image_headers64
mov qword [rsp + 0x278], 0
lea r9, [rax + r8]
mov byte [rsp + 0x290], 0
mov qword [rsp + 0x288], pe_nt_image_headers64
lea r8, [rax + rdx]
lea rdx, [0x007f72bc]
call fcn.00403810
mov r9d, dword [rsi + 0x10]
lea rdx, [0x007f72bc]
mov rcx, r12
add r9, qword [rbx + 0x860]
mov r8, qword [rsp + 0x150]
call fcn.00403810
mov r14, qword [rsp + 0x280]
lea r13, [rsp + 0xa0]
lea rax, [r13 + 0x10]
mov qword [rsp + 0xa0], rax
test r14, r14
je 0x40cb70
mov rcx, r14
call sub.msvcrt.dll_wcslen
lea r12, [rax + rax]
mov r8, r12
sar r8, 1
cmp r8, 7
mov qword [rsp + 0x80], r8
ja 0x40c710
cmp r8, 1
mov rcx, qword [rsp + 0xa0]
je 0x40c700
test r8, r8
jne 0x40c73e
mov qword [rsp + 0xa8], r8
lea rdx, [r8 + r8]
xor r15d, r15d
mov word [rcx + r8*2], r15w
mov r8d, 0xc70f6907
call fcn.007bc260
lea r12, [rbx + 0x878]
xor edx, edx
mov r8, r13
mov r9, rax
mov rcx, r12
div qword [rbx + 0x880]
add r13, 0x10
call fcn.0070c860
mov rcx, qword [rsp + 0xa0]
test rax, rax
je 0x40c760
mov r14, qword [rax]
test r14, r14
je 0x40c760
cmp rcx, r13
je 0x40c699
call fcn.007da050
mov eax, dword [r14 + 0x2c]
mov dword [rsi + 0x44], eax
mov eax, dword [r14 + 0x28]
mov dword [rsi + 0x40], eax
mov eax, dword [r14 + 0x34]
mov dword [rsi + 0x20], eax
mov eax, dword [r14 + 0x30]
mov dword [rdi], eax
mov rcx, qword [rsp + 0x278]
lea rbx, [0x008407e0]
mov qword [rsp + 0x270], rbx
test rcx, rcx
je 0x40c6d5
call fcn.007da030
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x140], rbx
test rcx, rcx
je 0x40c4dc
call fcn.007da030
jmp 0x40c4dc
movzx eax, word [r14]
mov word [rcx], ax
jmp 0x40c631
lea rdx, [rsp + 0x80]
xor r8d, r8d
mov rcx, r13
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xb0], rax
mov r8, r12
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xa0]
jmp 0x40c631
cmp rcx, r13
je 0x40c76a
call fcn.007da050
mov r15, qword [rsp + 0x150]
lea r13, [rsp + 0x100]
lea rax, [r13 + 0x10]
mov qword [rsp + 0x100], rax
test r15, r15
je 0x40ce0b
mov rcx, r15
call sub.msvcrt.dll_wcslen
lea r14, [rax + rax]
mov r8, r14
sar r8, 1
cmp r8, 7
mov qword [rsp + 0x88], r8
ja 0x40cbc2
cmp r8, 1
mov rcx, qword [rsp + 0x100]
je 0x40cd94
test r8, r8
jne 0x40cbf0
mov qword [rsp + 0x108], r8
lea rdx, [r8 + r8]
xor r14d, r14d
mov word [rcx + r8*2], r14w
mov r8d, 0xc70f6907
call fcn.007bc260
xor edx, edx
mov rcx, r12
mov r8, r13
mov r9, rax
div qword [rbx + 0x880]
call fcn.0070c860
mov rcx, qword [rsp + 0x100]
test rax, rax
je 0x40ccac
mov r14, qword [rax]
test r14, r14
je 0x40ccac
lea rax, [r13 + 0x10]
cmp rcx, rax
je 0x40c82f
call fcn.007da050
mov eax, dword [r14 + 0x34]
mov dword [rsi + 0x20], eax
mov eax, dword [r14 + 0x28]
mov r14d, dword [r14 + 0x38]
mov dword [rsi + 0x40], eax
mov dword [rdi], 0xffffffff
mov rax, qword [rbx + 0x860]
lea r10, [rsp + 0x3a0]
mov ecx, dword [rsi + 0x1c]
mov qword [rsp + 0x48], r10
mov edx, dword [rsi + 0x18]
mov r15, qword [sym.imp.USER32.dll_wsprintfA]
lea r9, [rax + rcx]
mov rcx, r10
lea r8, [rax + rdx]
lea rdx, [0x007f7a36]
call r15
lea rax, [rsp + 0x13a0]
mov r8d, dword [rsi + 0x10]
lea rdx, [0x007f7a3d]
add r8, qword [rbx + 0x860]
mov rcx, rax
mov rbx, rax
call r15
lea rax, [rsi + 0x44]
mov rdx, qword [rsp + 0x48]
mov r9d, r14d
mov r8, rbx
mov qword [rsp + 0x38], rax
lea rax, [rsi + 0x40]
mov rcx, rbp
mov qword [rsp + 0x30], rax
lea rax, [rsi + 0x20]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.004127a0
mov r15, qword [rsp + 0x280]
lea rbx, [rsp + 0xc0]
lea rax, [rbx + 0x10]
mov qword [rsp + 0xc0], rax
test r15, r15
je 0x40cdff
mov rcx, r15
call sub.msvcrt.dll_wcslen
lea rbp, [rax + rax]
mov rdx, rbp
sar rdx, 1
cmp rdx, 7
mov qword [rsp + 0x90], rdx
ja 0x40cc5e
cmp rdx, 1
mov rcx, qword [rsp + 0xc0]
je 0x40cdac
test rdx, rdx
jne 0x40cc8c
lea r11, [r13 + 0x10]
xor ebp, ebp
mov eax, dword [rsi + 0x20]
mov word [rcx + rdx*2], bp
mov r8d, dword [rdi]
mov qword [rsp + 0x100], r11
lea r11, [rbx + 0x10]
mov r9d, dword [rsi + 0x44]
cmp rcx, r11
mov r10d, dword [rsi + 0x40]
je 0x40cdb8
mov qword [rsp + 0x100], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x108], rdx
lea r15, [rsp + 0x50]
xor r11d, r11d
lea rdx, [rbx + 0x10]
mov dword [rsp + 0x124], r9d
mov rcx, r15
mov qword [rsp + 0xc0], rdx
lea r9, [rsp + 0x60]
mov rdx, r12
mov dword [rsp + 0x128], r8d
mov r8, r13
mov byte [rsp + 0x20], 0
mov qword [rsp + 0xc8], 0
mov word [rsp + 0xd0], r11w
mov dword [rsp + 0x120], r10d
mov dword [rsp + 0x12c], eax
mov dword [rsp + 0x130], r14d
mov qword [rsp + 0x60], r12
call fcn.00759f40
mov rcx, qword [rsp + 0x100]
lea rax, [r13 + 0x10]
cmp rcx, rax
je 0x40ca07
call fcn.007da050
mov rcx, qword [rsp + 0xc0]
add rbx, 0x10
cmp rcx, rbx
je 0x40ca1d
call fcn.007da050
mov rbp, qword [rsp + 0x150]
lea rbx, [rsp + 0xe0]
lea rax, [rbx + 0x10]
mov qword [rsp + 0xe0], rax
test rbp, rbp
je 0x40cdf3
mov rcx, rbp
call sub.msvcrt.dll_wcslen
lea rdi, [rax + rax]
mov rdx, rdi
sar rdx, 1
cmp rdx, 7
mov qword [rsp + 0x98], rdx
ja 0x40cc10
cmp rdx, 1
mov rcx, qword [rsp + 0xe0]
je 0x40cda0
test rdx, rdx
jne 0x40cc3e
lea r9, [r13 + 0x10]
xor r8d, r8d
mov eax, dword [rsi + 0x20]
mov word [rcx + rdx*2], r8w
mov r8d, dword [rsi + 0x40]
mov qword [rsp + 0x100], r9
lea r9, [rbx + 0x10]
cmp rcx, r9
je 0x40cdce
mov qword [rsp + 0x100], rcx
mov rcx, qword [rsp + 0xf0]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x108], rdx
lea rdx, [rbx + 0x10]
mov rcx, r15
mov qword [rsp + 0xe0], rdx
lea r9, [rsp + 0x70]
xor edx, edx
mov word [rsp + 0xf0], dx
mov rdx, r12
mov dword [rsp + 0x120], r8d
mov r8, r13
mov byte [rsp + 0x20], 0
mov qword [rsp + 0xe8], 0
mov dword [rsp + 0x124], 0
mov dword [rsp + 0x128], 0
mov dword [rsp + 0x12c], eax
mov dword [rsp + 0x130], r14d
mov qword [rsp + 0x70], r12
call fcn.00759f40
mov rcx, qword [rsp + 0x100]
add r13, 0x10
cmp rcx, r13
je 0x40cb4b
call fcn.007da050
mov rcx, qword [rsp + 0xe0]
add rbx, 0x10
cmp rcx, rbx
je 0x40c6b4
call fcn.007da050
jmp 0x40c6b4
lea rcx, [0x007f79f0]
call fcn.007cd620
mov rsi, rax
mov rcx, qword [rsp + 0x278]
lea rbx, [0x008407e0]
mov qword [rsp + 0x270], rbx
test rcx, rcx
je 0x40cba0
call fcn.007da030
mov rcx, qword [rsp + 0x148]
mov qword [rsp + 0x140], rbx
test rcx, rcx
je 0x40cbba
call fcn.007da030
mov rcx, rsi
call fcn.0067d310
lea rdx, [rsp + 0x88]
xor r8d, r8d
mov rcx, r13
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x110], rax
mov r8, r14
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x100]
jmp 0x40c7ce
lea rdx, [rsp + 0x98]
xor r8d, r8d
mov rcx, rbx
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xf0], rax
mov rdx, rbp
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xe0]
jmp 0x40ca81
lea rdx, [rsp + 0x90]
xor r8d, r8d
mov rcx, rbx
call fcn.0079f8b0
mov rcx, rax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xd0], rax
mov rdx, r15
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xc0]
jmp 0x40c937
lea rax, [r13 + 0x10]
cmp rcx, rax
je 0x40ccba
call fcn.007da050
lea rdx, [0x007f75c8]
mov rcx, qword [rsp + 0x150]
call qword [sym.imp.msvcrt.dll__wfopen]
test rax, rax
mov r14, rax
je 0x40ce1f
mov r8d, 2
xor edx, edx
mov rcx, rax
call fcn.0067f720
mov rcx, r14
call fcn.0067f4d0
xor r8d, r8d
xor edx, edx
mov rcx, r14
mov r15, rax
call fcn.0067f720
mov rcx, r15
call fcn.007da080
mov r9, r14
mov rdx, r15
mov rcx, rax
mov qword [rsp + 0x48], rax
mov r8d, 1
call sub.msvcrt.dll_fread
mov rcx, r14
call sub.msvcrt.dll_fclose
test r15, r15
je 0x40ce17
mov rax, qword [rbx + 0x860]
mov ecx, dword [rsi + 0x14]
mov r14, qword [rbp + 0xc8]
mov edx, dword [rbx + 0x138]
sub r14, qword [rbp + 0xc0]
mov qword [rsp + 0x20], r15
mov r9, qword [rsp + 0x48]
lea r8, [rax + rcx]
mov rcx, rbp
add rdx, rax
sar r14, 2
imul r14d, r14d, 0xaaaaaaab
call fcn.0041a350
mov rdx, rsi
mov rcx, rbx
call fcn.0040b580
mov rcx, qword [rsp + 0x48]
mov dword [rsi + 0x20], eax
call fcn.007da030
jmp 0x40c841
movzx eax, word [r15]
mov word [rcx], ax
jmp 0x40c7ce
movzx eax, word [rbp]
mov word [rcx], ax
jmp 0x40ca81
movzx eax, word [r15]
mov word [rcx], ax
jmp 0x40c937
movdqa xmm1, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x110], xmm1
jmp 0x40c97c
mov r9, qword [rsp + 0xf0]
mov r10, qword [rsp + 0xf8]
mov qword [rsp + 0x110], r9
mov qword [rsp + 0x118], r10
jmp 0x40cac1
lea rcx, [0x007f79f0]
call fcn.007cd620
lea rcx, [0x007f79f0]
call fcn.007cd620
lea rcx, [0x007f79f0]
call fcn.007cd620
xor r14d, r14d
jmp 0x40cd77
mov r8, qword [rsp + 0x150]
lea rdx, str.ERROR:_file_not_found__S_n
mov rcx, qword [0x00826910]
call fcn.0041db00
jmp 0x40c6b4