Function at 0x41c800
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43a9b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x318
mov eax, dword [0x44e7a0]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x318], eax
mov eax, dword [esi + 0x278]
test eax, eax
push edi
je 0x41cdf7
mov edi, dword [esi + 0x2a0]
fld qword [0x4408b8]
mov ecx, dword [edi]
fstp qword [esp + 0x30]
cmp ecx, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], ecx
je 0x41c8c8
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x14]
cmp eax, edx
je 0x41c8b7
mov ebx, dword [ecx + 0x10]
imul ebx, ebx, 0x3e80
test ebx, ebx
mov dword [esp + 0x18], ebx
fild dword [esp + 0x18]
jge 0x41c887
fadd qword [0x440438]
sub eax, edx
test eax, eax
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jge 0x41c89b
fadd qword [0x440438]
fdivp st(1)
fcom qword [esp + 0x30]
fnstsw ax
test ah, 0x41
jne 0x41c8b5
mov eax, dword [ecx + 0xc]
fstp qword [esp + 0x30]
mov dword [esp + 0x20], eax
jmp 0x41c8b7
fstp st(0)
lea ecx, [esp + 0xc]
call fcn.0041b2c0
mov ecx, dword [esp + 0xc]
cmp ecx, edi
jne 0x41c862
push 1
push 3
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov ebx, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
xor edi, edi
mov dword [esp + 0x32c], edi
jmp 0x41c8f0
mov ecx, dword [esi + 0x2d8]
test ecx, ecx
je 0x41c950
mov eax, dword [esi + 0x2dc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x41c950
mov edx, dword [ecx + edi*4]
lea eax, [ecx + edi*4]
push edx
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
mov ecx, dword [esi + 0x2d8]
test ecx, ecx
jne 0x41c92b
xor eax, eax
jmp 0x41c936
mov eax, dword [esi + 0x2dc]
sub eax, ecx
sar eax, 2
dec eax
cmp edi, eax
je 0x41c94d
lea eax, [esp + 0x80]
push 0x4408b0
push eax
call ebx
add esp, 8
inc edi
jmp 0x41c8f0
lea ecx, [esp + 0x80]
push 0x4408ac
push ecx
call ebx
add esp, 8
xor edi, edi
mov ecx, dword [esi + 0x2e8]
test ecx, ecx
je 0x41c9c5
mov eax, dword [esi + 0x2ec]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x41c9c5
mov edx, ecx
lea eax, [edx + edi*4]
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
mov ecx, dword [esi + 0x2e8]
test ecx, ecx
jne 0x41c9a0
xor eax, eax
jmp 0x41c9ab
mov eax, dword [esi + 0x2ec]
sub eax, ecx
sar eax, 2
dec eax
cmp edi, eax
je 0x41c9c2
lea ecx, [esp + 0x80]
push 0x4408b0
push ecx
call ebx
add esp, 8
inc edi
jmp 0x41c964
lea edx, [esp + 0x80]
push 0x4408ac
push edx
call ebx
add esp, 8
xor edi, edi
lea esp, [esp]
mov ecx, dword [esi + 0x2f8]
test ecx, ecx
je 0x41ca42
mov eax, dword [esi + 0x2fc]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x41ca42
mov eax, ecx
mov ecx, dword [eax + edi*4]
lea eax, [eax + edi*4]
push ecx
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
mov ecx, dword [esi + 0x2f8]
test ecx, ecx
jne 0x41ca1d
xor eax, eax
jmp 0x41ca28
mov eax, dword [esi + 0x2fc]
sub eax, ecx
sar eax, 2
dec eax
cmp edi, eax
je 0x41ca3f
lea edx, [esp + 0x80]
push 0x4408b0
push edx
call ebx
add esp, 8
inc edi
jmp 0x41c9e0
mov edi, dword [esi + 0x31c]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
xor edx, edx
lea ebx, [ebx]
test edi, edi
je 0x41ca96
mov ecx, dword [esi + 0x320]
sub ecx, edi
sar ecx, 2
cmp edx, ecx
jae 0x41ca96
mov ecx, dword [esi + 0x31c]
mov ebx, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
add eax, ebx
mov ebx, dword [esp + 0xc]
cmp ebx, dword [ecx]
ja 0x41ca8f
mov ecx, dword [ecx]
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x10]
inc edx
jmp 0x41ca60
mov edi, dword [esi + 0x32c]
mov dword [esp + 0x14], eax
xor edx, edx
test edi, edi
je 0x41cac4
mov ecx, dword [esi + 0x330]
sub ecx, edi
sar ecx, 2
cmp edx, ecx
jae 0x41cac4
mov ecx, dword [esi + 0x32c]
add ebx, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
inc edx
jmp 0x41caa2
mov edx, dword [esi + 0x31c]
test edx, edx
mov dword [esp + 0x10], ebx
je 0x41cafc
mov ecx, dword [esi + 0x320]
sub ecx, edx
sar ecx, 2
test ecx, ecx
jbe 0x41cafc
test edx, edx
jne 0x41cae9
xor ecx, ecx
jmp 0x41caf4
mov ecx, dword [esi + 0x320]
sub ecx, edx
sar ecx, 2
xor edx, edx
div ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 0x32c]
test ecx, ecx
je 0x41cb30
mov eax, dword [esi + 0x330]
sub eax, ecx
sar eax, 2
test eax, eax
jbe 0x41cb30
mov eax, ecx
test eax, eax
je 0x41cb26
mov ecx, dword [esi + 0x330]
sub ecx, eax
sar ecx, 2
mov eax, ebx
xor edx, edx
div ecx
mov dword [esp + 0x10], eax
call sub.KERNEL32.dll_GetTickCount
sub eax, dword [esi + 0xb8]
mov dword [esp + 0x3c], eax
mov eax, dword [0x450afc]
mov edx, dword [eax + 0xc2]
movzx ecx, byte [eax + 0xc3]
and edx, 0xff
push edx
movzx edx, byte [eax + 0xc4]
movzx eax, byte [eax + 0xc5]
push ecx
push edx
push eax
lea ecx, [esp + 0x114]
push str._d._d._d._d
push ecx
call dword [sym.imp.MSVCR71.dll_sprintf]
mov ecx, dword [esi + 0x2e8]
add esp, 0x18
test ecx, ecx
mov byte [esp + 0x317], 0
je 0x41cbaa
mov eax, dword [esi + 0x2ec]
sub eax, ecx
sar eax, 2
test eax, eax
jbe 0x41cbaa
mov eax, ecx
mov edx, dword [eax]
mov dword [esp + 0x28], edx
jmp 0x41cbb2
mov dword [esp + 0x28], 0xffffffff
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
cmp dword [eax + 0x18], 0x10
mov ecx, dword [esi + 0x308]
mov byte [esp + 0x32c], 1
jb 0x41cbde
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], edx
jmp 0x41cbe5
add eax, 4
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0x2d8]
test edx, edx
jne 0x41cbf5
mov dword [esp + 0x24], edx
jmp 0x41cc04
mov eax, dword [esi + 0x2dc]
sub eax, edx
sar eax, 2
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
fld qword [esp + 0x30]
mov edx, dword [esi + 0x2ac]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x33c]
sub eax, edx
mov edx, eax
mov eax, 0x10624dd3
mul edx
mov eax, dword [esi + 0x2ac]
shr edx, 6
push edx
mov edx, dword [esi + 0x338]
sub edx, eax
mov eax, 0x10624dd3
mul edx
mov eax, dword [esp + 0x10]
shr edx, 6
push edx
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
push edx
mov edx, dword [ecx + 0x10]
push eax
mov eax, dword [ecx + 0xc]
push edx
mov edx, dword [ecx + 8]
push eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
push edx
mov edx, dword [esi + 0x314]
push eax
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
push edx
mov dl, byte [esi + 0x2d2]
mov ecx, dword [esi + 0x2ac]
xor eax, eax
test dl, dl
mov edx, dword [esi + 0x340]
setne al
sub edx, ecx
mov edi, dword [esi + 0x278]
mov ebx, edi
push eax
mov eax, 0x10624dd3
mul edx
shr edx, 6
push edx
mov dl, byte [esi + 0x2d3]
mov ecx, dword [esi + 0x2c8]
xor eax, eax
test dl, dl
mov edx, dword [edi + 0x90]
setne al
push eax
movzx eax, byte [esi + 0xc4]
push ecx
push edx
push eax
call fcn.00437e78
mov ecx, dword [esp + 0x70]
push eax
push ecx
mov ecx, edi
call fcn.004271d0
mov edx, dword [esp + 0x94]
mov ecx, dword [ebx + 0x98]
push eax
mov eax, dword [ebx + 0x94]
push edx
push eax
push ecx
mov edx, dword [esi + 0x84]
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x34]
push edx
mov edx, dword [esi + 0x30]
push eax
mov eax, dword [esi + 0x74]
push ecx
mov ecx, dword [esp + 0x8c]
push edx
mov edx, dword [esi + 0x6c]
push eax
mov eax, dword [esi + 0xc0]
push ecx
mov ecx, dword [esi + 0xbc]
push edx
push str.SUCC
push eax
push ecx
mov ecx, dword [0x450afc]
lea edx, [esp + 0x194]
push edx
call fcn.00407810
push eax
push str.kid:_usip:_ssig1:_usig2:_useares:_sseatm:_upeernum:_uusedp:_unconn:_utooslow:_uservtm:_uservpeer:_upeerpack:_userpack:_usestm:_dtotal:_ufpip:_ufps:_ufiletype:_udown5:_umode:_urescued:_ufstime:_ublocked:_ubcount:_ufbtime:_dbtime:_spackgrab:_dpackoff:_u__u__u__u__uuaverate:_uaveurgentrate:_uumaxrate:_usstart:_uswork:_u
lea eax, [esp + 0x1b4]
push 0x1ff
push eax
call dword [sym.imp.MSVCR71.dll__snprintf]
add esp, 0xa4
lea ecx, [esp + 0x40]
mov byte [esp + 0x32c], 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, [esp + 0x118]
push ecx
lea ecx, [esp + 0x44]
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 bl, 2
push str.P2P_DOWN_FILE
lea ecx, [esp + 0x60]
mov byte [esp + 0x330], bl
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__]
push 0
push 0
push 0
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x6c]
push eax
mov byte [esp + 0x340], 3
call dword [sym.imp.KwLogSvr.dll_void___cdecl_LogRealMsg_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___bool__unsigned_char____unsigned_int__]
add esp, 0x14
lea ecx, [esp + 0x5c]
mov byte [esp + 0x32c], bl
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, [esp + 0x40]
mov byte [esp + 0x32c], 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, [esp + 0x78]
mov dword [esp + 0x32c], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
mov ecx, dword [esp + 0x324]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x31c]
call fcn.00437d67
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret