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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42628c
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x44c028]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
cmp dword [edi + 0x5a8], 0xffffffff
jne 0x40d062
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x5b0], eax
mov dword [edi + 0x5ac], eax
mov esi, 0x438cc8
push esi
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
xor eax, eax
mov dword [esp + 0x78], eax
cmp dword [ebp + 0x10], eax
je 0x40d616
mov ecx, dword [edi + 0x50]
add ecx, dword [ebp + 8]
mov edx, dword [edi + 0x54]
adc edx, dword [ebp + 0xc]
push eax
push 0x64
push edx
push ecx
call fcn.00421770
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push edx
push eax
call fcn.00421700
lea ecx, [edi - 0x588]
mov edx, dword [ecx]
push eax
mov dword [esp + 0x18], eax
call dword [edx + 0x178]
lea ecx, [esp + 0x38]
call dword [0x436ac8]
push esi
push str.IDS_D_PERCENT
lea eax, [esp + 0x30]
mov byte [esp + 0x80], 1
mov ebx, dword [sym.imp.K9PCUhelper.dll_public:_class_ATL::CStringT_wchar_t__class_StrTraitMFC_DLL_wchar_t__class_ATL::ChTraitsCRT_wchar_t______thiscall_CMainApp::LoadStringW_wchar_t_const___wchar_t_const__]
mov edi, 0x4a0f68
push eax
mov ecx, edi
call ebx
mov byte [esp + 0x78], 2
mov eax, dword [eax]
push dword [esp + 0x14]
push eax
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], 1
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x5a8], eax
push esi
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push esi
push str.IDS_D_PERCENT
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0x84], 3
call ebx
mov byte [esp + 0x78], 4
mov eax, dword [eax]
push dword [esp + 0x14]
push eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
lea ecx, [esp + 0x28]
mov byte [esp + 0x78], 3
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push esi
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push esi
lea ecx, [esp + 0x20]
mov byte [esp + 0x7c], 5
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
push esi
mov byte [esp + 0x7c], 6
push str.IDS_KB
lea eax, [esp + 0x20]
push eax
mov ecx, edi
call ebx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
mov byte [esp + 0x78], 7
and dword [esp + 0x64], 0
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x68], eax
mov ecx, SysReAllocString
and eax, ecx
mov dword [esp + 0x60], eax
fild qword [esp + 0x5c]
and dword [esp + 0x5c], 0
mov eax, SysReAllocString
and dword [esp + 0x68], eax
fild qword [esp + 0x64]
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x18]
fchs
mov dword [esp + 0x68], edx
and dword [esp + 0x68], ecx
faddp st(1)
mov dword [esp + 0x60], edx
and dword [esp + 0x60], eax
fstp dword [esp + 0x10]
fild qword [esp + 0x64]
fild qword [esp + 0x5c]
fchs
faddp st(1)
fstp dword [esp + 0x28]
fld dword [0x43da7c]
fcomp dword [esp + 0x10]
fnstsw ax
fld dword [esp + 0x10]
test ah, 5
jp 0x40d24e
fmul qword [0x43da18]
push esi
push str.IDS_MB
lea eax, [esp + 0x48]
push eax
fstp dword [esp + 0x1c]
mov ecx, edi
call ebx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x7c], 8
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 7
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
jmp 0x40d258
fmul qword [0x43da20]
fstp dword [esp + 0x10]
fld dword [esp + 0x28]
push esi
fmul qword [0x43da18]
push str.IDS_PHYF_FORMAT2
lea eax, [esp + 0x48]
push eax
mov ecx, edi
fstp dword [esp + 0x34]
call ebx
push ecx
mov byte [esp + 0x7c], 9
fld dword [esp + 0x14]
mov eax, dword [eax]
push ecx
fstp qword [esp]
push eax
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 7
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push esi
push str.IDS_PHYF_FORMAT2
lea eax, [esp + 0x48]
push eax
mov ecx, edi
call ebx
push ecx
mov byte [esp + 0x7c], 0xa
fld dword [esp + 0x2c]
mov eax, dword [eax]
push ecx
fstp qword [esp]
push eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x10
lea ecx, [esp + 0x40]
mov byte [esp + 0x78], 7
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
fild dword [esp + 0x14]
mov eax, dword [esp + 0x14]
test eax, eax
jge 0x40d2f2
fadd dword [0x43da78]
fdiv qword [0x43da70]
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push esi
fadd qword [0x43da68]
fstp dword [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class]
fld dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x2c]
fstp dword [esp]
add ecx, 0xfffffa78
call fcn.0040cabf
push esi
push str.IDS_MB
lea eax, [esp + 0x58]
push eax
mov ecx, edi
call ebx
mov dword [esp + 0x28], eax
push esi
push str.IDS_OF
lea eax, [esp + 0x54]
push eax
mov ecx, edi
mov byte [esp + 0x84], 0xb
call ebx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 0xc
call fcn.00406488
mov byte [esp + 0x80], 0xd
push dword [esp + 0x48]
lea ecx, [esp + 0x50]
push ecx
mov ecx, eax
call fcn.00406488
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
mov byte [esp + 0x90], 0xe
call fcn.00406488
mov byte [esp + 0x90], 0xf
push dword [esp + 0x40]
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.00406488
add esp, 0x20
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x7c], 0x10
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x50]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x2c]
call dword [0x436ac8]
push esi
push str.IDS_MB
lea eax, [esp + 0x1c]
push eax
mov ecx, edi
mov byte [esp + 0x84], 0x11
call ebx
mov dword [esp + 0x4c], eax
push esi
push str.IDS_OF
lea eax, [esp + 0x30]
push eax
mov ecx, edi
mov byte [esp + 0x84], 0x12
call ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x80], 0x13
call fcn.00406488
mov byte [esp + 0x80], 0x14
push dword [esp + 0x58]
lea ecx, [esp + 0x50]
push ecx
mov ecx, eax
call fcn.00406488
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x5c]
push ecx
mov ecx, eax
mov byte [esp + 0x90], 0x15
call fcn.00406488
mov byte [esp + 0x90], 0x16
push dword [esp + 0x64]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, eax
call fcn.00406488
add esp, 0x20
lea ecx, [esp + 0x48]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x14]
mov byte [esp + 0x78], 0x1c
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push esi
push str.IDS_OF_DRIVER
lea eax, [esp + 0x6c]
push eax
mov ecx, edi
call ebx
mov dword [esp + 0x50], eax
push esi
push str.IDS_DOWNLOADED
lea eax, [esp + 0x64]
push eax
mov ecx, edi
mov byte [esp + 0x84], 0x1d
call ebx
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x58]
push ecx
mov ecx, eax
mov byte [esp + 0x80], 0x1e
call fcn.00406488
mov byte [esp + 0x80], 0x1f
push dword [esp + 0x58]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.00406488
mov esi, dword [esp + 0x34]
lea ecx, [esi + 0x57c]
push ecx
lea ecx, [esp + 0x60]
push ecx
mov ecx, eax
mov byte [esp + 0x90], 0x20
call fcn.00406488
add esp, 0x18
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x7c], 0x21
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
lea ecx, [esp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x10]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x54]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x5c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x64]
mov byte [esp + 0x78], 0x1c
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x6c], esp
push eax
call dword [0x436a20]
lea ebx, [esi - 0x588]
call fcn.0040cb32
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x38]
mov byte [esp + 0x78], 0
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov edi, esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x38], eax
sub eax, dword [edi + 0x5ac]
cmp eax, 0x3e8
jbe 0x40d70f
fild qword [ebp + 8]
lea esi, [edi + 0x5a0]
lea ebx, [edi - 0x588]
mov edx, dword [ebx]
fstp qword [esp + 0x54]
mov dword [esp + 0x64], eax
fild qword [esi]
fsubr qword [esp + 0x54]
fild dword [esp + 0x64]
test eax, eax
jge 0x40d65e
fadd qword [0x43da40]
fdivp st(1)
push ecx
push ecx
mov ecx, ebx
fstp qword [esp]
call dword [edx + 0x180]
cmp dword [ebp + 0x10], 0
mov eax, dword [esp + 0x38]
mov edx, dword [ebp + 0xc]
mov dword [edi + 0x5ac], eax
mov eax, dword [ebp + 8]
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x40d70f
or eax, edx
je 0x40d70f
mov eax, dword [edi + 0x50]
fild dword [esp + 0x38]
push dword [ebp + 0x18]
mov ecx, dword [edi + 0x54]
push dword [ebp + 0x14]
mov esi, dword [ebx]
mov dword [esp + 0x64], eax
add eax, dword [ebp + 8]
mov dword [esp + 0x68], ecx
adc ecx, edx
push ecx
push eax
mov eax, dword [esp + 0x48]
test eax, eax
jge 0x40d6bf
fadd qword [0x43da40]
mov eax, dword [edi + 0x5b0]
fild dword [edi + 0x5b0]
test eax, eax
jge 0x40d6d5
fadd qword [0x43da40]
fsubp st(1)
mov ecx, dword [ebp + 0x14]
sub ecx, dword [esp + 0x6c]
mov eax, dword [ebp + 0x18]
fdiv qword [esp + 0x64]
sbb eax, dword [esp + 0x70]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
fild qword [esp + 0x74]
fsub qword [esp + 0x64]
fmulp st(1)
fdiv qword [0x43da60]
call fcn.00421656
push eax
mov ecx, ebx
call dword [esi + 0x17c]
lea ecx, [esp + 0x3c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14