Function at 0x401770
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 0x412310
push 0x40cbd8
push dword fs:[0]
mov dword fs:[0], esp
sub esp, 8
mov eax, 0x3330
call fcn.0040b340
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.00405520
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 0x401804
cmp dword [ebp - 0x333c], 0x104
jbe 0x40180e
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 0x401834
cmp dword [ebp - 0x333c], 0x104
jbe 0x40183e
mov dword [ebp - 0x3338], 1
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x401846
mov dword [0x419110], eax
cmp dword [ebp - 0x3338], 0
je 0x401887
mov eax, dword [0x419110]
mov word [eax + eax + 0x419730], 0
mov dword [ebp - 0x3340], 0
cmp dword [ebp - 0x3338], 0
jne 0x401f5d
jmp 0x401de5
push 0x4190f0
push 0x4190f8
push 0x4190fc
call fcn.004015c0
test eax, eax
je 0x4018c3
cmp dword [0x4190f8], 0
je 0x4018c3
mov eax, dword [0x4190f0]
mov edx, dword [0x4190f4]
test edx, edx
jne 0x40197a
test eax, eax
jne 0x40197a
mov dword [ebp - 0x3338], 3
cmp dword [ebp - 0x3338], 0
je 0x401fd2
push 0x104
lea eax, [ebp - 0xf20]
push eax
push 1
push dword [0x419104]
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x41231c
lea eax, [ebp - 0xf20]
push eax
call fcn.0040c980
add esp, 8
lea eax, [ebp - 0xf20]
push eax
lea eax, [ebp - 0x1334]
push eax
call fcn.0040c980
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.0040c980
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 0x401fd4
cmp dword [ebp - 0x3338], 0
jne 0x40185c
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 0x401a90
mov ecx, dword [0x419110]
lea ecx, [ecx + ecx + 0x419730]
mov edx, 0x41245a
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x4019cb
pop eax
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x4019e3
lea eax, [eax + eax + 0x419730]
mov edx, dword [ebp - 0x3344]
xor ecx, ecx
cmp ecx, 8
jae 0x401a23
mov edi, edx
and edi, 0xf
shr edx, 4
lea ebx, [edi + 0x37]
cmp edi, 0xa
jae 0x401a12
lea ebx, [edi + 0x30]
mov edi, 7
sub edi, ecx
mov word [eax + edi*2], bx
inc ecx
cmp ecx, 8
jb 0x4019ff
mov word [eax + ecx*2], 0
push 0x419730
call fcn.004119f0
test al, al
jne 0x401a55
push 0
push 0x419730
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x401a67
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x401a90
inc esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add dword [ebp - 0x3344], eax
jmp 0x4019ad
push 0x412456
push 0x419730
call fcn.0040c980
add esp, 8
mov edx, 0x419730
or eax, 0xffffffff
inc eax
cmp word [edx + eax*2], 0
jne 0x401a81
mov dword [0x419110], eax
jmp 0x401a9a
mov dword [ebp - 0x3338], 1
cmp dword [ebp - 0x3338], 0
jne 0x40185c
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.00405570
call fcn.004053f0
mov eax, 0x4055a0
mov edx, 0x4055c0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
mov eax, 0x4055d0
mov edx, 0x4055f0
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
lea eax, [ebp - 0x38]
push eax
call fcn.004023f0
push 0
lea eax, [ebp - 0x5c]
push eax
call fcn.00405930
mov dword [ebp - 0x40], 0
push 0x419114
lea eax, [ebp - 0x30]
push eax
call fcn.00402100
test eax, eax
je 0x401b2c
mov dword [ebp - 0x3338], 0xb
jmp 0x401b6a
mov dword [ebp - 0xd20], 0
mov dword [ebp - 0xd1c], 0
lea eax, [ebp - 0xd20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00401420
test eax, eax
je 0x401b20
push 0
lea eax, [ebp - 0xd20]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00402270
test eax, eax
jne 0x401b20
cmp dword [ebp - 0x3338], 0
jne 0x401bad
push 0x40000
lea eax, [ebp - 0x24]
push eax
call dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
test eax, eax
je 0x401ba3
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 0x401bad
mov dword [ebp - 0x3338], 2
lea eax, [ebp - 0xe0]
push eax
call fcn.00402610
cmp dword [ebp - 0x3338], 0
je 0x401bd1
mov dword [ebp - 0x3338], 3
jmp 0x401dbd
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.004050e0
mov dword [ebp - 0x3338], eax
test eax, eax
jne 0x401bc2
or dword [ebp - 0xd20], 0xffffffff
mov dword [ebp - 0xd24], 0
mov dword [ebp - 0xd1c], 0
xor esi, esi
cmp esi, dword [ebp - 0xa0]
jae 0x401db0
mov dword [ebp - 0xd28], 0
mov dword [ebp - 0xd2c], 0
push 0
push esi
lea eax, [ebp - 0xe0]
push eax
call fcn.00405320
cmp eax, 0x104
jae 0x401da6
mov eax, dword [0x419110]
lea edi, [eax + eax + 0x419730]
push edi
push esi
lea eax, [ebp - 0xe0]
push eax
call fcn.00405320
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.00405120
mov dword [ebp - 0x3338], eax
test eax, eax
jne 0x401db0
xor ebx, ebx
jmp 0x401cd0
cmp word [edi + ebx*2], 0x2f
jne 0x401ccf
mov word [edi + ebx*2], 0
push 0x419730
call fcn.00411d70
mov word [edi + ebx*2], 0x5c
inc ebx
cmp word [edi + ebx*2], 0
jne 0x401cb2
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 0x401d12
push 0x419730
call fcn.00411d70
inc esi
cmp esi, dword [ebp - 0xa0]
jb 0x401c1c
jmp 0x401db0
push 0x419730
call fcn.004119f0
test al, al
jne 0x401da6
push 0x419730
lea eax, [ebp - 0xd34]
push eax
call fcn.00402120
test eax, eax
jne 0x401da6
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.004021f0
test eax, eax
jne 0x401d77
mov eax, dword [ebp - 0xd30]
cmp eax, dword [ebp - 0xd2c]
je 0x401d81
mov dword [ebp - 0x3338], 2
lea eax, [ebp - 0xd34]
push eax
call fcn.00402140
cmp dword [ebp - 0x3338], 0
jne 0x401db0
test eax, eax
je 0x401d00
mov dword [ebp - 0x3338], eax
jmp 0x401db0
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.004026a0
push dword [ebp - 0x40]
lea eax, [ebp - 0x24]
push eax
call dword [ebp - 0x20]
lea eax, [ebp - 0x30]
push eax
call fcn.00402140
jmp 0x40185c
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push str.PBCore.dll
push 0x419730
push 0x412448
push 0x30e
lea eax, [ebp - 0x1334]
push eax
call fcn.0040ce40
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 0x401e3e
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 0x4123ba
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 0x401e8e
pop eax
lea eax, [ebp - 0x6fc]
push eax
call fcn.00411d10
lea eax, [ebp - 0x6fc]
push eax
push str.ARCPATH
call dword [0x414b64]
push dword [ebp + 8]
call dword [0x414b7c]
call dword [0x414b80]
cmp eax, 1
jne 0x401f3c
push 0
push 0x419114
call fcn.00411890
mov dword [ebp - 4], 0
call fcn.004010a0
mov dword [ebp - 0x3340], eax
or dword [ebp - 4], 0xffffffff
jmp 0x401f3c
push str.PBCore.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x3348], eax
test eax, eax
je 0x401f5d
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 0x401f85
cmp dword [ebp - 0x333c], 0x104
jbe 0x401f8a
or eax, 0xffffffff
jmp 0x401fd4
lea eax, [ebp - 0xd18]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x419730
call fcn.004012c0
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 0x4018cd
mov eax, dword [ebp - 0x3340]
jmp 0x401fd4
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