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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b13a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x340c
call fcn.00437df0
mov eax, dword [0x44e7a0]
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
push ebx
mov dword [ebp - 0x14], eax
call fcn.004312d0
mov esi, eax
add esp, 4
cmp esi, ebx
mov dword [ebp - 0x32a0], esi
jne 0x4235df
xor eax, eax
jmp 0x423a1a
push str.CDownloadUrlTransfer
lea ecx, [ebp - 0x32dc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov eax, dword [str.KTLog.txt]
push eax
lea ecx, [ebp - 0x32c0]
mov dword [ebp - 4], ebx
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov edi, dword [ebp + 8]
cmp dword [edi + 0x18], 0x10
lea eax, [edi + 4]
mov byte [ebp - 4], 1
mov dword [ebp - 0x3290], eax
jb 0x42361d
mov eax, dword [eax]
push eax
push str.Measure_Server__s_Speed
lea ecx, [ebp - 0x32dc]
push ecx
lea edx, [ebp - 0x32c0]
push ebx
push edx
call dword [sym.imp.KwLogSvr.dll_void___cdecl_YL_Log_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0x14
lea ecx, [ebp - 0x32c0]
mov byte [ebp - 4], 0
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x32dc]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x30]
push ecx
push edi
mov byte [ebp - 4], 3
call fcn.0042ed80
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp eax, 0x10
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3298], ebx
mov word [ebp - 0x3294], bx
jae 0x4236a7
lea eax, [ebp - 0x2c]
push 0x50
push eax
lea ecx, [ebp - 0x3298]
call fcn.00430e90
mov edx, dword [esi]
lea eax, [ebp - 0x3298]
push eax
mov ecx, esi
mov dword [ebp - 0x328c], ebx
mov dword [ebp - 0x3288], 1
mov dword [ebp - 0x329c], ebx
mov byte [ebp - 4], 4
call dword [edx + 0x3c]
mov edx, dword [esi]
push 0x2710
mov ecx, esi
call dword [edx + 0x20]
mov eax, dword [esi]
push 0x2710
mov ecx, esi
call dword [eax + 0x24]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x44]
mov eax, dword [esi]
push 0x1388
mov ecx, esi
call dword [eax + 0x20]
mov edx, dword [esi]
push 0x1388
mov ecx, esi
call dword [edx + 0x24]
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x328c], eax
inc eax
mov dword [ebp - 0x3288], eax
mov eax, 0x10
cmp ecx, eax
mov ecx, dword [ebp - 0x2c]
mov byte [ebp - 0x2280], 1
mov dword [ebp - 0x227c], ebx
mov dword [ebp - 0x2278], ebx
mov dword [ebp - 0x2274], ebx
mov dword [ebp - 0x2270], ebx
mov dword [ebp - 0x226c], ebx
mov dword [ebp - 0x2268], ebx
mov dword [ebp - 0x2264], 0x1000
mov dword [ebp - 0x2260], ebx
mov dword [ebp - 0x225c], ebx
mov dword [ebp - 0x2258], ebx
mov dword [ebp - 0x2284], 0x43d724
mov dword [ebp - 0x2254], esi
mov byte [ebp - 0x4d], 0
jae 0x423793
lea ecx, [ebp - 0x2c]
cmp dword [edi + 0x18], eax
mov eax, dword [ebp - 0x3290]
jb 0x4237a0
mov eax, dword [eax]
push 0x3fff
push ebx
push ecx
push eax
push str.GET__s_HTTP_1.1_r_nHost:__s_r_nAccept:___r_nUser_Agent:_Mozilla_4.0_r_nRange:_bytes_d__d_r_nConnection:_close_r_n_r_n
lea ecx, [ebp - 0x24c]
push 0x1ff
push ecx
call dword [sym.imp.MSVCR71.dll__snprintf]
lea eax, [ebp - 0x24c]
add esp, 0x1c
lea edx, [eax + 1]
jmp 0x4237d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4237d0
sub eax, edx
mov edx, dword [esi]
push eax
lea eax, [ebp - 0x24c]
push eax
mov ecx, esi
call dword [edx + 8]
lea ecx, [ebp - 0x2284]
call fcn.00410140
mov edi, eax
cmp edi, 0xc8
je 0x423850
cmp edi, 0xce
je 0x423850
push 0x7f
lea ecx, [ebp - 0x3398]
push str.HTTP_Reply_Code_Error
push ecx
call dword [sym.imp.MSVCR71.dll_strncpy]
add esp, 0xc
mov dword [ebp - 0x3318], edi
push 0x446b4c
lea edx, [ebp - 0x341c]
mov byte [ebp - 0x3319], 0
mov ecx, 0x21
lea esi, [ebp - 0x3398]
lea edi, [ebp - 0x341c]
push edx
rep movsd dword es:[edi], dword [esi]
call sub.MSVCR71.dll__CxxThrowException
lea ecx, [ecx]
lea ecx, [ebp - 0x2284]
call fcn.004101a0
test al, al
jne 0x423850
mov edi, 0x4000
cmp edi, ebx
jle 0x4238a6
mov eax, dword [ebp - 0x328c]
mov ecx, dword [ebp - 0x3288]
add eax, 0xbb8
cmp ecx, eax
jae 0x4238a6
mov edx, dword [esi]
push 0x1000
lea eax, [ebp - 0x3284]
push eax
mov ecx, esi
call dword [edx]
mov ebx, eax
test ebx, ebx
jle 0x4238a6
call sub.KERNEL32.dll_GetTickCount
sub edi, ebx
mov dword [ebp - 0x3288], eax
xor ebx, ebx
jmp 0x423864
mov ebx, 0x4000
sub ebx, edi
jmp 0x42393c
push str.CDownloadUrlTransfer
lea ecx, [ebp - 0x3314]
mov dword [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov edx, dword [str.KTLog.txt]
push edx
lea ecx, [ebp - 0x32f8]
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x18], 0x10
mov byte [ebp - 4], 9
jb 0x42397d
mov ecx, dword [ecx + 4]
jmp 0x423980
add ecx, 4
mov eax, dword [ebp - 0x328c]
mov edi, dword [ebp - 0x3288]
sub edi, eax
mov eax, ebx
imul eax, eax, 0x3e8
xor edx, edx
div edi
mov edx, dword [ebp - 0x328c]
mov edi, eax
mov eax, dword [ebp - 0x3288]
push edi
push ebx
push eax
push edx
push ecx
push str.Server_Speed:__s__BeginTM:__u__EndTM:__u__DownBytes:_u__Speed:_u
lea eax, [ebp - 0x3314]
push eax
lea ecx, [ebp - 0x32f8]
push 0
push ecx
call dword [sym.imp.KwLogSvr.dll_void___cdecl_YL_Log_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___int__class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 0x24
lea ecx, [ebp - 0x32f8]
mov byte [ebp - 4], 8
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x3314]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x1c]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x34]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00437d67
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret