Function at 0x140002430
Capabilities:
Check for time delay via gettickcount
Create directory
Get common file path
Set current directory
Set file attributes

Disassembly:
push rbx
push rsi
push rdi
push r12
mov eax, 0x27d8
call fcn.14000ca90
sub rsp, rax
mov rbx, rcx
mov sil, byte [rsp + 0x2820]
mov dword [rsp + 0x60], 0
mov qword [0x140020e60], rbx
call fcn.140006fb0
mov byte [0x140020e90], 0
mov r9d, 0x104
lea r8, [0x140020bf0]
xor edx, edx
mov rcx, qword [0x140020e60]
call qword [sym.imp.USER32.dll_LoadStringW]
mov r8d, 0x104
lea rdx, [0x1400214d0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r12d, eax
test r12d, r12d
je 0x1400024aa
cmp r12d, 0x104
jbe 0x1400024b2
mov dword [rsp + 0x60], 1
test sil, sil
je 0x140002572
lea rcx, [0x140021af0]
lea rdx, [0x1400214d0]
mov r10, rcx
sub rcx, rdx
mov ax, word [rdx]
mov word [rcx + rdx], ax
add rdx, 2
test ax, ax
jne 0x1400024cf
mov rax, r10
lea rcx, [0x140021af0]
call fcn.140015250
lea rdx, [0x140019606]
lea rcx, [0x140021af0]
call fcn.14000e350
lea rdi, [0x140021af0]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov qword [0x140020ea0], rcx
jmp 0x14000253f
lea rdi, [0x140021af0]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov qword [0x140020ea0], rcx
cmp dword [rsp + 0x60], 0
je 0x14000259f
mov rax, qword [0x140020ea0]
lea rdx, [0x140021af0]
mov word [rdx + rax*2], 0
mov dword [rsp + 0x5c], 0
cmp dword [rsp + 0x60], 0
jne 0x140002e4e
jmp 0x140002cc6
lea rdx, [0x140021af0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov r12d, eax
test r12d, r12d
je 0x140002595
cmp r12d, 0x104
jbe 0x140002521
mov dword [rsp + 0x60], 1
jmp 0x140002521
lea r8, [0x140020e30]
lea rdx, [0x140020e40]
lea rcx, [0x140020e50]
call fcn.140002220
test eax, eax
je 0x1400025de
cmp dword [0x140020e40], 0
je 0x1400025de
cmp qword [0x140020e50], 0
je 0x1400025de
cmp qword [0x140020e30], 0
jne 0x14000269a
mov dword [rsp + 0x60], 3
cmp dword [rsp + 0x60], 0
je 0x140002e78
mov r9d, 0x104
lea r8, [rsp + 0x2478]
mov edx, 1
mov rcx, qword [0x140020e60]
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [0x1400194b0]
lea rcx, [rsp + 0x2478]
call fcn.14000e350
lea rdx, [rsp + 0x2478]
lea rcx, [rsp + 0x2064]
call fcn.14000e350
mov eax, dword [rsp + 0x60]
lea edx, [eax + 1]
mov r9d, 0x104
lea r8, [rsp + 0x2478]
mov rcx, qword [0x140020e60]
call qword [sym.imp.USER32.dll_LoadStringW]
lea rdx, [rsp + 0x2478]
lea rcx, [rsp + 0x2064]
call fcn.14000e350
mov r9d, 0x40010
lea r8, [0x140020bf0]
lea rdx, [rsp + 0x2064]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [rsp + 0x60]
neg eax
jmp 0x140002e7a
cmp dword [rsp + 0x60], 0
jne 0x140002546
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
shl esi, 0xc
shl eax, 0xe
xor esi, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor esi, eax
xor r12d, r12d
cmp r12d, 0x64
jae 0x1400027dc
mov rcx, qword [0x140020ea0]
lea rax, [0x140021af0]
lea rcx, [rax + rcx*2]
lea rdx, [0x140019600]
mov r10, rcx
sub rcx, rdx
mov ax, word [rdx]
mov word [rcx + rdx], ax
add rdx, 2
test ax, ax
jne 0x1400026ef
mov rax, r10
lea rdi, [0x140021af0]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
lea rax, [0x140021af0]
lea rcx, [rax + rcx*2]
mov eax, esi
xor edx, edx
cmp edx, 8
jae 0x140002760
mov r8d, eax
and r8d, 0xf
shr eax, 4
lea r9d, [r8d + 0x37]
cmp r8d, 0xa
jae 0x140002747
lea r9d, [r8d + 0x30]
mov r8d, 7
sub r8d, edx
mov r8d, r8d
mov word [rcx + r8*2], r9w
add edx, 1
cmp edx, 8
jb 0x14000272d
mov eax, edx
mov word [rcx + rax*2], 0
lea rcx, [0x140021af0]
call fcn.140014ec0
test al, al
jne 0x140002798
xor edx, edx
lea rcx, [0x140021af0]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x1400027a9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400027dc
add r12d, 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
add esi, eax
jmp 0x1400026c6
lea rdx, [0x140019606]
lea rcx, [0x140021af0]
call fcn.14000e350
lea rdi, [0x140021af0]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov qword [0x140020ea0], rcx
jmp 0x1400027e4
mov dword [rsp + 0x60], 1
cmp dword [rsp + 0x60], 0
jne 0x140002546
lea rdx, [0x140020eb0]
mov ecx, 0x61c
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea rcx, [0x140021af0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, [0x140021af0]
call fcn.140007020
call qword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.140002f70
lea rax, [0x140002e90]
mov qword [rsp + 0x27c8], rax
lea rax, [0x140002eb0]
mov qword [rsp + 0x27d0], rax
lea rax, [0x140002ec0]
mov qword [rsp + 0x27b8], rax
lea rax, [0x140002ee0]
mov qword [rsp + 0x27c0], rax
lea rcx, [rsp + 0x27a0]
call fcn.140003460
xor edx, edx
lea rcx, [rsp + 0x2758]
call fcn.140003880
mov qword [rsp + 0x2790], 0
lea rdx, [0x1400214d0]
lea rcx, [rsp + 0x27b0]
call fcn.140003180
test eax, eax
je 0x1400028ab
mov dword [rsp + 0x60], InitCommonControls
jmp 0x1400028ec
mov qword [rsp + 0x2678], 0
lea rdx, [rsp + 0x2678]
lea rcx, [rsp + 0x27b0]
call fcn.1400020d0
test eax, eax
je 0x1400028a1
xor r8d, r8d
lea rdx, [rsp + 0x2678]
lea rcx, [rsp + 0x27b0]
call fcn.140003300
test eax, eax
jne 0x1400028a1
cmp dword [rsp + 0x60], 0
jne 0x140002958
mov edx, 0x40000
lea rcx, [rsp + 0x27c8]
call qword [rsp + 0x27c8]
mov qword [rsp + 0x2790], rax
cmp qword [rsp + 0x2790], 0
je 0x140002950
mov qword [rsp + 0x2798], 0x40000
lea rax, [rsp + 0x27a0]
mov qword [rsp + 0x2778], rax
mov qword [rsp + 0x2788], 0
mov qword [rsp + 0x2780], 0
jmp 0x140002958
mov dword [rsp + 0x60], 2
lea rcx, [rsp + 0x2680]
call fcn.140003ac0
cmp dword [rsp + 0x60], 0
je 0x140002979
mov dword [rsp + 0x60], 3
jmp 0x140002c88
lea r9, [rsp + 0x27b8]
lea r8, [rsp + 0x27c8]
lea rdx, [rsp + 0x2758]
lea rcx, [rsp + 0x2680]
call fcn.140006c30
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jne 0x14000296c
mov dword [rsp + 0x267c], 0xffffffff
mov qword [rsp + 0x2670], 0
mov qword [rsp + 0x2668], 0
xor esi, esi
cmp esi, dword [rsp + 0x26e0]
jae 0x140002c71
mov qword [rsp + 0x2660], 0
mov qword [rsp + 0x2658], 0
mov edi, esi
mov rdx, rdi
xor r8, r8
lea rcx, [rsp + 0x2680]
call fcn.140006ec0
cmp rax, 0x104
jae 0x140002c69
mov rax, qword [0x140020ea0]
lea rdx, [0x140021af0]
lea r12, [rdx + rax*2]
mov rdx, rdi
mov r8, r12
lea rcx, [rsp + 0x2680]
call fcn.140006ec0
lea rax, [rsp + 0x27b8]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x27c8]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x2658]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x2660]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x2668]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2670]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x267c]
mov r8d, esi
lea rdx, [rsp + 0x2758]
lea rcx, [rsp + 0x2680]
call fcn.140006c60
mov dword [rsp + 0x60], eax
cmp dword [rsp + 0x60], 0
jne 0x140002c71
xor edi, edi
jmp 0x140002ae0
cmp word [r12 + rdi*2], 0x2f
jne 0x140002adc
mov word [r12 + rdi*2], 0
lea rcx, [0x140021af0]
call fcn.1400152b0
mov word [r12 + rdi*2], 0x5c
add rdi, 1
cmp word [r12 + rdi*2], 0
jne 0x140002aba
mov eax, esi
shr eax, 3
mov edi, eax
mov ecx, esi
and ecx, 7
mov eax, pe_nt_image_headers64
mov r12d, eax
sar r12d, cl
mov rax, qword [rsp + 0x26f0]
movzx eax, byte [rdi + rax]
test eax, r12d
je 0x140002b69
lea rcx, [0x140021af0]
call fcn.1400152b0
jmp 0x140002b54
cmp qword [rsp + 0x2708], 0
je 0x140002b54
mov rax, qword [rsp + 0x2708]
movzx eax, byte [rdi + rax]
test eax, r12d
je 0x140002b54
mov eax, esi
mov rdx, qword [rsp + 0x2710]
mov edx, dword [rdx + rax*4]
lea rcx, [0x140021af0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
add esi, 1
cmp esi, dword [rsp + 0x26e0]
jb 0x1400029db
jmp 0x140002c71
lea rcx, [0x140021af0]
call fcn.140014ec0
test al, al
jne 0x140002c69
lea rdx, [0x140021af0]
lea rcx, [rsp + 0x2650]
call fcn.140003190
test eax, eax
jne 0x140002c69
mov rax, qword [rsp + 0x2658]
mov qword [rsp + 0x2648], rax
mov rax, qword [rsp + 0x2660]
mov rdx, rax
add rdx, qword [rsp + 0x2670]
lea r8, [rsp + 0x2648]
lea rcx, [rsp + 0x2650]
call fcn.140003270
test eax, eax
jne 0x140002be7
mov rax, qword [rsp + 0x2658]
cmp qword [rsp + 0x2648], rax
je 0x140002bef
mov dword [rsp + 0x60], 2
cmp qword [rsp + 0x2718], 0
je 0x140002c47
mov rax, qword [rsp + 0x2718]
movzx eax, byte [rdi + rax]
test eax, r12d
je 0x140002c47
mov eax, esi
mov rdx, qword [rsp + 0x2720]
lea rax, [rdx + rax*8]
mov edx, dword [rax]
mov dword [rsp + 0x2640], edx
mov eax, dword [rax + 4]
mov dword [rsp + 0x2644], eax
lea r9, [rsp + 0x2640]
xor r8, r8
xor edx, edx
mov rcx, qword [rsp + 0x2650]
call qword [sym.imp.KERNEL32.dll_SetFileTime]
lea rcx, [rsp + 0x2650]
call fcn.1400031a0
cmp dword [rsp + 0x60], 0
jne 0x140002c71
test eax, eax
je 0x140002b1e
mov dword [rsp + 0x60], eax
jmp 0x140002c71
mov dword [rsp + 0x60], 2
mov rdx, qword [rsp + 0x2670]
lea rcx, [rsp + 0x27c8]
call qword [rsp + 0x27d0]
lea rdx, [rsp + 0x27c8]
lea rcx, [rsp + 0x2680]
call fcn.140003b80
mov rdx, qword [rsp + 0x2790]
lea rcx, [rsp + 0x27c8]
call qword [rsp + 0x27d0]
lea rcx, [rsp + 0x27b0]
call fcn.1400031a0
jmp 0x140002546
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea rax, str.PBCore64.dll
mov qword [rsp + 0x20], rax
lea r9, [0x140021af0]
lea r8, [0x1400195f2]
mov edx, 0x30e
lea rcx, [rsp + 0x2064]
call fcn.14000e850
lea rcx, [rsp + 0x2064]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
jne 0x140002d31
mov r9d, 0x40010
lea r8, [0x140020bf0]
lea rdx, str.Unable_to_load_module_PBCore
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rdx, [0x140020bf0]
lea rcx, str.APPTITLE
call qword [sym.imp.pbcore64.dll_SetVar]
lea rdx, [0x1400214d0]
lea rcx, str.ARCNAME
call qword [sym.imp.pbcore64.dll_SetVar]
lea rdx, [0x140021af0]
lea rcx, str.PBSFXPATH
call qword [sym.imp.pbcore64.dll_SetVar]
lea rdx, [0x140020eb0]
lea rcx, [0x140019560]
call qword [sym.imp.pbcore64.dll_SetVar]
lea rcx, [0x140020eb0]
lea rdx, [0x1400214d0]
mov r10, rcx
sub rcx, rdx
mov ax, word [rdx]
mov word [rcx + rdx], ax
add rdx, 2
test ax, ax
jne 0x140002d95
mov rax, r10
lea rcx, [0x140020eb0]
call fcn.140015250
lea rdx, [0x140020eb0]
lea rcx, str.ARCPATH
call qword [sym.imp.pbcore64.dll_SetVar]
mov rcx, rbx
call qword [sym.imp.pbcore64.dll_InitSFX]
nop
call fcn.140001170
mov dword [rsp + 0x5c], eax
jmp 0x140002e10
call qword [sym.imp.ole32.dll_CoUninitialize]
cmp qword [rsp + 0x50], 0
je 0x140002e29
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [0x1400194b6]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x140002e4e
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea rcx, [0x140020eb0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea rcx, [0x140021af0]
call fcn.140001580
cmp dword [rsp + 0x5c], 0
je 0x1400025e6
mov eax, dword [rsp + 0x5c]
jmp 0x140002e7a
xor eax, eax
add rsp, 0x27d8
pop r12
pop rdi
pop rsi
pop rbx
ret