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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4120e4
push 0x40b668
push dword fs:[0]
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x3330
call fcn.0040b330
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x3338], 0
mov eax, dword [ebp + 8]
mov dword [0x419104], eax
call fcn.004053b0
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x104
push 0x418ee0
push 0
push dword [0x419104]
call dword [sym.imp.USER32.dll_LoadStringW]
mov byte [0x41910c], 1
push 0x104
push 0x419114
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x333c], eax
test eax, eax
je 0x401694
cmp dword [ebp - 0x333c], 0x104
jbe 0x40169e
mov dword [ebp - 0x3338], 1
push 0x419730
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x333c], eax
test eax, eax
je 0x4016c4
cmp dword [ebp - 0x333c], 0x104
jbe 0x4016ce
mov dword [ebp - 0x3338], 1
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x4016d6
mov dword [0x419110], eax
cmp dword [ebp - 0x3338], 0
je 0x401717
mov eax, dword [0x419110]
mov word [eax + eax + 0x419730], 0
mov dword [ebp - 0x3340], 0
cmp dword [ebp - 0x3338], 0
jne 0x401ded
jmp 0x401c75
push 0x4190f0
push 0x4190f8
push 0x4190fc
call fcn.00401450
test eax, eax
je 0x401753
cmp dword [0x4190f8], 0
je 0x401753
mov eax, dword [0x4190f0]
mov edx, dword [0x4190f4]
test edx, edx
jne 0x40180a
test eax, eax
jne 0x40180a
mov dword [ebp - 0x3338], 3
cmp dword [ebp - 0x3338], 0
je 0x401e62
push 0x104
lea eax, [ebp - 0xf20]
push eax
push 1
push dword [0x419104]
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x4120f0
lea eax, [ebp - 0xf20]
push eax
call fcn.0040b8e0
add esp, 8
lea eax, [ebp - 0xf20]
push eax
lea eax, [ebp - 0x1334]
push eax
call fcn.0040b8e0
add esp, 8
push 0x104
lea eax, [ebp - 0xf20]
push eax
mov eax, dword [ebp - 0x3338]
inc eax
push eax
push dword [0x419104]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0xf20]
push eax
lea eax, [ebp - 0x1334]
push eax
call fcn.0040b8e0
add esp, 8
push 0x40010
push 0x418ee0
lea eax, [ebp - 0x1334]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [ebp - 0x3338]
neg eax
jmp 0x401e64
cmp dword [ebp - 0x3338], 0
jne 0x4016ec
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
shl esi, 0xc
shl eax, 0xe
xor esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor esi, eax
mov dword [ebp - 0x3344], esi
xor esi, esi
cmp esi, 0x64
jae 0x401920
mov ecx, dword [0x419110]
lea ecx, [ecx + ecx + 0x419730]
mov edx, 0x41222e
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x40185b
pop eax
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x401873
lea eax, [eax + eax + 0x419730]
mov edx, dword [ebp - 0x3344]
xor ecx, ecx
cmp ecx, 8
jae 0x4018b3
mov edi, edx
and edi, 0xf
shr edx, 4
lea ebx, [edi + 0x37]
cmp edi, 0xa
jae 0x4018a2
lea ebx, [edi + 0x30]
mov edi, 7
sub edi, ecx
mov word [eax + edi*2], bx
inc ecx
cmp ecx, 8
jb 0x40188f
mov word [eax + ecx*2], 0
push 0x419730
call fcn.004119e0
test al, al
jne 0x4018e5
push 0
push 0x419730
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4018f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401920
inc esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add dword [ebp - 0x3344], eax
jmp 0x40183d
push 0x41222a
push 0x419730
call fcn.0040b8e0
add esp, 8
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x401911
mov dword [0x419110], eax
jmp 0x40192a
mov dword [ebp - 0x3338], 1
cmp dword [ebp - 0x3338], 0
jne 0x4016ec
lea eax, [ebp - 0x6fc]
push eax
push 0x61c
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x419730
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x419730
call fcn.00405400
call fcn.00405280
mov eax, 0x405590
mov edx, 0x4055b0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov eax, 0x4055c0
mov edx, 0x4055e0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
lea eax, [ebp - 0x38]
push eax
call fcn.00402280
push 0
lea eax, [ebp - 0x5c]
push eax
call fcn.00405920
mov dword [ebp - 0x40], 0
push 0x419114
lea eax, [ebp - 0x30]
push eax
call fcn.00401f90
test eax, eax
je 0x4019bc
mov dword [ebp - 0x3338], 0xb
jmp 0x4019fa
mov dword [ebp - 0xd20], 0
mov dword [ebp - 0xd1c], 0
lea eax, [ebp - 0xd20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004012b0
test eax, eax
je 0x4019b0
push 0
lea eax, [ebp - 0xd20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00402100
test eax, eax
jne 0x4019b0
cmp dword [ebp - 0x3338], 0
jne 0x401a3d
push 0x40000
lea eax, [ebp - 0x24]
push eax
call dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x401a33
mov dword [ebp - 0x3c], 0x40000
lea eax, [ebp - 0x38]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
jmp 0x401a3d
mov dword [ebp - 0x3338], 2
lea eax, [ebp - 0xe0]
push eax
call fcn.004024a0
cmp dword [ebp - 0x3338], 0
je 0x401a61
mov dword [ebp - 0x3338], 3
jmp 0x401c4d
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00404f70
mov dword [ebp - 0x3338], eax
test eax, eax
jne 0x401a52
or dword [ebp - 0xd20], 0xffffffff
mov dword [ebp - 0xd24], 0
mov dword [ebp - 0xd1c], 0
xor esi, esi
cmp esi, dword [ebp - 0xa0]
jae 0x401c40
mov dword [ebp - 0xd28], 0
mov dword [ebp - 0xd2c], 0
push 0
push esi
lea eax, [ebp - 0xe0]
push eax
call fcn.004051b0
cmp eax, 0x104
jae 0x401c36
mov eax, dword [0x419110]
lea edi, [eax + eax + 0x419730]
push edi
push esi
lea eax, [ebp - 0xe0]
push eax
call fcn.004051b0
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xd2c]
push eax
lea eax, [ebp - 0xd28]
push eax
lea eax, [ebp - 0xd1c]
push eax
lea eax, [ebp - 0xd24]
push eax
lea eax, [ebp - 0xd20]
push eax
push esi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00404fb0
mov dword [ebp - 0x3338], eax
test eax, eax
jne 0x401c40
xor ebx, ebx
jmp 0x401b60
cmp word [edi + ebx*2], 0x2f
jne 0x401b5f
mov word [edi + ebx*2], 0
push 0x419730
call fcn.00411d60
mov word [edi + ebx*2], 0x5c
inc ebx
cmp word [edi + ebx*2], 0
jne 0x401b42
mov eax, esi
shr eax, 3
mov edx, dword [ebp - 0x98]
movzx eax, byte [eax + edx]
mov edx, pe_nt_image_headers32
mov ecx, esi
and ecx, 7
sar edx, cl
test eax, edx
je 0x401ba2
push 0x419730
call fcn.00411d60
inc esi
cmp esi, dword [ebp - 0xa0]
jb 0x401aac
jmp 0x401c40
push 0x419730
call fcn.004119e0
test al, al
jne 0x401c36
push 0x419730
lea eax, [ebp - 0xd34]
push eax
call fcn.00401fb0
test eax, eax
jne 0x401c36
mov eax, dword [ebp - 0xd2c]
mov dword [ebp - 0xd30], eax
lea eax, [ebp - 0xd30]
push eax
mov eax, dword [ebp - 0xd28]
add eax, dword [ebp - 0xd24]
push eax
lea eax, [ebp - 0xd34]
push eax
call fcn.00402080
test eax, eax
jne 0x401c07
mov eax, dword [ebp - 0xd30]
cmp eax, dword [ebp - 0xd2c]
je 0x401c11
mov dword [ebp - 0x3338], 2
lea eax, [ebp - 0xd34]
push eax
call fcn.00401fd0
cmp dword [ebp - 0x3338], 0
jne 0x401c40
test eax, eax
je 0x401b90
mov dword [ebp - 0x3338], eax
jmp 0x401c40
mov dword [ebp - 0x3338], 2
push dword [ebp - 0xd24]
lea eax, [ebp - 0x24]
push eax
call dword [ebp - 0x20]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00402530
push dword [ebp - 0x40]
lea eax, [ebp - 0x24]
push eax
call dword [ebp - 0x20]
lea eax, [ebp - 0x30]
push eax
call fcn.00401fd0
jmp 0x4016ec
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push str.PBCore.dll
push 0x419730
push 0x41221c
push 0x30e
lea eax, [ebp - 0x1334]
push eax
call fcn.0040b960
add esp, 0x14
lea eax, [ebp - 0x1334]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x3348], eax
test eax, eax
jne 0x401cce
push 0x40010
push 0x418ee0
push str.Unable_to_load_module_PBCore
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x418ee0
push str.APPTITLE
call dword [0x414b64]
push 0x419114
push str.ARCNAME
call dword [0x414b64]
push 0x419730
push str.PBSFXPATH
call dword [0x414b64]
lea eax, [ebp - 0x6fc]
push eax
push 0x41218e
call dword [0x414b64]
lea ecx, [ebp - 0x6fc]
mov edx, 0x419114
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x401d1e
pop eax
lea eax, [ebp - 0x6fc]
push eax
call fcn.00411d00
lea eax, [ebp - 0x6fc]
push eax
push str.ARCPATH
call dword [0x414b64]
push dword [ebp + 8]
call dword [0x414b78]
call dword [0x414b7c]
cmp eax, 1
jne 0x401dcc
push 0
push 0x419114
call fcn.00411880
mov dword [ebp - 4], 0
call fcn.00401080
mov dword [ebp - 0x3340], eax
or dword [ebp - 4], 0xffffffff
jmp 0x401dcc
push str.PBCore.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x3348], eax
test eax, eax
je 0x401ded
push dword [ebp - 0x3348]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0xd18]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x333c], eax
test eax, eax
je 0x401e15
cmp dword [ebp - 0x333c], 0x104
jbe 0x401e1a
or eax, 0xffffffff
jmp 0x401e64
lea eax, [ebp - 0xd18]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x419730
call fcn.00405430
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x419730
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
cmp dword [ebp - 0x3340], 0
je 0x40175d
mov eax, dword [ebp - 0x3340]
jmp 0x401e64
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10