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

Disassembly:
push 0xffffffffffffffff
push 0x450310
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb6c
mov eax, dword [0x46b378]
push ebx
push ebp
push esi
mov ebx, ecx
mov dword [esp + 0xb74], eax
push edi
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0xbac]
mov al, byte [esp + 0xb94]
mov byte [ebx + 1], cl
push str.ck_W
mov ecx, 0x46bfc8
mov dword [esp + 0xb88], 0
mov byte [ebx], al
call fcn.00401b00
mov ecx, eax
call fcn.00415ba0
xor eax, eax
lea edi, [ebx + 8]
mov ecx, 0xc8
rep stosd dword es:[edi], eax
lea eax, [ebx + 0x12]
push 0x4579c8
push eax
mov word [ebx + 0x10], 0xff
call dword [sym.imp.MSVCR71.dll_wcscpy]
add esp, 8
mov ecx, 0x46bfc8
call fcn.00401b20
mov ecx, eax
call fcn.00403730
mov esi, eax
mov ecx, 0x46bfc8
mov dword [esp + 0x20], esi
call fcn.00401b20
mov ecx, eax
call fcn.00403740
test esi, esi
mov ebp, eax
mov dword [esp + 0x10], 1
je 0x40b87a
test ebp, ebp
je 0x40b87a
mov dword [esp + 0x1c], 0
inc dword [esp + 0x1c]
xor eax, eax
mov ecx, 0xb0
lea edi, [ebx + 8]
rep stosd dword es:[edi], eax
lea eax, [ebx + 0x12]
push 0x4579c8
push eax
mov word [ebx + 0x10], 0xff
call dword [sym.imp.MSVCR71.dll_wcscpy]
mov edx, dword [esi]
add esp, 8
mov ecx, esi
call dword [edx + 8]
test eax, eax
jne 0x40b2ea
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov ecx, 0x10
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x34]
mov word [esp + 0x40], 0x27
stosw word es:[edi], ax
call fcn.0044b9b0
push 0
lea ecx, [esp + 0x80]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb8c], 1
call fcn.0044dbf0
push 2
lea edx, [esp + 0xa1]
push edx
lea ecx, [esp + 0x3c]
call fcn.0044dbf0
lea eax, [esp + 0x30]
push eax
mov ecx, 0x46bfc8
call fcn.00401b50
mov edi, dword [esi]
mov ecx, eax
mov byte [esp + 0xb84], 2
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, 0x46bfc8
call fcn.00401b40
push eax
mov ecx, esi
call dword [edi]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [esp + 0x30]
inc bl
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
test bl, bl
lea ecx, [esp + 0x34]
mov byte [esp + 0xb84], 0
jne 0x40b829
call fcn.0044b840
mov ebx, dword [esp + 0x14]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xc]
test eax, eax
je 0x40b2fc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x20]
xor ecx, ecx
mov dword [esp + 0x6d], ecx
mov dword [esp + 0x71], ecx
mov dword [esp + 0x75], ecx
mov word [esp + 0x79], cx
mov byte [esp + 0x7b], cl
mov byte [esp + 0x2c], al
mov byte [esp + 0x6c], 0
mov dword [esp + 0x24], 0x83c
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
dec ecx
je 0x40b500
dec ecx
je 0x40b427
dec ecx
jne 0x40b5e2
xor eax, eax
mov byte [esp + 0x5d4], 0
mov ecx, 0x40
lea edi, [esp + 0x5d5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x3cc], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x3cd]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x46bfc8
stosb byte es:[edi], al
call fcn.00401b20
mov ecx, eax
call fcn.004036e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x18]
mov ecx, 0x46bfc8
call fcn.00401b20
mov ecx, eax
call fcn.004036e0
mov edx, dword [eax]
push 0
push 0
push 0x104
lea ecx, [esp + 0x3d8]
push ecx
push 0xffffffffffffffff
mov ecx, eax
call dword [edx + 0x18]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [esp + 0x3cc]
push eax
lea ecx, [esp + 0x5d8]
push str.unicom._s
push ecx
call dword [sym.imp.MSVCR71.dll_sprintf]
mov edx, dword [ebp]
add esp, 0xc
push 0
lea eax, [esp + 0x5d8]
push eax
push 0
mov ecx, ebp
call dword [edx + 0x48]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea ecx, [esp + 0x6c]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x40b410
mov dword [esp + 0x18], 0x2710
jmp 0x40b5e2
mov edx, dword [ebp]
push 0
test al, al
sete al
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x74]
push ecx
mov ecx, ebp
push eax
push 0x1b
call dword [edx + 0x3c]
test eax, eax
jne 0x40b5da
mov byte [esp + 0x1c4], al
mov ecx, 0x40
lea edi, [esp + 0x1c5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0xc0], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0xc1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x46bfc8
stosb byte es:[edi], al
call fcn.00401b20
mov ecx, eax
call fcn.004036e0
mov edx, dword [eax]
push 0
push 0
push 0x104
lea ecx, [esp + 0xcc]
push ecx
push 0xffffffffffffffff
mov ecx, eax
call dword [edx + 0x18]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x1c8]
push str.unicom._s
push ecx
call dword [sym.imp.MSVCR71.dll_sprintf]
mov edx, dword [ebp]
add esp, 0xc
push 0
lea eax, [esp + 0x1c8]
push eax
push 0
mov ecx, ebp
call dword [edx + 0x48]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea ecx, [esp + 0x6c]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x40b4f1
jmp 0x40b5da
mov edx, dword [ebp]
push 0
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x74]
push ecx
push eax
push 0x1b
mov ecx, ebp
call dword [edx + 0x3c]
test eax, eax
jne 0x40b5da
mov byte [esp + 0x4d0], al
mov ecx, 0x40
lea edi, [esp + 0x4d1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [esp + 0x2c8], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x2c9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x46bfc8
stosb byte es:[edi], al
call fcn.00401b20
mov ecx, eax
call fcn.004036e0
mov edx, dword [eax]
push 0
push 0
push 0x104
lea ecx, [esp + 0x2d4]
push ecx
push 0xffffffffffffffff
mov ecx, eax
call dword [edx + 0x18]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [esp + 0x2c8]
push eax
lea ecx, [esp + 0x4d4]
push str.unicom._s
push ecx
call dword [sym.imp.MSVCR71.dll_sprintf]
mov edx, dword [ebp]
add esp, 0xc
push 0
lea eax, [esp + 0x4d4]
push eax
push 0
mov ecx, ebp
call dword [edx + 0x48]
push eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea ecx, [esp + 0x6c]
lea esp, [esp]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x40b5d0
mov dword [esp + 0x18], 0x1388
movzx eax, word [esp + 0x24]
mov edx, dword [esi]
push 0xa
push eax
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call dword [edx + 0x10]
test eax, eax
jne 0x40b630
mov ecx, dword [esp + 0xba8]
mov edi, dword [esp + 0xba4]
mov ebx, dword [esp + 0x14]
mov edx, ecx
shr ecx, 2
mov esi, str.vU_1Y_
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], 1
jmp 0x40b7b8
mov edi, dword [esi]
push 1
mov ecx, 0x46bfc8
call fcn.00401b80
push eax
push 0xbd0
push 7
mov ecx, esi
call dword [edi + 0x3c]
xor eax, eax
mov ecx, 0x128
lea edi, [esp + 0x6d8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x6e8]
push eax
lea ecx, [esp + 0x6dc]
push ecx
lea edx, [esp + 0x6e8]
push edx
mov ecx, 0x46bfc8
call fcn.00401be0
mov edi, dword [esi]
push 0
push 0
lea ecx, [esp + 0xba8]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
mov ecx, dword [esp + 0xb9c]
mov edx, dword [esp + 0xb98]
push eax
mov eax, dword [esp + 0xba4]
push eax
push ecx
mov ecx, dword [esp + 0xba0]
push edx
push 0x63
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
mov ecx, esi
call dword [edi + 0x44]
test eax, eax
jne 0x40b6f8
mov ecx, dword [esp + 0xba8]
mov edi, dword [esp + 0xba4]
mov ebx, dword [esp + 0x14]
mov eax, ecx
shr ecx, 2
mov esi, 0x45798c
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], 3
jmp 0x40b7b8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp word [ebx + 0x10], 0xff
mov dword [esp + 0x28], eax
jne 0x40b7c8
mov edi, edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
sub eax, edx
cmp eax, ecx
ja 0x40b778
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
push 1
push 0
push 0
push 0
lea ecx, [esp + 0x60]
push ecx
call edi
test eax, eax
je 0x40b76e
lea edx, [esp + 0x50]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0
lea ecx, [esp + 0x60]
push ecx
call edi
test eax, eax
jne 0x40b745
cmp word [ebx + 0x10], 0xff
je 0x40b710
jmp 0x40b7a9
mov ecx, dword [esp + 0xba8]
mov edi, dword [esp + 0xba4]
mov ebx, dword [esp + 0x14]
mov edx, ecx
shr ecx, 2
mov esi, 0x45796c
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], 4
cmp word [ebx + 0x10], 0xff
jne 0x40b7c8
cmp dword [esp + 0x10], 4
jne 0x40b7d0
cmp dword [esp + 0x1c], 3
jl 0x40b1f3
jmp 0x40b856
mov dword [esp + 0x10], 1
mov edi, dword [esi]
push 0
mov ecx, 0x46bfc8
call fcn.00401b80
push eax
push 0xbd0
push 7
mov ecx, esi
call dword [edi + 0x3c]
mov edi, dword [esp + 0xba4]
test edi, edi
je 0x40b816
mov ecx, dword [esp + 0xba8]
mov eax, ecx
shr ecx, 2
lea esi, [ebx + 0x12]
mov ebx, dword [esp + 0x14]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x20]
mov bx, word [ebx + 0x10]
test bx, bx
jne 0x40b838
mov dword [esp + 0x10], 0
jmp 0x40b856
mov dword [esp + 0x10], 2
call fcn.0044b840
jmp 0x40b856
cmp bx, 2
jne 0x40b848
mov dword [esp + 0x10], 5
jmp 0x40b856
cmp bx, 3
jne 0x40b856
mov dword [esp + 0x10], 6
push esi
mov ecx, 0x46bfc8
call fcn.00401b20
mov ecx, eax
call fcn.00428940
push ebp
mov ecx, 0x46bfc8
call fcn.00401b20
mov ecx, eax
call fcn.00403770
mov ecx, 0x46bfc8
call fcn.00401b00
mov ecx, eax
call fcn.00415c80
lea ecx, [esp + 0xba0]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov ecx, dword [esp + 0xb7c]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xb6c]
pop ebx
call fcn.004225d1
add esp, 0xb78
ret 0x24