Function at 0x406060
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
push 0x43a3ac
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x240
push ebx
push ebp
push esi
mov ebp, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [ebp + 0x5ed8], esi
call edi
mov dword [ebp + 0x4e50], eax
call edi
mov dword [ebp + 0x4e54], eax
mov al, byte [ebp + 0x4e60]
cmp al, 2
jne 0x4060c8
mov ecx, ebp
call fcn.00407490
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, ebp
call fcn.00406ac0
jmp 0x4067f4
mov eax, dword [esp + 0x260]
cmp eax, 1
mov al, byte [ebp + 0x14c]
jne 0x4063ea
test al, al
jne 0x406150
mov ecx, dword [ebp + 0x58c]
cmp ecx, esi
je 0x406580
mov ax, word [ebp + 0xd8]
lea esi, [ebp + 0xfc]
push eax
push esi
call fcn.0040bb60
mov ecx, dword [ebp + 0x58c]
call fcn.0040b630
mov edx, dword [ebp + 0xd8]
lea ecx, [ebp + 0x12c]
push ecx
push edx
push esi
lea eax, [ebp + 0x5ecc]
push 0x44ba74
push eax
call fcn.00420fd0
mov ecx, dword [ebp + 0xd8]
lea edx, [ebp + 0x5ed0]
push ecx
push esi
push 0x44ba64
push edx
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
cmp al, 1
jne 0x4061d1
cmp dword [ebp + 0x588], esi
je 0x40645c
mov edx, dword [ebp + 0xd8]
lea esi, [ebp + 0xfc]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push esi
call fcn.004271af
mov ecx, dword [ebp + 0x588]
call fcn.0040b3c0
mov ecx, dword [ebp + 0x588]
call fcn.0040b420
mov ecx, dword [ebp + 0xd8]
lea eax, [ebp + 0x12c]
push eax
push ecx
push esi
lea edx, [ebp + 0x5ecc]
push 0x44ba74
push edx
call fcn.00420fd0
mov eax, dword [ebp + 0xd8]
lea ecx, [ebp + 0x5ed0]
push eax
push esi
push 0x44ba64
push ecx
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
cmp al, 2
jne 0x406238
mov ecx, dword [ebp + 0x584]
cmp ecx, esi
je 0x40645c
mov dx, word [ebp + 0xd8]
lea esi, [ebp + 0xfc]
push edx
push esi
call fcn.0040bfc0
mov ecx, dword [ebp + 0xd8]
lea eax, [ebp + 0x12c]
push eax
push ecx
push esi
lea edx, [ebp + 0x5ecc]
push 0x44ba74
push edx
call fcn.00420fd0
mov eax, dword [ebp + 0xd8]
lea ecx, [ebp + 0x5ed0]
push eax
push esi
push 0x44ba64
push ecx
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
cmp al, 3
jne 0x4063dd
mov ecx, dword [ebp + 0x590]
cmp ecx, esi
je 0x406257
mov edx, dword [ecx]
push 1
call dword [edx + 0x3c]
mov dword [ebp + 0x590], esi
xor eax, eax
lea ecx, [esp + 0x40]
mov ax, word [ebp + 0x140]
push eax
push str.COM_d
push ecx
call fcn.004153b4
push 0x150
call fcn.004265d5
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x2c], ebx
cmp ebx, esi
mov dword [esp + 0x258], esi
je 0x406354
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
mov dl, byte [esp + 0x13]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov esi, ecx
push 1
push esi
lea ecx, [esp + 0x38]
mov byte [esp + 0x38], dl
mov dword [esp + 0x1c], esi
call fcn.0040a710
test al, al
je 0x4062ee
mov edi, dword [esp + 0x34]
mov ecx, esi
mov eax, ecx
lea esi, [esp + 0x40]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov byte [ecx + eax], 0
mov dword [esp + 0x14], 1
mov al, byte [ebp + 0x147]
push 0
xor ecx, ecx
xor edx, edx
mov cl, byte [ebp + 0x14b]
mov dl, byte [ebp + 0x149]
push 0
push 0
mov esi, dword [ebp + 0x1c]
push 1
mov byte [esp + 0x28], al
push 1
mov edi, edx
xor eax, eax
mov ax, word [ebp + 0x144]
push ecx
mov ecx, dword [esp + 0x30]
push edi
push ecx
lea edx, [esp + 0x50]
push eax
push edx
mov ecx, ebx
mov byte [esp + 0x280], 1
call sub.MyPort.dll_public:_void___thiscall_Win32Port::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___long_int__char__int__int__int__int__int__int__int_
mov dword [ebx + 0x14c], esi
mov dword [ebx], 0x43d2c4
xor esi, esi
jmp 0x406356
xor ebx, ebx
mov al, byte [esp + 0x14]
mov dword [ebp + 0x590], ebx
test al, 1
mov dword [esp + 0x258], 0xffffffff
je 0x406392
mov ecx, dword [esp + 0x34]
cmp ecx, esi
je 0x406392
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x406389
cmp al, 0xff
je 0x406389
dec al
mov byte [ecx], al
jmp 0x406392
push ecx
call fcn.004265fe
add esp, 4
lea eax, [ebp + 0x11c]
lea edi, [ebp + 0x12c]
push eax
push edi
lea ecx, [ebp + 0x5ecc]
push 0x44ba48
push ecx
call fcn.00420fd0
push edi
lea ebx, [ebp + 0x5ed0]
push 0x44b9a4
jmp 0x40679b
push edi
push 0x44b960
push ebx
mov byte [ebp + 0x4e60], 2
call fcn.00420fd0
add esp, 0xc
jmp 0x4067ed
cmp al, 4
jb 0x4067ed
jmp 0x4067c8
test al, al
jne 0x40647c
mov ecx, dword [ebp + 0x58c]
cmp ecx, esi
je 0x40645c
mov dx, word [ebp + 0xd4]
lea esi, [ebp + 0xec]
push edx
push esi
call fcn.0040bb60
mov ecx, dword [ebp + 0x58c]
call fcn.0040b630
mov ecx, dword [ebp + 0xd4]
lea eax, [ebp + 0x12c]
push eax
push ecx
push esi
lea edx, [ebp + 0x5ecc]
push 0x44ba28
push edx
call fcn.00420fd0
mov eax, dword [ebp + 0xd4]
lea ecx, [ebp + 0x5ed0]
push eax
push esi
push 0x44ba18
push ecx
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
lea edx, [ebp + 0x12c]
lea eax, [ebp + 0x5ed0]
push edx
push 0x44b960
push eax
call fcn.00420fd0
add esp, 0xc
jmp 0x4067ed
cmp al, 1
jne 0x40651d
cmp dword [ebp + 0x588], esi
je 0x4064fd
mov ecx, dword [ebp + 0xd4]
lea esi, [ebp + 0xec]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push esi
call fcn.004271af
mov ecx, dword [ebp + 0x588]
call fcn.0040b3c0
mov ecx, dword [ebp + 0x588]
call fcn.0040b420
mov eax, dword [ebp + 0xd4]
lea edx, [ebp + 0x12c]
push edx
push eax
push esi
lea ecx, [ebp + 0x5ecc]
push 0x44ba28
push ecx
call fcn.00420fd0
mov edx, dword [ebp + 0xd4]
lea eax, [ebp + 0x5ed0]
push edx
push esi
push 0x44ba18
push eax
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
lea ecx, [ebp + 0x12c]
lea edx, [ebp + 0x5ed0]
push ecx
push 0x44b960
push edx
call fcn.00420fd0
add esp, 0xc
jmp 0x4067ed
cmp al, 2
jne 0x4065a0
mov ecx, dword [ebp + 0x584]
cmp ecx, esi
je 0x406580
mov ax, word [ebp + 0xd4]
lea esi, [ebp + 0xec]
push eax
push esi
call fcn.0040bfc0
mov edx, dword [ebp + 0xd4]
lea ecx, [ebp + 0x12c]
push ecx
push edx
push esi
lea eax, [ebp + 0x5ecc]
push 0x44ba28
push eax
call fcn.00420fd0
mov ecx, dword [ebp + 0xd4]
lea edx, [ebp + 0x5ed0]
push ecx
push esi
push 0x44ba18
push edx
call fcn.00420fd0
add esp, 0x24
jmp 0x4067ed
lea eax, [ebp + 0x12c]
lea ecx, [ebp + 0x5ed0]
push eax
push 0x44b960
push ecx
call fcn.00420fd0
add esp, 0xc
jmp 0x4067ed
cmp al, 3
jne 0x4067c4
mov ecx, dword [ebp + 0x590]
cmp ecx, esi
je 0x4065bf
mov edx, dword [ecx]
push 1
call dword [edx + 0x3c]
mov dword [ebp + 0x590], esi
xor eax, eax
lea ecx, [esp + 0x148]
mov ax, word [ebp + 0x13e]
push eax
push str.COM_d
push ecx
call fcn.004153b4
push 0x150
call fcn.004265d5
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x2c], ebx
cmp ebx, esi
mov dword [esp + 0x258], 4
je 0x406726
mov dl, byte [esp + 0x13]
lea edi, [esp + 0x148]
mov byte [esp + 0x1c], dl
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], edx
mov edi, ecx
mov dword [esp + 0x24], esi
cmp edi, 0xfffffffd
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], edi
jbe 0x406664
call fcn.004204e4
mov edx, dword [esp + 0x20]
test edx, edx
je 0x406660
mov al, byte [edx - 1]
test al, al
je 0x406660
cmp al, 0xff
je 0x406660
test edi, edi
jne 0x406689
dec al
push edi
lea ecx, [esp + 0x20]
mov byte [edx - 1], al
call fcn.0040a6c0
jmp 0x4066c0
mov esi, dword [esp + 0x28]
test edi, edi
jne 0x406675
push 1
lea ecx, [esp + 0x20]
call fcn.0040a6c0
jmp 0x4066c0
cmp esi, 0x1f
ja 0x40667e
cmp esi, edi
jae 0x406697
push 1
lea ecx, [esp + 0x20]
call fcn.0040a6c0
push edi
lea ecx, [esp + 0x20]
call fcn.0040a830
mov edx, dword [esp + 0x20]
mov ecx, edi
lea esi, [esp + 0x148]
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov byte [ecx + eax], 0
mov dword [esp + 0x14], 2
mov al, byte [ebp + 0x146]
push 0
xor ecx, ecx
xor edx, edx
mov cl, byte [ebp + 0x14a]
mov dl, byte [ebp + 0x148]
push 0
push 0
mov esi, dword [ebp + 0x1c]
push 1
mov byte [esp + 0x28], al
push 1
mov edi, edx
xor eax, eax
mov ax, word [ebp + 0x142]
push ecx
mov ecx, dword [esp + 0x30]
push edi
push ecx
lea edx, [esp + 0x3c]
push eax
push edx
mov ecx, ebx
mov byte [esp + 0x280], 5
call sub.MyPort.dll_public:_void___thiscall_Win32Port::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___long_int__char__int__int__int__int__int__int__int_
mov dword [ebx + 0x14c], esi
mov dword [ebx], 0x43d2c4
xor esi, esi
jmp 0x406728
xor ebx, ebx
mov al, byte [esp + 0x14]
mov dword [ebp + 0x590], ebx
test al, 2
mov dword [esp + 0x258], 0xffffffff
je 0x406770
mov ecx, dword [esp + 0x20]
cmp ecx, esi
je 0x406764
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x40675b
cmp al, 0xff
je 0x40675b
dec al
mov byte [ecx], al
jmp 0x406764
push ecx
call fcn.004265fe
add esp, 4
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
lea eax, [ebp + 0x10c]
lea edi, [ebp + 0x12c]
push eax
push edi
lea ecx, [ebp + 0x5ecc]
push 0x44ba04
push ecx
call fcn.00420fd0
push edi
lea ebx, [ebp + 0x5ed0]
push 0x44b9b0
push ebx
call fcn.00420fd0
mov eax, dword [ebp + 0x590]
add esp, 0x1c
cmp eax, esi
je 0x4063c2
cmp dword [eax + 0x50], esi
jne 0x4063c2
mov byte [ebp + 0x4e60], 1
jmp 0x4067ed
cmp al, 4
jb 0x4067ed
lea edx, [ebp + 0x5ecc]
push 0x44b91c
push edx
call fcn.00420fd0
lea eax, [ebp + 0x5ed0]
push 0x44b91c
push eax
call fcn.00420fd0
add esp, 0x10
mov byte [ebp + 0x5e9c], 1
mov ecx, dword [esp + 0x250]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x24c
ret 4