Function at 0x45f660
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x526f86
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x55609c]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
push edi
mov eax, dword [0x55609c]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov ebx, edx
mov edi, ecx
push str.total_uploaded
mov eax, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebx
call fcn.0044d820
xor esi, esi
cmp eax, esi
je 0x45f6d8
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f6d8
mov edx, eax
call fcn.0044d450
jmp 0x45f6dc
xor eax, eax
xor edx, edx
mov dword [edi + 0x88], eax
push str.total_downloaded
mov eax, ebx
mov dword [edi + 0x8c], edx
call fcn.0044d820
cmp eax, esi
je 0x45f712
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f712
mov edx, eax
call fcn.0044d450
jmp 0x45f716
xor eax, eax
xor edx, edx
mov dword [edi + 0x90], eax
push str.total_web_downloaded
mov eax, ebx
mov dword [edi + 0x94], edx
call fcn.0044d820
cmp eax, esi
je 0x45f74c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f74c
mov edx, eax
call fcn.0044d450
jmp 0x45f750
xor eax, eax
xor edx, edx
mov dword [edi + 0x98], eax
push str.active_time
mov eax, ebx
mov dword [edi + 0x9c], edx
call fcn.0044d820
cmp eax, esi
je 0x45f78a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f78a
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f790
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4ec]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4ec], ecx
push str.finished_time
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f7d2
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f7d2
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f7d8
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4f4]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4f4], ecx
push str.seeding_time
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f81a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f81a
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f820
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4fc]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4fc], ecx
push str.last_seen_complete
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f85e
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f85e
mov edx, eax
call fcn.0044d450
jmp 0x45f862
xor eax, eax
xor edx, edx
mov dword [edi + 0x4b8], eax
push str.num_seeds
mov eax, ebx
mov dword [edi + 0x4bc], edx
call fcn.0044d820
cmp eax, esi
je 0x45f89c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f89c
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f8a5
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x51c]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x51c], edx
push str.num_incomplete
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f8e7
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f8e7
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f8f0
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x524]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x524], edx
push str.num_downloaders
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f932
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f932
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f93b
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x540]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x540], edx
push str.upload_rate_limit
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45f97d
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45f97d
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f984
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x45f992
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x38], eax
je 0x45f9a4
mov esi, edi
call fcn.00469910
mov eax, dword [esp + 0x20]
xor esi, esi
or byte [edi + 0x4f8], 0x80
cdq
mov dword [edi + 0x38], eax
push str.download_rate_limit
mov eax, ebx
mov dword [edi + 0x3c], edx
call fcn.0044d820
cmp eax, esi
je 0x45f9e0
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45f9e0
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45f9e7
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x45f9f5
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x50], eax
je 0x45fa07
mov esi, edi
call fcn.00469910
mov eax, dword [esp + 0x20]
xor esi, esi
or byte [edi + 0x4f8], 0x80
cdq
mov dword [edi + 0x50], eax
push str.max_connections
mov eax, ebx
mov dword [edi + 0x54], edx
call fcn.0044d820
cmp eax, esi
je 0x45fa43
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45fa43
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45fa4a
or eax, 0xffffffff
mov dword [esp + 0x18], eax
push eax
mov ecx, edi
call fcn.004648a0
push str.max_uploads
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fa80
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45fa80
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45fa87
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x45fa98
mov eax, 0xffffff
mov dword [esp + 0x20], eax
mov ecx, dword [edi + 0x504]
and ecx, 0xffffff
cmp ecx, eax
je 0x45fab5
mov esi, edi
call fcn.00469910
mov eax, dword [esp + 0x20]
xor esi, esi
mov edx, dword [edi + 0x504]
or byte [edi + 0x4f8], 0x80
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x504], edx
push str.seed_mode
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fb0e
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45fb0e
mov edx, eax
call fcn.0044d450
or eax, edx
je 0x45fb0e
mov eax, dword [edi + 0xa8]
cmp dword [eax + 0x94], esi
jle 0x45fb0e
mov al, 1
jmp 0x45fb10
xor al, al
add al, al
add al, al
xor al, byte [edi + 0x4e8]
and al, 4
xor byte [edi + 0x4e8], al
test byte [edi + 0x4e8], 4
je 0x45fb4a
mov eax, dword [edi + 0xa8]
mov ebx, dword [eax + 0x90]
push 0
lea eax, [edi + 0x424]
call fcn.0044e010
mov ebx, dword [esp + 0x24]
xor esi, esi
push str.super_seeding
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fb7a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45fb7a
mov edx, eax
call fcn.0044d450
or eax, edx
je 0x45fb7a
mov al, 1
jmp 0x45fb7c
xor al, al
push eax
mov ecx, edi
call fcn.0045c180
push str.last_scrape
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fbb2
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45fbb2
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45fbb8
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x534], eax
push str.last_download
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fbec
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x45fbec
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45fbf2
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x538], eax
push str.last_upload
mov eax, ebx
call fcn.0044d820
cmp eax, esi
je 0x45fc26
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45fc26
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x18], edx
jmp 0x45fc2c
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x53c], eax
push ebx
mov eax, 0x532514
lea ecx, [esp + 0x84]
call fcn.0044d700
lea esi, [edi + 0x3c0]
push eax
mov ecx, esi
mov dword [esp + 0x134], 0
call dword [0x52e398]
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push ebx
mov eax, str.uuid
lea ecx, [esp + 0x84]
call fcn.0044d700
lea ecx, [edi + 0x3dc]
push eax
mov dword [esp + 0x134], 1
mov dword [esp + 0x20], ecx
call dword [0x52e398]
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push ebx
mov eax, str.feed
lea ecx, [esp + 0x84]
call fcn.0044d700
push eax
lea ecx, [edi + 0x3f8]
mov dword [esp + 0x134], 2
call dword [0x52e398]
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp dword [edi + 0x3f0], 0
jne 0x45fd14
cmp dword [edi + 0x3d4], 0
je 0x45fe5c
lea ebx, [edi + 0x1c]
lea edi, [esp + 0x54]
call fcn.004af770
mov edx, dword [esp + 0x28]
mov ebx, 3
mov dword [esp + 0x130], ebx
cmp dword [edx + 0x3f0], 0
mov edx, esi
je 0x45fd3f
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
sub esp, 8
test esi, esi
mov eax, esp
mov dword [eax], ecx
mov dword [esp + 0x1c], esp
mov dword [eax + 4], esi
je 0x45fd65
lea eax, [esi + 4]
mov ecx, 1
lock xadd dword [eax], ecx
sub esp, 0x1c
mov byte [esp + 0x154], 4
mov ecx, esp
mov dword [esp + 0x54], esp
push edx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea edi, [esp + 0x80]
mov byte [esp + 0x154], bl
call fcn.0046fda0
add esp, 0x24
mov edi, eax
push edi
lea ecx, [esp + 0x84]
mov byte [esp + 0x134], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov edx, dword [edi + 0x1c]
mov dword [esp + 0x9c], edx
mov edi, dword [edi + 0x20]
test edi, edi
mov dword [esp + 0xa0], edi
je 0x45fdcf
add edi, 4
mov eax, 1
lock xadd dword [edi], eax
mov edx, dword [esp + 0x28]
mov byte [esp + 0x130], 6
mov eax, dword [edx + 0x2e8]
lea ecx, [esp + 0x80]
push ecx
add eax, 0x9cc
push eax
lea ebx, [esp + 0x40]
call fcn.0046b2b0
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0x134], 5
call fcn.00405200
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x134], 3
call fcn.00405200
test esi, esi
mov dword [esp + 0x130], 0xffffffff
je 0x45fe58
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x45fe58
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x45fe58
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push str.mapped_files
call fcn.0044d820
mov esi, eax
test esi, esi
je 0x45ff53
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x45ff53
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, dword [esi + 0xc]
jne 0x45fe9b
xor eax, eax
jmp 0x45fea3
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x45ff53
xor ebx, ebx
lea ecx, [ecx]
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x45fec1
xor eax, eax
jmp 0x45fec9
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp ebx, eax
jge 0x45ff53
mov eax, ebx
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0044da70
mov dword [esp + 0x130], 7
cmp dword [esp + 0x94], 0
jne 0x45ff13
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add ebx, 1
jmp 0x45feb0
mov edi, dword [edi + 0xa8]
call fcn.00429680
push ebx
add edi, 8
push edi
lea eax, [esp + 0x88]
call fcn.00417310
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov edi, dword [esp + 0x28]
add ebx, 1
jmp 0x45feb0
mov eax, dword [esp + 0x24]
mov esi, dword [edi + 0x4a0]
mov ebx, dword [edi + 0x4a4]
push str.added_time
call fcn.0044d820
test eax, eax
je 0x45ff93
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45ff93
mov edx, eax
call fcn.0044d450
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x45ff9b
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + 0x4a8]
mov esi, dword [edi + 0x4ac]
mov dword [edi + 0x4a4], eax
mov eax, dword [esp + 0x24]
push str.completed_time
mov dword [edi + 0x4a0], edx
call fcn.0044d820
test eax, eax
je 0x45ffe7
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x45ffe7
mov edx, eax
call fcn.0044d450
jmp 0x45ffeb
mov eax, ebx
mov edx, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x4a8], eax
mov dword [edi + 0x4ac], edx
je 0x46001d
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x46001d
jl 0x46000d
cmp eax, dword [esp + 0x14]
jae 0x46001d
mov edx, dword [esp + 0x14]
mov dword [edi + 0x4a8], edx
mov dword [edi + 0x4ac], ecx
mov eax, dword [esp + 0x24]
mov ebx, dword [edi + 0x4b0]
mov esi, dword [edi + 0x4b4]
push str.first_completed_time
call fcn.0044d820
test eax, eax
je 0x460055
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x460055
mov edx, eax
call fcn.0044d450
jmp 0x460059
mov eax, ebx
mov edx, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x4b0], eax
mov dword [edi + 0x4b4], edx
je 0x46008b
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x46008b
jl 0x46007b
cmp eax, dword [esp + 0x14]
jae 0x46008b
mov edx, dword [esp + 0x14]
mov dword [edi + 0x4b0], edx
mov dword [edi + 0x4b4], ecx
mov esi, dword [esp + 0x24]
push str.file_priority
mov eax, esi
call fcn.0044d820
mov ebx, eax
test ebx, ebx
je 0x46015e
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x46015e
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, dword [ebx + 0xc]
jne 0x4600cc
xor eax, eax
jmp 0x4600d4
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x46015e
xor esi, esi
test edx, edx
jle 0x460154
mov dword [esp + 0x34], esi
mov edx, dword [ebx]
add edx, dword [esp + 0x34]
je 0x46010e
mov ecx, dword [edx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x46010e
call fcn.0044d450
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x46011e
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov ecx, dword [edi + 0x2fc]
test ecx, ecx
je 0x460134
mov eax, dword [edi + 0x300]
sub eax, ecx
cmp esi, eax
jb 0x46013a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 0x2fc]
mov al, byte [esp + 0x14]
add dword [esp + 0x34], 0x14
mov byte [esi + edx], al
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x4600e6
push edi
call fcn.0045d120
mov esi, dword [esp + 0x24]
push str.piece_priority
mov eax, esi
call fcn.0044d820
mov ebx, eax
test ebx, ebx
je 0x4601ce
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x4601ce
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0xa8]
cmp eax, dword [ecx + 0x90]
jne 0x4601ce
mov edx, dword [ebx]
xor esi, esi
test eax, eax
mov dword [esp + 0x1c], edx
jle 0x4601be
mov edi, edi
mov ecx, dword [esp + 0x1c]
movsx edx, byte [esi + ecx]
mov eax, dword [edi + 0x318]
push edx
push esi
push eax
call fcn.004d6f10
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x4601a0
add edi, 0x58
call fcn.004a8ad0
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
test byte [edi + 0x4f8], 0x10
jne 0x46021f
push str.auto_managed
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x46021f
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x46021f
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x46021f
test eax, eax
setne dl
shl dl, 6
xor dl, byte [edi + 0x52c]
and dl, 0x40
xor byte [edi + 0x52c], dl
push str.sequential_download
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x46027e
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x46027e
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x46027e
mov cl, byte [edi + 0x4f8]
test eax, eax
setne al
mov dl, cl
and dl, 1
cmp dl, al
je 0x46027e
and al, 1
and cl, 0xfe
or al, cl
or al, 0x80
mov esi, edi
mov byte [edi + 0x4f8], al
call fcn.00469910
mov esi, dword [esp + 0x24]
test byte [edi + 0x4f8], 0x10
jne 0x4603cc
push str.paused
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x4602f2
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4602f2
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4602f2
test eax, eax
sete al
and al, 1
mov dl, al
and dl, 0xfd
mov cl, al
add cl, cl
or dl, cl
mov cl, byte [edi + 0x52c]
and cl, 0xe9
add dl, dl
or dl, cl
mov cl, al
add cl, cl
or cl, al
add cl, cl
add cl, cl
and dl, 0xf7
add cl, cl
or dl, cl
mov byte [edi + 0x52c], dl
push str.announce_to_dht
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x460338
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x460338
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x460338
test eax, eax
setne al
add al, al
xor al, byte [edi + 0x52c]
and al, 2
xor byte [edi + 0x52c], al
push str.announce_to_lsd
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x460383
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x460383
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x460383
test eax, eax
setne dl
add dl, dl
add dl, dl
add dl, dl
xor dl, byte [edi + 0x52c]
and dl, 8
xor byte [edi + 0x52c], dl
push str.announce_to_trackers
mov eax, esi
call fcn.0044d820
test eax, eax
je 0x4603cc
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4603cc
mov edx, eax
call fcn.0044d450
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4603cc
test eax, eax
setne dl
add dl, dl
add dl, dl
xor dl, byte [edi + 0x52c]
and dl, 4
xor byte [edi + 0x52c], dl
push str.trackers
mov eax, esi
call fcn.0044d820
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4606fd
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x4606fd
test byte [edi + 0x545], 0x80
jne 0x460449
mov eax, dword [edi + 0x324]
cmp dword [edi + 0x320], eax
lea esi, [edi + 0x31c]
mov dword [esp + 0x1c], eax
jbe 0x460420
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
mov dword [esp + 0x2c], eax
jbe 0x460432
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push ecx
push esi
push edx
push esi
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.0041e710
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], ecx
jle 0x460646
mov dword [esp + 0x20], ecx
mov eax, dword [ebx]
add eax, dword [esp + 0x20]
mov dword [esp + 0x2c], eax
je 0x46062d
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x46062d
cmp dword [eax + 0xc], ecx
mov dword [esp + 0x34], ecx
jle 0x460622
lea ebx, [edi + 0x31c]
jmp 0x4604a0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x80]
call fcn.0044da70
push eax
lea eax, [esp + 0xa8]
push eax
mov dword [esp + 0x138], 8
call fcn.00428b70
lea ecx, [esp + 0x80]
mov byte [esp + 0x130], 0xa
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
mov dword [esp + 0x30], eax
jbe 0x4604f4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
sub esp, 0x28
mov dword [esp + 0x7c], esp
mov esi, esp
sub esp, 0x1c
lea edx, [esp + 0xe8]
mov ecx, esp
mov dword [esp + 0x98], esp
push edx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], 0
call fcn.0046ff90
mov esi, dword [ebx + 8]
add esp, 0x20
cmp dword [ebx + 4], esi
jbe 0x460540
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [esp + 0x7c], eax
jbe 0x460556
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x7c]
push esi
push ebx
push eax
push ebx
lea esi, [esp + 0x70]
call fcn.00470050
mov esi, eax
mov eax, dword [esi]
add esp, 0x38
test eax, eax
je 0x460572
cmp eax, ebx
je 0x460578
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
cmp dword [esi + 4], ecx
je 0x4605a3
lea ecx, [esp + 0xdc]
mov dword [esp + 0x130], 0xc
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [esp + 0x130], 0xb
jmp 0x4605e5
mov dl, byte [esp + 0x28]
lea eax, [esp + 0xa4]
push eax
mov esi, ebx
mov byte [esp + 0x118], dl
mov byte [esp + 0x119], 0
call fcn.0042c070
lea ecx, [esp + 0xdc]
mov dword [esp + 0x130], 0xe
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [esp + 0x130], 0xd
lea ecx, [esp + 0xc0]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xa4]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x34], eax
jl 0x4604a0
add dword [esp + 0x28], 1
mov ebx, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x1c]
add dword [esp + 0x20], 0x14
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
jl 0x460460
mov eax, dword [edi + 0x324]
cmp dword [edi + 0x320], eax
lea esi, [edi + 0x31c]
mov dword [esp + 0x14], eax
jbe 0x460664
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
mov dword [esp + 0x30], eax
jbe 0x460676
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp esi, esi
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x3c]
mov eax, 0x70
mov ecx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
je 0x46069b
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
sub esp, 0x14
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x28]
mov ecx, ebx
sub ecx, esi
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
push esi
call fcn.0042ecd0
mov ecx, dword [edi + 0x2e8]
add esp, 0x20
cmp byte [ecx + 0x1c3], 0
je 0x4606fd
push edi
call fcn.0045d510
mov eax, dword [esp + 0x24]
push str.url_list
call fcn.0044d820
mov ebx, eax
test ebx, ebx
je 0x460814
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x460814
xor esi, esi
cmp dword [ebx + 0xc], esi
mov dword [esp + 0x1c], esi
jle 0x460814
lea esp, [esp]
mov eax, esi
lea edx, [esp + 0x80]
mov ecx, ebx
call fcn.0044da70
mov dword [esp + 0x130], 0xf
mov edx, dword [esp + 0x94]
test edx, edx
jne 0x460783
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x460804
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4607d7
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp eax, 1
jle 0x4607d7
lea esi, [edx - 1]
cmp esi, edx
jbe 0x4607aa
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x98], 0x10
mov eax, dword [esp + 0x84]
jae 0x4607c2
lea eax, [esp + 0x84]
cmp byte [esi + eax], 0x2f
je 0x4607d7
push 0x2f
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_]
push 0
lea eax, [esp + 0x84]
push eax
mov ecx, edi
call fcn.00465aa0
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [esp + 0x1c]
add esi, 1
cmp esi, dword [ebx + 0xc]
mov dword [esp + 0x1c], esi
jl 0x460740
mov eax, dword [esp + 0x24]
push str.httpseeds
call fcn.0044d820
mov ebx, eax
test ebx, ebx
je 0x460896
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x460896
xor esi, esi
cmp dword [ebx + 0xc], esi
jle 0x460896
mov eax, esi
lea edx, [esp + 0x80]
mov ecx, ebx
call fcn.0044da70
mov dword [esp + 0x130], 0x10
cmp dword [esp + 0x94], 0
je 0x460876
push 1
lea edx, [esp + 0x84]
push edx
mov ecx, edi
call fcn.00465aa0
lea ecx, [esp + 0x80]
mov dword [esp + 0x130], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x460840
mov esi, dword [edi + 0xa8]
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x460ae4
mov ecx, dword [esi + 0xd4]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x460ae4
mov eax, dword [esp + 0x24]
push str.merkle_tree
call fcn.0044d820
mov ebx, eax
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x2c], ebx
je 0x460ae4
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x460ae4
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x130], 0x11
mov eax, dword [esi + 0xd0]
cmp eax, ecx
jne 0x460921
xor esi, esi
jmp 0x46093a
mov ecx, dword [esi + 0xd4]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
xor eax, eax
sub esp, 0x14
mov ecx, esp
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], eax
push esi
lea ecx, [esp + 0x50]
call fcn.0042ca90
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov esi, dword [esp + 0x40]
jne 0x460969
xor eax, eax
jmp 0x46097e
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
cmp eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], edx
jge 0x46099e
lea eax, [esp + 0x14]
mov dword [esp + 0x1c], eax
jmp 0x4609a6
lea edx, [esp + 0x30]
mov dword [esp + 0x1c], edx
test ecx, ecx
mov ebx, dword [ebx]
je 0x4609c1
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4609cb
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push eax
push ebx
push ecx
call sub.MSVCR80.dll_memcpy
mov ecx, dword [esp + 0x38]
mov esi, dword [ecx + 0xc]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
add esp, 0xc
test ecx, ecx
mov dword [esp + 0x14], esi
jne 0x4609f7
xor eax, eax
jmp 0x460a0c
mov edx, ebx
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
cmp esi, edx
jge 0x460a9e
test ecx, ecx
jne 0x460a23
xor esi, esi
jmp 0x460a38
mov edx, ebx
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
test ecx, ecx
je 0x460a51
sub ebx, ecx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x460a5b
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x3c]
mov eax, 0x66666667
imul dword [esp + 0x14]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + 0xc]
sub esi, eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
push 0
push ecx
call sub.MSVCR80.dll_memset
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov edi, dword [edi + 0xa8]
mov eax, dword [edi + 0xd0]
add edi, 0xcc
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 8]
mov dword [edi + 8], edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
mov eax, dword [edi + 0xc]
mov dword [edi + 0xc], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x460ae4
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.00515015
mov esp, ebp
pop ebp
ret