Function at 0x1400529b0
Capabilities:
Create process on windows
Read file via mapping
Terminate process

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x928
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x910], rax
mov rbx, rcx
mov rbp, r8
mov qword [rsp + 0x50], r8
mov r14, rdx
lea rcx, [rsp + 0x512]
mov r8d, Ordinal_512
xor edx, edx
mov word [rsp + 0x510], 0
call sub.ntdll.dll_memset
mov r9, qword [rbx + 8]
mov r8d, dword [rbx]
xor esi, esi
lea rdx, str.winchk.exe__d__I64d__d__d
lea rcx, [rsp + 0x510]
mov eax, esi
cmp dword [rbx + 0x14], eax
setne al
mov dword [rsp + 0x28], eax
mov eax, dword [rbx + 0x10]
mov dword [rsp + 0x20], eax
call qword [sym.imp.MSVCR80.dll__swprintf]
call fcn.140049400
lea rcx, [rsp + 0x712]
xor edx, edx
mov r8d, Ordinal_512
mov rdi, rax
mov word [rsp + Ordinal_1812], si
call sub.ntdll.dll_memset
mov rcx, qword [rbx + 8]
mov rax, qword [rdi]
mov r9d, dword [rbx]
mov qword [rsp + 0x20], rcx
lea rdx, [rsp + 0x710]
mov r8d, 0x100
mov rcx, rdi
call qword [rax + 0x58]
test eax, eax
jne 0x140052b8b
call fcn.140049470
lea r12, [0x1404334b0]
xor edx, edx
mov rcx, r12
mov r8d, 0x80
mov rbx, rax
call sub.ntdll.dll_memset
lea edx, [rsi + 0x5c]
lea rcx, str...winchk.cpp
call qword [sym.imp.ntdll.dll_strrchr]
test rax, rax
mov rdi, rax
je 0x140052b43
xor eax, eax
lea r8d, [rsi + 0x2c]
lea rdx, [0x1402dfd08]
lea rcx, [rsp + 0x500]
mov byte [rsp + Ordinal_1282], sil
mov qword [rsp + Ordinal_1288], rax
mov word [rsp + reloc.MFC80U.DLL_Ordinal_1289], ax
mov byte [rsp + Ordinal_1292], al
call qword [sym.imp.ntdll.dll_sprintf]
lea rdx, [rdi + 1]
mov rcx, r12
sub rcx, rdx
nop
movzx eax, byte [rdx]
add rdx, 1
test al, al
mov byte [rcx + rdx - 1], al
jne 0x140052b00
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x500]
nop
nop
nop
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x140052b30
mov rsi, r12
mov rax, qword [rbx]
lea rdx, str._s:_Failed_to_get_volume_GUID_in_CWinchk::StartCheck.
mov r8, rsi
mov rcx, rbx
call qword [rax + 0x10]
lea rcx, [rsp + 0xe0]
xor edx, edx
mov r8d, 0x418
call sub.ntdll.dll_memset
lea rcx, [rsp + 0xe0]
mov rdx, rbp
mov dword [rsp + Ordinal_1262], 1
call r14
xor eax, eax
jmp 0x140052f03
xor eax, eax
lea rcx, [rsp + 0x70]
xor edx, edx
lea r8d, [rax + 0x68]
mov qword [rsp + Ordinal_2342], r15
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
call sub.ntdll.dll_memset
or dword [rsp + 0xac], 1
lea rax, [rsp + 0x58]
lea rdx, [rsp + 0x510]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rsi
xor r8d, r8d
xor ecx, ecx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x70], 0x68
mov word [rsp + 0xb0], si
mov dword [rsp + 0x20], esi
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov ecx, 0x3e8
mov edi, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
test edi, edi
mov r15, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
mov qword [rsp + Ordinal_1282], rax
mov qword [0x140423208], r15
jne 0x140052c65
call fcn.140049470
lea rcx, str...winchk.cpp
mov edx, 0x50
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052850
lea rdx, str._s:_CreateProcess_failed
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor eax, eax
jmp 0x140052efb
mov edi, esi
nop
nop
nop
xor edx, edx
lea r8, str.PAssist_Winchk_File_Mapping
lea ecx, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
test rax, rax
mov rbp, rax
jne 0x140052cdb
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, edi
add edi, 1
cmp edx, 0xc
jl 0x140052c70
call fcn.140049470
lea edx, [rbp + 0x60]
lea rcx, str...winchk.cpp
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052850
lea rdx, str._s:_Failed_to_OpenFileMapping.
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
xor eax, eax
jmp 0x140052efb
lea r8, str.PAssist_Winchk_Event
xor edx, edx
mov ecx, 0x1f0003
call qword [sym.imp.KERNEL32.dll_OpenEventW]
test rax, rax
mov r12, rax
jne 0x140052d3e
call fcn.140049470
lea edx, [r12 + 0x68]
lea rcx, str...winchk.cpp
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052850
lea rdx, str._s:_Failed_to_OpenEvent.
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140052efb
lea r8, str.PAssist_Winchk_Event1
xor edx, edx
mov ecx, 0x1f0003
mov qword [rsp + Ordinal_2425], r13
call qword [sym.imp.KERNEL32.dll_OpenEventW]
test rax, rax
mov r13, rax
jne 0x140052db1
call fcn.140049470
lea edx, [r13 + 0x71]
lea rcx, str...winchk.cpp
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052850
lea rdx, str._s:_Failed_to_OpenEvent.
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140052ef3
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
lea edx, [r9 + 4]
mov qword [rsp + 0x20], reloc.MFC80U.DLL_Ordinal_2096
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
test rax, rax
mov rdi, rax
jne 0x140052e2e
call fcn.140049470
lea rcx, str...winchk.cpp
mov edx, 0x81
mov rbx, qword [rax]
mov rdi, rax
call fcn.140052850
lea rdx, str._s:_Failed_to_MapViewOfFile.
mov rcx, rdi
mov r8, rax
call qword [rbx + 0x10]
xor edx, edx
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140052ef3
lea rcx, [0x140433530]
xor edx, edx
mov r8d, 0x418
call sub.ntdll.dll_memset
mov rbx, qword [rsp + 0x50]
nop
nop
nop
or edx, 0xffffffff
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea rcx, [0x140433530]
mov rdx, rdi
mov r8d, 0x418
call sub.ntdll.dll_memcpy
test r14, r14
je 0x140052e89
lea rcx, [0x140433530]
mov rdx, rbx
call r14
test eax, eax
mov esi, eax
je 0x140052ea4
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetEvent]
cmp dword [0x140433934], 0
jne 0x140052ea4
cmp dword [0x140433940], 2
jne 0x140052e50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test esi, esi
je 0x140052eba
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x500]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x140423208], 0xffffffffffffffff
mov eax, 1
mov r13, qword [rsp + 0x978]
mov r15, qword [rsp + 0x920]
mov rcx, qword [rsp + 0x910]
xor rcx, rsp
call fcn.140161080
add rsp, 0x928
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret