Function at 0x100c7330
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x101200f6
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x1014d0cc]
xor eax, esp
mov dword [esp + 0x110], eax
push ebx
push esi
push edi
mov eax, dword [0x1014d0cc]
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 + 0x24], ebx
call fcn.1005d8c0
xor esi, esi
cmp eax, esi
je 0x100c73a8
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c73a8
mov edx, eax
call fcn.1005d4f0
jmp 0x100c73ac
xor eax, eax
xor edx, edx
mov dword [edi + 0x80], eax
push str.total_downloaded
mov eax, ebx
mov dword [edi + 0x84], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c73e2
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c73e2
mov edx, eax
call fcn.1005d4f0
jmp 0x100c73e6
xor eax, eax
xor edx, edx
mov dword [edi + 0x88], eax
push str.total_web_downloaded
mov eax, ebx
mov dword [edi + 0x8c], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c741c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c741c
mov edx, eax
call fcn.1005d4f0
jmp 0x100c7420
xor eax, eax
xor edx, edx
mov dword [edi + 0x90], eax
push str.active_time
mov eax, ebx
mov dword [edi + 0x94], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c745a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c745a
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c7460
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4cc]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4cc], ecx
push str.finished_time
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c74a2
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c74a2
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c74a8
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4d4]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4d4], ecx
push str.seeding_time
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c74ea
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c74ea
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c74f0
xor eax, eax
mov dword [esp + 0x18], esi
mov ecx, dword [edi + 0x4dc]
xor ecx, eax
and ecx, 0xffffff
xor dword [edi + 0x4dc], ecx
push str.last_seen_complete
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c752e
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c752e
mov edx, eax
call fcn.1005d4f0
jmp 0x100c7532
xor eax, eax
xor edx, edx
mov dword [edi + 0x498], eax
push str.num_seeds
mov eax, ebx
mov dword [edi + 0x49c], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c756c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c756c
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c7575
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x4fc]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x4fc], edx
push str.num_incomplete
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c75b7
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c75b7
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c75c0
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x504]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x504], edx
push str.num_downloaders
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c7602
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7602
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c760b
mov eax, 0xffffff
mov dword [esp + 0x18], esi
mov edx, dword [edi + 0x518]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x518], edx
push str.upload_rate_limit
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c764d
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c764d
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c7654
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x1c], eax
jg 0x100c7662
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x38], eax
je 0x100c7674
mov esi, edi
call fcn.100d0e90
mov eax, dword [esp + 0x1c]
xor esi, esi
cdq
mov dword [edi + 0x38], eax
push str.download_rate_limit
mov eax, ebx
mov dword [edi + 0x3c], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c76a9
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c76a9
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c76b0
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x1c], eax
jg 0x100c76be
xor eax, eax
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x50], eax
je 0x100c76d0
mov esi, edi
call fcn.100d0e90
mov eax, dword [esp + 0x1c]
xor esi, esi
cdq
mov dword [edi + 0x50], eax
push str.max_connections
mov eax, ebx
mov dword [edi + 0x54], edx
call fcn.1005d8c0
cmp eax, esi
je 0x100c7705
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7705
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c770c
or eax, 0xffffffff
mov dword [esp + 0x18], eax
push eax
mov ecx, edi
call fcn.100cc730
push str.max_uploads
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c7742
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c7742
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c7749
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x1c], eax
jg 0x100c775a
mov eax, 0xffffff
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x4e4]
and ecx, 0xffffff
cmp ecx, eax
je 0x100c7777
mov esi, edi
call fcn.100d0e90
mov eax, dword [esp + 0x1c]
xor esi, esi
mov edx, dword [edi + 0x4e4]
xor edx, eax
and edx, 0xffffff
xor dword [edi + 0x4e4], edx
push str.seed_mode
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c77c9
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c77c9
mov edx, eax
call fcn.1005d4f0
or eax, edx
je 0x100c77c9
mov eax, dword [edi + 0xa0]
cmp dword [eax + 0x94], esi
jle 0x100c77c9
mov al, 1
jmp 0x100c77cb
xor al, al
add al, al
add al, al
xor al, byte [edi + 0x4c8]
and al, 4
xor byte [edi + 0x4c8], al
test byte [edi + 0x4c8], 4
je 0x100c7805
mov eax, dword [edi + 0xa0]
mov ebx, dword [eax + 0x90]
push 0
lea eax, [edi + 0x408]
call fcn.1001cdd0
mov ebx, dword [esp + 0x20]
xor esi, esi
push str.super_seeding
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c7835
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c7835
mov edx, eax
call fcn.1005d4f0
or eax, edx
je 0x100c7835
mov al, 1
jmp 0x100c7837
xor al, al
push eax
mov ecx, edi
call fcn.100c39f0
push str.last_scrape
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c786d
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c786d
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c7873
xor eax, eax
mov dword [esp + 0x18], esi
mov word [edi + 0x510], ax
push str.last_download
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c78a8
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c78a8
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c78ae
xor eax, eax
mov dword [esp + 0x18], esi
mov word [edi + 0x512], ax
push str.last_upload
mov eax, ebx
call fcn.1005d8c0
cmp eax, esi
je 0x100c78e3
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c78e3
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x18], edx
jmp 0x100c78e9
xor eax, eax
mov dword [esp + 0x18], esi
mov word [edi + 0x514], ax
push ebx
mov eax, 0x1012c894
lea ecx, [esp + 0x84]
call fcn.1005d7a0
lea esi, [edi + 0x3a4]
push eax
mov ecx, esi
mov dword [esp + 0x134], 0
call dword [0x1012717c]
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.1005d7a0
lea ecx, [edi + 0x3c0]
push eax
mov dword [esp + 0x134], 1
mov dword [esp + 0x28], ecx
call dword [0x1012717c]
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.1005d7a0
push eax
lea ecx, [edi + 0x3dc]
mov dword [esp + 0x134], 2
call dword [0x1012717c]
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 + 0x3d4], 0
jne 0x100c79d2
cmp dword [edi + 0x3b8], 0
je 0x100c7b1a
lea ebx, [edi + 0x1c]
lea edi, [esp + 0x54]
call fcn.100d2250
mov edx, dword [esp + 0x28]
mov ebx, 3
mov dword [esp + 0x130], ebx
cmp dword [edx + 0x3d4], 0
mov edx, esi
je 0x100c79fd
mov edx, dword [esp + 0x24]
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 0x100c7a23
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.1009f3b0
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 0x100c7a8d
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 + 0x2e0]
lea ecx, [esp + 0x80]
push ecx
add eax, 0x9b4
push eax
lea ebx, [esp + 0x40]
call fcn.1009b1f0
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0x134], 5
call fcn.10098430
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x134], 3
call fcn.10098430
test esi, esi
mov dword [esp + 0x130], 0xffffffff
je 0x100c7b16
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x100c7b16
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 0x100c7b16
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push str.mapped_files
call fcn.1005d8c0
mov esi, eax
test esi, esi
je 0x100c7c12
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x100c7c12
mov eax, dword [edi + 0xa0]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, dword [esi + 0xc]
jne 0x100c7b59
xor eax, eax
jmp 0x100c7b61
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x100c7c12
xor ebx, ebx
jmp 0x100c7b70
mov eax, dword [edi + 0xa0]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x100c7b81
xor eax, eax
jmp 0x100c7b89
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp ebx, eax
jge 0x100c7c12
mov eax, ebx
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.1005db10
mov dword [esp + 0x130], 7
cmp dword [esp + 0x94], 0
jne 0x100c7bd3
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 0x100c7b70
mov edi, dword [edi + 0xa0]
call fcn.100e9730
push ebx
add edi, 8
lea eax, [esp + 0x84]
call fcn.1003f8a0
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 0x100c7b70
mov eax, dword [esp + 0x20]
mov esi, dword [edi + 0x480]
mov ebx, dword [edi + 0x484]
push str.added_time
call fcn.1005d8c0
test eax, eax
je 0x100c7c52
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7c52
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x100c7c5a
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [edi + 0x488]
mov esi, dword [edi + 0x48c]
mov dword [edi + 0x484], eax
mov eax, dword [esp + 0x20]
push str.completed_time
mov dword [edi + 0x480], edx
call fcn.1005d8c0
test eax, eax
je 0x100c7ca6
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7ca6
mov edx, eax
call fcn.1005d4f0
jmp 0x100c7caa
mov eax, ebx
mov edx, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x488], eax
mov dword [edi + 0x48c], edx
je 0x100c7cdc
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x100c7cdc
jl 0x100c7ccc
cmp eax, dword [esp + 0x14]
jae 0x100c7cdc
mov edx, dword [esp + 0x14]
mov dword [edi + 0x488], edx
mov dword [edi + 0x48c], ecx
mov eax, dword [esp + 0x20]
mov ebx, dword [edi + 0x490]
mov esi, dword [edi + 0x494]
push str.first_completed_time
call fcn.1005d8c0
test eax, eax
je 0x100c7d14
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7d14
mov edx, eax
call fcn.1005d4f0
jmp 0x100c7d18
mov eax, ebx
mov edx, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x490], eax
mov dword [edi + 0x494], edx
je 0x100c7d4a
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x100c7d4a
jl 0x100c7d3a
cmp eax, dword [esp + 0x14]
jae 0x100c7d4a
mov edx, dword [esp + 0x14]
mov dword [edi + 0x490], edx
mov dword [edi + 0x494], ecx
mov esi, dword [esp + 0x20]
push str.file_priority
mov eax, esi
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
je 0x100c7e1e
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x100c7e1e
mov eax, dword [edi + 0xa0]
mov ecx, dword [eax + 0xc]
test ecx, ecx
mov edx, dword [ebx + 0xc]
jne 0x100c7d8b
xor eax, eax
jmp 0x100c7d93
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x100c7e1e
xor esi, esi
test edx, edx
jle 0x100c7e13
mov dword [esp + 0x34], esi
mov edx, dword [ebx]
add edx, dword [esp + 0x34]
je 0x100c7dcd
mov ecx, dword [edx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7dcd
call fcn.1005d4f0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x100c7ddd
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
mov ecx, dword [edi + 0x2e8]
test ecx, ecx
je 0x100c7df3
mov eax, dword [edi + 0x2ec]
sub eax, ecx
cmp esi, eax
jb 0x100c7df9
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [edi + 0x2e8]
mov al, byte [esp + 0x14]
add dword [esp + 0x34], 0x14
mov byte [esi + edx], al
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x100c7da5
mov esi, edi
call fcn.100c4670
mov esi, dword [esp + 0x20]
push str.piece_priority
mov eax, esi
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
je 0x100c7e8e
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x100c7e8e
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0xa0]
cmp eax, dword [ecx + 0x90]
jne 0x100c7e8e
mov edx, dword [ebx]
xor esi, esi
test eax, eax
mov dword [esp + 0x24], edx
jle 0x100c7e7e
mov edi, edi
mov ecx, dword [esp + 0x24]
movsx edx, byte [esi + ecx]
mov eax, dword [edi + 0x304]
push edx
push esi
push eax
call fcn.1007c280
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x100c7e60
add edi, 0x58
call fcn.10082920
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov bl, byte [edi + 0x4d8]
test bl, 0x10
jne 0x100c7ee1
push str.auto_managed
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c7ee1
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7ee1
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c7ee1
test eax, eax
setne dl
shl dl, 6
xor dl, byte [edi + 0x50c]
and dl, 0x40
xor byte [edi + 0x50c], dl
push str.sequential_download
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c7f37
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7f37
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c7f37
test eax, eax
setne al
mov dl, bl
and dl, 1
cmp dl, al
je 0x100c7f37
xor al, bl
and al, 1
xor al, bl
mov esi, edi
mov byte [edi + 0x4d8], al
call fcn.100d0e90
mov esi, dword [esp + 0x20]
test byte [edi + 0x4d8], 0x10
jne 0x100c8085
push str.paused
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c7fab
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c7fab
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c7fab
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 + 0x50c]
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 + 0x50c], dl
push str.announce_to_dht
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c7ff1
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x100c7ff1
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c7ff1
test eax, eax
setne al
add al, al
xor al, byte [edi + 0x50c]
and al, 2
xor byte [edi + 0x50c], al
push str.announce_to_lsd
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c803c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c803c
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c803c
test eax, eax
setne dl
add dl, dl
add dl, dl
add dl, dl
xor dl, byte [edi + 0x50c]
and dl, 8
xor byte [edi + 0x50c], dl
push str.announce_to_trackers
mov eax, esi
call fcn.1005d8c0
test eax, eax
je 0x100c8085
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100c8085
mov edx, eax
call fcn.1005d4f0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x100c8085
test eax, eax
setne dl
add dl, dl
add dl, dl
xor dl, byte [edi + 0x50c]
and dl, 4
xor byte [edi + 0x50c], dl
push str.trackers
mov eax, esi
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x100c83bd
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x100c83bd
test byte [edi + 0x51d], 0x80
jne 0x100c8102
mov eax, dword [edi + 0x310]
cmp dword [edi + 0x30c], eax
lea esi, [edi + 0x308]
mov dword [esp + 0x24], eax
jbe 0x100c80d9
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 0x100c80eb
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push ecx
push esi
push edx
push esi
lea eax, [esp + 0x5c]
push eax
push esi
call fcn.1005edb0
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
jle 0x100c8306
mov dword [esp + 0x1c], ecx
lea esp, [esp]
mov eax, dword [ebx]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
je 0x100c82ed
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x100c82ed
cmp dword [eax + 0xc], ecx
mov dword [esp + 0x34], ecx
jle 0x100c82e2
lea ebx, [edi + 0x308]
jmp 0x100c8160
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x80]
call fcn.1005db10
push eax
lea eax, [esp + 0xa8]
push eax
mov dword [esp + 0x138], 8
call fcn.100e8c30
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 0x100c81b4
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.1005f2b0
mov esi, dword [ebx + 8]
add esp, 0x20
cmp dword [ebx + 4], esi
jbe 0x100c8200
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 0x100c8216
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.1005f370
mov esi, eax
mov eax, dword [esi]
add esp, 0x38
test eax, eax
je 0x100c8232
cmp eax, ebx
je 0x100c8238
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x30]
cmp dword [esi + 4], ecx
je 0x100c8263
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 0x100c82a5
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.1005eb20
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 0x100c8160
add dword [esp + 0x28], 1
mov ebx, dword [esp + 0x14]
xor ecx, ecx
mov eax, dword [esp + 0x24]
add dword [esp + 0x1c], 0x14
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
jl 0x100c8120
mov eax, dword [edi + 0x310]
cmp dword [edi + 0x30c], eax
lea esi, [edi + 0x308]
mov dword [esp + 0x14], eax
jbe 0x100c8324
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 0x100c8336
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 0x100c835b
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.100d8670
mov ecx, dword [edi + 0x2e0]
add esp, 0x20
cmp byte [ecx + 0x1ab], 0
je 0x100c83bd
push edi
call fcn.100c4a50
mov eax, dword [esp + 0x20]
push str.url_list
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
je 0x100c8446
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x100c8446
xor esi, esi
cmp dword [ebx + 0xc], esi
jle 0x100c8446
lea esp, [esp]
mov eax, esi
lea edx, [esp + 0x80]
mov ecx, ebx
call fcn.1005db10
mov dword [esp + 0x130], 0xf
cmp dword [esp + 0x94], 0
je 0x100c8426
push 0
lea eax, [esp + 0x84]
push eax
mov ecx, edi
call fcn.100b63d0
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 0x100c83f0
mov eax, dword [esp + 0x20]
push str.httpseeds
call fcn.1005d8c0
mov ebx, eax
test ebx, ebx
je 0x100c84c8
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x100c84c8
xor esi, esi
cmp dword [ebx + 0xc], esi
jle 0x100c84c8
mov eax, esi
lea edx, [esp + 0x80]
mov ecx, ebx
call fcn.1005db10
mov dword [esp + 0x130], 0x10
cmp dword [esp + 0x94], 0
je 0x100c84a8
push 1
lea edx, [esp + 0x84]
push edx
mov ecx, edi
call fcn.100b63d0
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 0x100c8472
mov esi, dword [edi + 0xa0]
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x100c8716
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 0x100c8716
mov eax, dword [esp + 0x20]
push str.merkle_tree
call fcn.1005d8c0
mov ebx, eax
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x2c], ebx
je 0x100c8716
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x100c8716
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 0x100c8553
xor esi, esi
jmp 0x100c856c
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.100274f0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov esi, dword [esp + 0x40]
jne 0x100c859b
xor eax, eax
jmp 0x100c85b0
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 0x100c85d0
lea eax, [esp + 0x14]
mov dword [esp + 0x24], eax
jmp 0x100c85d8
lea edx, [esp + 0x30]
mov dword [esp + 0x24], edx
test ecx, ecx
mov ebx, dword [ebx]
je 0x100c85f3
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x100c85fd
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
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 0x100c8629
xor eax, eax
jmp 0x100c863e
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 0x100c86d0
test ecx, ecx
jne 0x100c8655
xor esi, esi
jmp 0x100c866a
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 0x100c8683
sub ebx, ecx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x100c868d
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 + 0xa0]
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 0x100c8716
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.1010defb
mov esp, ebp
pop ebp
ret