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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44b0d0
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x458050]
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 - 0x38], eax
mov dword [ebp - 0x3c], 0
mov eax, dword [ebx]
mov edi, dword [ebp - 0x38]
mov dword [ebx + 4], 0
mov byte [eax], 0
mov ecx, edi
and ecx, 0xf
mov eax, edi
shr eax, 4
lea edx, [ecx + 0x30]
cmp ecx, 0xa
jb 0x40c657
lea edx, [ecx + 0x37]
mov ecx, eax
and ecx, 0xf
shr eax, 4
mov byte [ebp - 0x20], dl
cmp ecx, 0xa
jae 0x40c66c
add ecx, 0x30
jmp 0x40c66f
add ecx, 0x37
mov byte [ebp - 0x1f], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c684
add ecx, 0x30
jmp 0x40c687
add ecx, 0x37
mov byte [ebp - 0x1e], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c69c
add ecx, 0x30
jmp 0x40c69f
add ecx, 0x37
mov byte [ebp - 0x1d], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c6b4
add ecx, 0x30
jmp 0x40c6b7
add ecx, 0x37
mov byte [ebp - 0x1c], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c6cc
add ecx, 0x30
jmp 0x40c6cf
add ecx, 0x37
mov byte [ebp - 0x1b], cl
mov ecx, eax
and ecx, 0xf
shr eax, 4
cmp ecx, 0xa
jae 0x40c6e4
add ecx, 0x30
jmp 0x40c6e7
add ecx, 0x37
and eax, 0xf
mov byte [ebp - 0x1a], cl
cmp eax, 0xa
jae 0x40c6f7
add eax, 0x30
jmp 0x40c6fa
add eax, 0x37
xor esi, esi
mov byte [ebp - 0x19], al
mov byte [ebp - 0x18], 0
test dl, dl
je 0x40c70f
inc esi
cmp byte [ebp + esi - 0x20], 0
jne 0x40c707
push esi
mov ecx, ebx
call fcn.00408de0
mov ecx, dword [ebx]
add ecx, dword [ebx + 4]
lea edx, [ebp - 0x20]
nop
mov al, byte [edx]
mov byte [ecx], al
lea ecx, [ecx + 1]
lea edx, [edx + 1]
test al, al
jne 0x40c720
add dword [ebx + 4], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 2
mov ecx, 1
cmove eax, ecx
add edi, eax
mov dword [ebp - 0x38], edi
mov edi, dword [ebp - 0x44]
xor ebx, ebx
cmp word [edi], bx
je 0x40c759
inc ebx
cmp word [edi + ebx*2], 0
jne 0x40c751
xor ecx, ecx
lea eax, [ebx + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0043f0fa
add esp, 4
lea ecx, [ebx*2 + 2]
push ecx
mov esi, eax
push edi
push esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
call fcn.00443b00
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov dword [ebp - 4], 0
mov eax, dword [eax]
xor edx, edx
mov dword [ebp - 0x34], eax
cmp byte [eax], dl
je 0x40c83d
jmp 0x40c7b0
inc edx
cmp byte [edx + eax], 0
jne 0x40c7b0
mov dword [ebp - 0x40], edx
test edx, edx
je 0x40c83d
lea ecx, [edx + ebx]
mov eax, ecx
shr eax, 1
lea edi, [ecx + 0x10]
add edi, eax
and edi, 0xfffffff0
dec edi
cmp edi, ebx
jb 0x40c7da
cmp edi, 0x3ffffffe
jbe 0x40c7df
mov edi, 0x3ffffffe
cmp edi, ebx
jbe 0x40c97c
mov eax, edi
sub eax, ebx
cmp eax, edx
jb 0x40c97c
dec edi
xor ecx, ecx
lea eax, [edi + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0043f0fa
add esp, 4
lea ecx, [ebx*2 + 2]
push ecx
push dword [ebp - 0x30]
mov esi, eax
push esi
call fcn.00443b00
add esp, 0xc
push dword [ebp - 0x30]
call fcn.0043f238
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], edi
xor ecx, ecx
lea edi, [esi + ebx*2]
test edx, edx
je 0x40c860
jmp 0x40c850
movzx eax, byte [ecx + eax]
mov word [edi + ecx*2], ax
mov eax, dword [ebp - 0x34]
inc ecx
cmp ecx, edx
jb 0x40c850
xor eax, eax
mov word [edi + edx*2], ax
lea eax, [edx + ebx]
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x2c], eax
movlpd qword [ebp - 0x80], xmm0
mov dword [ebp - 0x78], 0
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.0043f0fa
xor ecx, ecx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 3
add esp, 4
mov word [eax], cx
push ecx
push esi
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 1
call fcn.0040d000
mov byte [ebp - 4], 0
push dword [ebp - 0x58]
mov bl, al
call fcn.0043f238
add esp, 4
test bl, bl
je 0x40c902
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x40c958
cmp byte [0x45a151], 0
jne 0x40c939
mov edx, esi
lea ecx, [ebp - 0x8c]
call fcn.004096f0
push 0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push dword [ebp - 0x8c]
mov esi, eax
call fcn.0043f238
add esp, 4
test esi, esi
mov esi, dword [ebp - 0x30]
jmp 0x40c944
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40c9ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x50
je 0x40c958
cmp eax, 0xb7
jne 0x40c991
push esi
mov dword [ebp - 4], 0xffffffff
call fcn.0043f238
mov edx, dword [ebp - 0x3c]
inc edx
add esp, 4
mov dword [ebp - 0x3c], edx
cmp edx, 0x64
jae 0x40c99a
mov ebx, dword [ebp - 0x24]
jmp 0x40c633
push 0x4547c8
lea eax, [ebp - 0x48]
push eax
mov dword [ebp - 0x48], 0x13329ac
call fcn.004424aa
push esi
call fcn.0043f238
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 0x40c9b8
push esi
call fcn.0043f238
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.0043e8e6
mov esp, ebp
pop ebp
ret 8