Function at 0x6461211c
Capabilities:
Check if file exists
Check mutex on windows
Copy file
Create process on windows
Delete file
Get common file path
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xca0
mov eax, dword [0x646170a0]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push edi
xor edi, edi
mov dword [ebp - 0xc54], ecx
push 0x200
push edi
push eax
mov ebx, edx
mov dword [ebp - 0xc44], esi
mov dword [ebp - 0xc4c], edi
mov dword [ebp - 0xc3c], edi
mov dword [ebp - 0xc30], edi
mov dword [ebp - 0xc60], edi
mov dword [ebp - 0xc5c], edi
mov dword [ebp - 0xc38], edi
mov dword [ebp - 0xc34], edi
mov dword [ebp - 0xc48], edi
mov dword [ebp - 0xc58], edi
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x614]
push 0x200
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x646121d2
test byte [eax + 0x1c], 2
je 0x646121d2
cmp byte [eax + 0x19], 5
jb 0x646121d2
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x54
pop ecx
call fcn.64604423
push 0x5c
push esi
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x646121e4
add eax, 2
lea ecx, [ebp - 0xc34]
push ecx
lea edx, [ebp - 0xc38]
mov ecx, eax
call fcn.646117d8
mov esi, eax
test esi, esi
je 0x64612238
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x6461222a
test byte [eax + 0x1c], 2
je 0x6461222a
cmp byte [eax + 0x19], 2
jb 0x6461222a
push esi
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x55
pop ecx
call fcn.64604441
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x64612f38
lea eax, [ebp - 0x81c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x6461229d
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612285
test byte [eax + 0x1c], 2
je 0x64612285
cmp byte [eax + 0x19], 2
jb 0x64612285
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x56
pop ecx
call fcn.64604441
mov ecx, dword [ebp - 0xc38]
call fcn.6460ce5b
mov ecx, dword [ebp - 0xc34]
call fcn.6460ce5b
jmp 0x64612231
push 0x100
lea eax, [ebp - 0x20c]
push eax
push edi
push edi
push edi
push edi
push edi
push edi
push ebx
call dword [sym.imp.msvcrt.dll__wsplitpath_s]
add esp, 0x24
test eax, eax
je 0x646122f5
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x646122e8
test byte [eax + 0x1c], 2
je 0x646122e8
cmp byte [eax + 0x19], 2
jb 0x646122e8
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x57
pop ecx
call fcn.64604423
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x64612285
push 1
lea eax, [ebp - 0x20c]
push 0x6460265c
push eax
mov dword [ebp - 0xc50], eax
call dword [sym.imp.msvcrt.dll_wcsncmp]
add esp, 0xc
test eax, eax
jne 0x64612324
lea eax, [ebp - 0x20a]
mov dword [ebp - 0xc50], eax
jmp 0x6461232a
lea eax, [ebp - 0x20c]
push ecx
lea ecx, [ebp - 0x414]
push ecx
push eax
push ecx
lea edx, [ebp - 0x81c]
call fcn.6460f83c
cmp eax, edi
jne 0x6461238f
cmp edx, edi
jne 0x6461238f
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612f20
test byte [eax + 0x1c], 2
je 0x64612f20
cmp byte [eax + 0x19], 2
jb 0x64612f20
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x58
pop ecx
call fcn.64604441
jmp 0x64612f20
push edi
lea eax, [ebp - 0x414]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x646123e7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x59
mov edx, 0x64602ff8
pop ecx
call fcn.64604441
jmp 0x64612ca2
push edi
push edi
push 0x100
lea eax, [ebp - 0x614]
push eax
push edi
push edi
push edi
lea eax, [ebp - 0x414]
push edi
push eax
call dword [sym.imp.msvcrt.dll__wsplitpath_s]
add esp, 0x24
test eax, eax
je 0x64612442
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612438
test byte [eax + 0x1c], 2
je 0x64612438
cmp byte [eax + 0x19], 2
jb 0x64612438
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x5a
pop ecx
call fcn.64604423
mov esi, 0x65b
jmp 0x64612ca2
push 0x64602ddc
push edi
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov ebx, eax
mov dword [ebp - 0xc30], ebx
test ebx, ebx
jne 0x64612557
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 2
je 0x646124a2
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x5b
jmp 0x646123d7
mov eax, 0x1f0001
mov esi, edi
push ecx
mov edx, eax
mov ecx, eax
call fcn.646151a6
mov ebx, eax
test ebx, ebx
jne 0x646124f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x5c
jmp 0x646123d7
push 0x64602ddc
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0xc30], eax
test eax, eax
jne 0x6461254b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x6461253f
test byte [eax + 0x1c], 2
je 0x6461253f
cmp byte [eax + 0x19], 2
jb 0x6461253f
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x5d
mov edx, 0x64602ff8
pop ecx
call fcn.64604441
mov ecx, ebx
call fcn.646155b4
jmp 0x64612ca2
mov ecx, ebx
call fcn.646155b4
jmp 0x64612619
push 0x493e0
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x646125ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x6461259c
test byte [eax + 0x1c], 2
je 0x6461259c
cmp byte [eax + 0x19], 2
jb 0x6461259c
push esi
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x5e
pop ecx
call fcn.64604441
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xc30], edi
jmp 0x64612ca2
cmp eax, 0x102
jne 0x646125e7
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x646125e0
test byte [eax + 0x1c], 2
je 0x646125e0
cmp byte [eax + 0x19], 2
jb 0x646125e0
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x5f
pop ecx
call fcn.64604423
mov esi, 0x102
jmp 0x6461259c
cmp eax, 0x80
jne 0x64612619
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612619
test byte [eax + 0x1c], 2
je 0x64612619
cmp byte [eax + 0x19], 3
jb 0x64612619
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x60
pop ecx
call fcn.64604423
push ecx
xor edx, edx
mov ecx, 0x1f0003
call fcn.646151a6
mov dword [ebp - 0xc40], eax
test eax, eax
jne 0x6461266a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x61
jmp 0x646123d7
mov ebx, edi
cmp dword [ebp + ebx - 0xc60], edi
jne 0x64612696
push dword [ebp + ebx - 0xc38]
push edi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebp + ebx - 0xc60], eax
test eax, eax
je 0x646126f4
mov eax, dword [ebp - 0xc40]
add ebx, 4
cmp ebx, 8
jb 0x6461266c
mov ecx, eax
call fcn.646155b4
push dword [ebp - 0xc44]
push 0x64602e10
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
jne 0x64612733
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x63
jmp 0x646123d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612728
test byte [eax + 0x1c], 2
je 0x64612728
cmp byte [eax + 0x19], 2
jb 0x64612728
push esi
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x62
pop ecx
call fcn.64604441
mov ecx, dword [ebp - 0xc40]
jmp 0x64612541
push ecx
push 6
xor edx, edx
pop ecx
call fcn.646151a6
mov ebx, eax
test ebx, ebx
jne 0x6461277e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x64
jmp 0x646123d7
push 0x64602e34
push 0x1000
push edi
push 0x8000004
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [ebp - 0xc4c], eax
test eax, eax
jne 0x646127dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, dword [0x64617004]
cmp ecx, 0x64617004
je 0x6461253f
test byte [ecx + 0x1c], 2
je 0x6461253f
cmp byte [ecx + 0x19], 2
jb 0x6461253f
push esi
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x65
jmp 0x64612534
mov ecx, ebx
call fcn.646155b4
mov eax, dword [ebp - 0xc4c]
push edi
push edi
push edi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0xc48], eax
test eax, eax
jne 0x6461283c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, dword [0x64617004]
cmp ecx, 0x64617004
je 0x64612ca2
test byte [ecx + 0x1c], 2
je 0x64612ca2
cmp byte [ecx + 0x19], 2
jb 0x64612ca2
push esi
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x66
jmp 0x646123d7
push ecx
push dword [ebp - 0xc44]
mov edx, 0x800
push ecx
mov ecx, eax
call fcn.646043aa
mov ebx, eax
test ebx, ebx
jns 0x6461289e
mov ecx, dword [0x64617004]
cmp ecx, 0x64617004
je 0x64612884
test byte [ecx + 0x1c], 2
je 0x64612884
cmp byte [ecx + 0x19], 2
jb 0x64612884
push ebx
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x67
mov edx, 0x64602ff8
pop ecx
call fcn.64604441
mov eax, ebx
and eax, 0x1fff0000
cmp eax, 0x70000
jne 0x64612c0e
movzx esi, bx
jmp 0x64612ca2
mov eax, dword [ebp - 0xc48]
push edi
push eax
call dword [sym.imp.msvcrt.dll_wcschr]
mov ebx, dword [ebp - 0xc44]
pop ecx
pop ecx
lea edx, [eax + 2]
mov dword [ebp - 0xc40], edx
test ebx, ebx
je 0x646128dd
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
cmp ax, di
jne 0x646128c4
sub ebx, ecx
sar ebx, 1
push 0xfffffffffffffffe
pop ecx
lea eax, [ebx + ebx]
sub ecx, eax
jmp 0x646128df
mov ecx, edi
lea eax, [ecx + 0x1000]
shr eax, 1
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, 0x7ff8ffa9
add ebx, 0x80070057
test eax, eax
je 0x64612915
push ecx
lea ecx, [ebp - 0x614]
mov edx, eax
push ecx
push ecx
mov ecx, dword [ebp - 0xc40]
call fcn.646043aa
mov ebx, eax
test ebx, ebx
jns 0x6461294b
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612884
test byte [eax + 0x1c], 2
je 0x64612884
cmp byte [eax + 0x19], 2
jb 0x64612884
push ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x68
jmp 0x64612879
push dword [ebp - 0xc54]
lea eax, [ebp - 0xc2c]
push 0x64602e6c
push 0x208
push eax
call fcn.64604343
mov ebx, eax
add esp, 0x10
test ebx, ebx
jns 0x646129a4
mov ecx, dword [0x64617004]
cmp ecx, 0x64617004
je 0x64612884
test byte [ecx + 0x1c], 2
je 0x64612884
cmp byte [ecx + 0x19], 2
jb 0x64612884
push ebx
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x69
jmp 0x64612879
lea eax, [ebp - 0x414]
mov dword [ebp - 0xc9c], 0x3c
mov dword [ebp - 0xc8c], eax
lea eax, [ebp - 0xc2c]
mov dword [ebp - 0xc88], eax
lea eax, [ebp - 0x81c]
mov dword [ebp - 0xc84], eax
mov eax, dword [ebp - 0xc50]
push 0x64602e88
push eax
mov dword [ebp - 0xc98], 0x500
mov dword [ebp - 0xc94], edi
mov dword [ebp - 0xc90], 0x64602e78
mov dword [ebp - 0xc80], 7
mov dword [ebp - 0xc7c], edi
mov dword [ebp - 0xc78], edi
mov dword [ebp - 0xc74], edi
mov dword [ebp - 0xc70], edi
mov dword [ebp - 0xc6c], edi
mov dword [ebp - 0xc68], edi
mov dword [ebp - 0xc64], edi
call dword [sym.imp.msvcrt.dll__wcsicmp]
pop ecx
pop ecx
test eax, eax
jne 0x64612a49
or dword [ebp - 0xc98], 1
mov dword [ebp - 0xc74], 0x64602e90
push ecx
xor edx, edx
mov ecx, 0x1f0001
call fcn.646151a6
mov ebx, eax
test ebx, ebx
jne 0x64612a96
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x6a
jmp 0x646123d7
push 0x64602eb0
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0xc3c], eax
test eax, eax
jne 0x64612ae9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, dword [0x64617004]
cmp ecx, 0x64617004
je 0x6461253f
test byte [ecx + 0x1c], 2
je 0x6461253f
cmp byte [ecx + 0x19], 2
jb 0x6461253f
push esi
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x6b
jmp 0x64612534
mov ecx, ebx
call fcn.646155b4
lea eax, [ebp - 0xc9c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x64612b86
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612b39
test byte [eax + 0x1c], 2
je 0x64612b39
cmp byte [eax + 0x19], 2
jb 0x64612b39
push esi
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x6c
pop ecx
call fcn.64604441
cmp esi, 0x483
jne 0x64612b63
lea ecx, [ebp - 0x414]
call fcn.64611993
test eax, eax
je 0x64612b67
mov ecx, dword [ebp - 0xc54]
lea edx, [ebp - 0x414]
call fcn.64611a1f
mov esi, eax
test esi, esi
je 0x64612b86
lea eax, [ebp - 0x20c]
push eax
push 0xc0007d73
push 1
push 1
push 3
call fcn.646156af
add esp, 0x14
jmp 0x64612ca2
push 0x493e0
push edi
lea eax, [ebp - 0xc60]
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 0xffffffff
jne 0x64612bda
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ca2
test byte [eax + 0x1c], 2
je 0x64612ca2
cmp byte [eax + 0x19], 2
jb 0x64612ca2
push esi
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x6d
jmp 0x646123d7
mov ebx, 0x102
cmp eax, ebx
jne 0x64612c15
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612c0e
test byte [eax + 0x1c], 2
je 0x64612c0e
cmp byte [eax + 0x19], 2
jb 0x64612c0e
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x6e
pop ecx
call fcn.64604423
mov esi, ebx
jmp 0x64612ca2
xor ebx, ebx
inc ebx
cmp eax, ebx
jne 0x64612c4e
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612c47
test byte [eax + 0x1c], 2
je 0x64612c47
cmp byte [eax + 0x19], 2
jb 0x64612c47
push dword [eax + 0x14]
mov edx, 0x64602ff8
push dword [eax + 0x10]
push 0x6f
pop ecx
call fcn.64604423
mov esi, 0x4d3
jmp 0x64612ca2
mov eax, dword [ebp - 0xc3c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x64612c96
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612c96
test byte [eax + 0x1c], 2
je 0x64612c96
cmp byte [eax + 0x19], 3
jb 0x64612c96
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x70
pop ecx
call fcn.64604441
mov dword [ebp - 0xc3c], edi
mov dword [ebp - 0xc58], ebx
push edi
push 0x64602e10
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
jne 0x64612ce9
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612ce9
test byte [eax + 0x1c], 2
je 0x64612ce9
cmp byte [eax + 0x19], 3
jb 0x64612ce9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x71
pop ecx
call fcn.64604441
mov ebx, edi
mov eax, dword [ebp + ebx*4 - 0xc60]
test eax, eax
je 0x64612d38
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x64612d38
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612d38
test byte [eax + 0x1c], 2
je 0x64612d38
cmp byte [eax + 0x19], 3
jb 0x64612d38
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x72
pop ecx
call fcn.64604441
inc ebx
cmp ebx, 2
jb 0x64612ceb
mov eax, dword [ebp - 0xc3c]
test eax, eax
je 0x64612d8a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x64612d8a
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612d8a
test byte [eax + 0x1c], 2
je 0x64612d8a
cmp byte [eax + 0x19], 3
jb 0x64612d8a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x73
pop ecx
call fcn.64604441
mov eax, dword [ebp - 0xc48]
test eax, eax
je 0x64612dd6
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
test eax, eax
jne 0x64612dd6
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612dd6
test byte [eax + 0x1c], 2
je 0x64612dd6
cmp byte [eax + 0x19], 3
jb 0x64612dd6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x74
pop ecx
call fcn.64604441
mov eax, dword [ebp - 0xc4c]
test eax, eax
je 0x64612e22
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x64612e22
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612e22
test byte [eax + 0x1c], 2
je 0x64612e22
cmp byte [eax + 0x19], 3
jb 0x64612e22
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x75
pop ecx
call fcn.64604441
mov ebx, dword [ebp - 0xc30]
test ebx, ebx
je 0x64612eb4
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
test eax, eax
jne 0x64612e72
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612e72
test byte [eax + 0x1c], 2
je 0x64612e72
cmp byte [eax + 0x19], 3
jb 0x64612e72
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x76
pop ecx
call fcn.64604441
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x64612eb4
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612eb4
test byte [eax + 0x1c], 2
je 0x64612eb4
cmp byte [eax + 0x19], 3
jb 0x64612eb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x77
pop ecx
call fcn.64604441
mov ebx, dword [ebp - 0xc58]
test ebx, ebx
jne 0x64612ec5
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x64612f1e
mov eax, dword [0x64617004]
cmp eax, 0x64617004
je 0x64612f0d
test byte [eax + 0x1c], 2
je 0x64612f0d
cmp byte [eax + 0x19], 3
jb 0x64612f0d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x64617004]
mov edx, 0x64602ff8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x78
pop ecx
call fcn.64604441
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 5
jb 0x64612ec5
mov edi, ebx
mov ecx, dword [ebp - 0xc38]
call fcn.6460ce5b
mov ecx, dword [ebp - 0xc34]
call fcn.6460ce5b
mov eax, edi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.64615f50
mov esp, ebp
pop ebp
ret 4