Function at 0x40c700
Capabilities:
Check for time delay via gettickcount
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45c630
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x46c2f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x24], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea esi, [eax*4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
xor edi, esi
shl edi, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor eax, edi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], eax
mov eax, dword [ebx]
mov edi, dword [ebp - 0x38]
mov ecx, edi
mov dword [ebx + 4], 0
and ecx, 0xf
mov byte [eax], 0
mov eax, edi
shr eax, 4
lea edx, [ecx + 0x30]
cmp ecx, 0xa
jb 0x40c787
lea edx, [ecx + 0x37]
mov ecx, eax
mov byte [ebp - 0x20], dl
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c79c
add ecx, 0x30
jmp 0x40c79f
add ecx, 0x37
mov byte [ebp - 0x1f], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c7b4
add ecx, 0x30
jmp 0x40c7b7
add ecx, 0x37
mov byte [ebp - 0x1e], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c7cc
add ecx, 0x30
jmp 0x40c7cf
add ecx, 0x37
mov byte [ebp - 0x1d], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c7e4
add ecx, 0x30
jmp 0x40c7e7
add ecx, 0x37
mov byte [ebp - 0x1c], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c7fc
add ecx, 0x30
jmp 0x40c7ff
add ecx, 0x37
mov byte [ebp - 0x1b], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c814
add ecx, 0x30
jmp 0x40c817
add ecx, 0x37
and eax, 0xf
mov byte [ebp - 0x1a], cl
cmp eax, 0xa
jae 0x40c827
add eax, 0x30
jmp 0x40c82a
add eax, 0x37
xor esi, esi
mov byte [ebp - 0x19], al
mov byte [ebp - 0x18], 0
test dl, dl
je 0x40c83f
inc esi
cmp byte [ebp + esi - 0x20], 0
jne 0x40c837
push esi
mov ecx, ebx
call fcn.00409100
mov ecx, dword [ebx]
lea edx, [ebp - 0x20]
add ecx, dword [ebx + 4]
nop
mov al, byte [edx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
lea edx, [edx + 1]
test al, al
jne 0x40c850
add dword [ebx + 4], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 2
mov ecx, 1
cmove eax, ecx
xor ebx, ebx
add edi, eax
mov dword [ebp - 0x38], edi
mov edi, dword [ebp - 0x44]
cmp word [edi], bx
je 0x40c88a
inc ebx
cmp word [edi + ebx*2], 0
jne 0x40c882
xor ecx, ecx
lea eax, [ebx + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00445286
add esp, 4
mov dword [ebp - 0x2c], ebx
lea ecx, [ebx*2 + 2]
mov dword [ebp - 0x28], ebx
mov esi, eax
mov dword [ebp - 0x30], esi
push ecx
push edi
push esi
call fcn.00446d70
add esp, 0xc
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [ebp - 4], 0
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
cmp byte [eax], dl
je 0x40c96d
lea esp, [esp]
inc edx
cmp byte [edx + eax], 0
jne 0x40c8e0
mov dword [ebp - 0x40], edx
test edx, edx
je 0x40c96d
lea ecx, [edx + ebx]
mov eax, ecx
lea edi, [ecx + 0x10]
shr eax, 1
add edi, eax
and edi, 0xfffffff0
dec edi
cmp edi, ebx
jb 0x40c90a
cmp edi, 0x3ffffffe
jbe 0x40c90f
mov edi, 0x3ffffffe
cmp edi, ebx
jbe 0x40caa2
mov eax, edi
sub eax, ebx
cmp eax, edx
jb 0x40caa2
dec edi
xor ecx, ecx
mov edx, 2
lea eax, [edi + 1]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00445286
add esp, 4
lea ecx, [ebx*2 + 2]
mov esi, eax
push ecx
push dword [ebp - 0x30]
push esi
call fcn.00446d70
add esp, 0xc
push dword [ebp - 0x30]
call fcn.004453be
mov edx, dword [ebp - 0x40]
add esp, 4
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], edi
xor ecx, ecx
lea edi, [esi + ebx*2]
test edx, edx
je 0x40c986
movzx eax, byte [ecx + eax]
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebp - 0x34]
cmp ecx, edx
jb 0x40c976
xor eax, eax
mov dword [ebp - 0x78], 0
mov word [edi + edx*2], ax
xorps xmm0, xmm0
lea eax, [edx + ebx]
movlpd qword [ebp - 0x80], xmm0
push 8
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov word [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
call fcn.00445286
xor ecx, ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0
add esp, 4
mov dword [ebp - 0x50], 3
mov word [eax], cx
push ecx
push esi
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.0040d120
mov byte [ebp - 4], 0
mov bl, al
push dword [ebp - 0x58]
call fcn.004453be
add esp, 4
test bl, bl
je 0x40ca28
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x40ca7e
cmp byte [0x46ec01], 0
jne 0x40ca5f
mov edx, esi
lea ecx, [ebp - 0x8c]
call fcn.00409a80
push 0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push dword [ebp - 0x8c]
mov esi, eax
call fcn.004453be
add esp, 4
test esi, esi
mov esi, dword [ebp - 0x30]
jmp 0x40ca6a
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40cad3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x50
je 0x40ca7e
cmp eax, 0xb7
jne 0x40cab7
push esi
mov dword [ebp - 4], 0xffffffff
call fcn.004453be
mov edx, dword [ebp - 0x3c]
add esp, 4
inc edx
mov dword [ebp - 0x3c], edx
cmp edx, 0x64
jae 0x40cac0
mov ebx, dword [ebp - 0x24]
jmp 0x40c763
push 0x46ad28
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0x13329ac
push eax
call fcn.0044a39d
push esi
call fcn.004453be
add esp, 4
mov eax, dword [ebp - 0x24]
mov dword [eax + 4], 0
mov eax, dword [eax]
mov byte [eax], 0
xor al, al
jmp 0x40cade
push esi
call fcn.004453be
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00444258
mov esp, ebp
pop ebp
ret 8