Function at 0x4e28b0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5f6003
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x64c874]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push esi
push edi
mov eax, dword [0x64c874]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov ebx, edx
mov edi, ecx
push str.total_uploaded
mov eax, ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], ebx
call fcn.005050a0
xor esi, esi
cmp eax, esi
je 0x4e2928
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2928
mov edx, eax
call fcn.00504cd0
jmp 0x4e292c
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.005050a0
cmp eax, esi
je 0x4e2962
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2962
mov edx, eax
call fcn.00504cd0
jmp 0x4e2966
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.005050a0
cmp eax, esi
je 0x4e299c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e299c
mov edx, eax
call fcn.00504cd0
jmp 0x4e29a0
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.005050a0
cmp eax, esi
je 0x4e29da
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e29da
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e29e0
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.005050a0
cmp eax, esi
je 0x4e2a22
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2a22
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2a28
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.005050a0
cmp eax, esi
je 0x4e2a6a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2a6a
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2a70
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.005050a0
cmp eax, esi
je 0x4e2aae
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2aae
mov edx, eax
call fcn.00504cd0
jmp 0x4e2ab2
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.005050a0
cmp eax, esi
je 0x4e2aec
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2aec
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2af5
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.005050a0
cmp eax, esi
je 0x4e2b37
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2b37
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2b40
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.005050a0
cmp eax, esi
je 0x4e2b82
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2b82
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2b8b
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.005050a0
cmp eax, esi
je 0x4e2bcd
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2bcd
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2bd4
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x4e2be2
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x38], eax
je 0x4e2bf4
mov esi, edi
call fcn.004ece70
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.005050a0
cmp eax, esi
je 0x4e2c30
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2c30
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2c37
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x4e2c45
xor eax, eax
mov dword [esp + 0x20], eax
cmp dword [edi + 0x50], eax
je 0x4e2c57
mov esi, edi
call fcn.004ece70
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.005050a0
cmp eax, esi
je 0x4e2c93
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2c93
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2c9a
or eax, 0xffffffff
mov dword [esp + 0x18], eax
push eax
mov ecx, edi
call fcn.004e7e60
push str.max_uploads
mov eax, ebx
call fcn.005050a0
cmp eax, esi
je 0x4e2cd0
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2cd0
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2cd7
or eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp eax, esi
mov dword [esp + 0x20], eax
jg 0x4e2ce8
mov eax, 0xffffff
mov dword [esp + 0x20], eax
mov ecx, dword [edi + 0x504]
and ecx, 0xffffff
cmp ecx, eax
je 0x4e2d05
mov esi, edi
call fcn.004ece70
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.005050a0
cmp eax, esi
je 0x4e2d5e
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2d5e
mov edx, eax
call fcn.00504cd0
or eax, edx
je 0x4e2d5e
mov eax, dword [edi + 0xa8]
cmp dword [eax + 0x94], esi
jle 0x4e2d5e
mov al, 1
jmp 0x4e2d60
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 0x4e2d9a
mov eax, dword [edi + 0xa8]
mov ebx, dword [eax + 0x90]
push 0
lea eax, [edi + 0x424]
call fcn.004d0410
mov ebx, dword [esp + 0x24]
xor esi, esi
push str.super_seeding
mov eax, ebx
call fcn.005050a0
cmp eax, esi
je 0x4e2dca
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2dca
mov edx, eax
call fcn.00504cd0
or eax, edx
je 0x4e2dca
mov al, 1
jmp 0x4e2dcc
xor al, al
push eax
mov ecx, edi
call fcn.004deb60
push str.last_scrape
mov eax, ebx
call fcn.005050a0
cmp eax, esi
je 0x4e2e02
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2e02
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2e08
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x534], eax
push str.last_download
mov eax, ebx
call fcn.005050a0
cmp eax, esi
je 0x4e2e3c
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e2e3c
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2e42
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x538], eax
push str.last_upload
mov eax, ebx
call fcn.005050a0
cmp eax, esi
je 0x4e2e76
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e2e76
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x18], edx
jmp 0x4e2e7c
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [edi + 0x53c], eax
push ebx
mov eax, 0x60b2d0
lea ecx, [esp + 0x8c]
call fcn.00504f80
push 0xffffffffffffffff
push 0
lea ecx, [edi + 0x3c0]
push eax
mov dword [esp + 0x144], 0
mov dword [esp + 0x28], ecx
call fcn.0040b390
mov esi, 0x10
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4e2edc
mov edx, dword [esp + 0x8c]
push edx
call fcn.0059b877
add esp, 4
push ebx
mov eax, str.uuid
lea ecx, [esp + 0x8c]
call fcn.00504f80
push 0xffffffffffffffff
push 0
lea ecx, [edi + 0x3dc]
push eax
mov dword [esp + 0x144], 1
mov dword [esp + 0x34], ecx
call fcn.0040b390
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4e2f31
mov eax, dword [esp + 0x8c]
push eax
call fcn.0059b877
add esp, 4
push ebx
mov eax, str.feed
lea ecx, [esp + 0x8c]
call fcn.00504f80
push 0xffffffffffffffff
push 0
push eax
lea ecx, [edi + 0x3f8]
mov dword [esp + 0x144], 2
call fcn.0040b390
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], esi
jb 0x4e2f82
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.0059b877
add esp, 4
cmp dword [edi + 0x3f0], 0
jne 0x4e2f98
cmp dword [edi + 0x3d4], 0
je 0x4e3113
lea ebx, [edi + 0x1c]
lea edi, [esp + 0x58]
call fcn.00559a50
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x138], 3
cmp dword [edx + 0x3f0], ebx
je 0x4e2fc5
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
sub esp, 8
cmp edi, ebx
mov ecx, esp
mov dword [ecx], edx
mov dword [esp + 0x1c], esp
mov dword [ecx + 4], edi
je 0x4e2feb
lea ecx, [edi + 4]
mov edx, 1
lock xadd dword [ecx], edx
sub esp, 0x1c
mov ecx, esp
mov byte [esp + 0x15c], 4
mov dword [esp + 0x54], esp
push 0xffffffffffffffff
push ebx
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040b390
lea esi, [esp + 0x88]
mov byte [esp + 0x15c], 3
call fcn.004f3e70
add esp, 0x24
mov esi, eax
push 0xffffffffffffffff
mov byte [esp + 0x13c], 5
push ebx
push esi
lea ecx, [esp + 0x94]
mov dword [esp + 0xac], 0xf
mov dword [esp + 0xa8], ebx
mov byte [esp + 0x98], bl
call fcn.0040b390
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xa4], eax
mov esi, dword [esi + 0x20]
cmp esi, ebx
mov dword [esp + 0xa8], esi
je 0x4e3080
add esi, 4
mov ecx, 1
lock xadd dword [esi], ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0x13c], 6
mov edx, dword [ecx + 0x2e8]
lea eax, [esp + 0x3c]
push eax
add edx, 0x9cc
push edx
call fcn.004ee810
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x13c], 5
call fcn.004d5e70
lea ecx, [esp + 0x64]
push ecx
mov byte [esp + 0x13c], 3
call fcn.004d5e70
cmp edi, ebx
mov dword [esp + 0x138], 0xffffffff
je 0x4e310b
lea edx, [edi + 4]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4e310b
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
lea ecx, [edi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x4e310b
mov eax, dword [edi]
mov edx, dword [eax + 8]
mov ecx, edi
call edx
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
push str.mapped_files
mov eax, ebx
call fcn.005050a0
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4e3237
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x4e3237
mov ecx, dword [edi + 0xa8]
mov edx, dword [ecx + 0xc]
test edx, edx
mov eax, dword [eax + 0xc]
jne 0x4e3154
xor ecx, ecx
jmp 0x4e315c
mov ecx, dword [ecx + 0x10]
sub ecx, edx
sar ecx, 5
cmp eax, ecx
jne 0x4e3237
xor esi, esi
jmp 0x4e3170
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4e3181
xor eax, eax
jmp 0x4e3189
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp esi, eax
jge 0x4e3237
mov edx, dword [esp + 0x1c]
mov eax, esi
lea ecx, [esp + 0x88]
call fcn.005052f0
mov dword [esp + 0x138], 7
cmp dword [esp + 0x9c], 0
jne 0x4e31e6
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e322b
mov edx, dword [esp + 0x8c]
push edx
call fcn.0059b877
mov ebx, dword [esp + 0x28]
add esp, 4
add esi, 1
jmp 0x4e3170
mov edi, dword [edi + 0xa8]
call fcn.004b4b70
push esi
add edi, 8
push edi
lea eax, [esp + 0x90]
call fcn.004adca0
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e3227
mov eax, dword [esp + 0x8c]
push eax
call fcn.0059b877
add esp, 4
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
add esi, 1
jmp 0x4e3170
mov esi, dword [edi + 0x4a0]
push str.added_time
mov eax, ebx
call fcn.005050a0
test eax, eax
je 0x4e326f
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e326f
mov edx, eax
call fcn.00504cd0
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jmp 0x4e327d
mov eax, dword [edi + 0x4a4]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov esi, dword [edi + 0x4a8]
mov dword [edi + 0x4a4], eax
push str.completed_time
mov eax, ebx
mov dword [edi + 0x4a0], edx
call fcn.005050a0
test eax, eax
je 0x4e32c1
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e32c1
mov edx, eax
call fcn.00504cd0
jmp 0x4e32c9
mov edx, dword [edi + 0x4ac]
mov eax, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x4a8], eax
mov dword [edi + 0x4ac], edx
je 0x4e32fb
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x4e32fb
jl 0x4e32eb
cmp eax, dword [esp + 0x14]
jae 0x4e32fb
mov edx, dword [esp + 0x14]
mov dword [edi + 0x4a8], edx
mov dword [edi + 0x4ac], ecx
mov esi, dword [edi + 0x4b0]
push str.first_completed_time
mov eax, ebx
call fcn.005050a0
test eax, eax
je 0x4e332b
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e332b
mov edx, eax
call fcn.00504cd0
jmp 0x4e3333
mov edx, dword [edi + 0x4b4]
mov eax, esi
mov ecx, eax
or ecx, edx
mov dword [edi + 0x4b0], eax
mov dword [edi + 0x4b4], edx
je 0x4e3365
mov ecx, dword [esp + 0x18]
cmp edx, ecx
jg 0x4e3365
jl 0x4e3355
cmp eax, dword [esp + 0x14]
jae 0x4e3365
mov edx, dword [esp + 0x14]
mov dword [edi + 0x4b0], edx
mov dword [edi + 0x4b4], ecx
push str.file_priority
mov eax, ebx
call fcn.005050a0
test eax, eax
mov dword [esp + 0x20], eax
je 0x4e342c
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x4e342c
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x4e33a6
xor eax, eax
jmp 0x4e33ae
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x4e342c
xor esi, esi
cmp edx, esi
jle 0x4e3426
mov dword [esp + 0x34], esi
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
add edx, dword [esp + 0x34]
je 0x4e33e4
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x4e33e4
call fcn.00504cd0
mov ebx, eax
mov dword [esp + 0x18], edx
jmp 0x4e33f1
mov ebx, 1
mov dword [esp + 0x18], 0
mov ecx, dword [edi + 0x2fc]
test ecx, ecx
je 0x4e3407
mov eax, dword [edi + 0x300]
sub eax, ecx
cmp esi, eax
jb 0x4e340c
call fcn.005b8b18
mov ecx, dword [edi + 0x2fc]
mov edx, dword [esp + 0x20]
add dword [esp + 0x34], 0x14
mov byte [esi + ecx], bl
add esi, 1
cmp esi, dword [edx + 0xc]
jl 0x4e33bc
push edi
call fcn.004dfb20
mov esi, dword [esp + 0x24]
push str.piece_priority
mov eax, esi
call fcn.005050a0
mov ebx, eax
test ebx, ebx
je 0x4e349e
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x60000000
jne 0x4e349e
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0xa8]
cmp eax, dword [ecx + 0x90]
jne 0x4e349e
mov ecx, dword [ebx]
xor esi, esi
test eax, eax
mov dword [esp + 0x1c], ecx
jle 0x4e348e
mov edi, edi
mov edx, dword [esp + 0x1c]
movsx ecx, byte [esi + edx]
mov eax, dword [edi + 0x318]
push ecx
push esi
push eax
call fcn.00552960
add esi, 1
cmp esi, dword [ebx + 0xc]
jl 0x4e3470
add edi, 0x58
call fcn.00509730
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
test byte [edi + 0x4f8], 0x10
jne 0x4e34ee
push str.auto_managed
mov eax, esi
call fcn.005050a0
test eax, eax
je 0x4e34ee
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e34ee
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e34ee
test eax, eax
setne al
shl al, 6
xor al, byte [edi + 0x52c]
and al, 0x40
xor byte [edi + 0x52c], al
push str.sequential_download
mov eax, esi
call fcn.005050a0
test eax, eax
je 0x4e354d
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e354d
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e354d
test eax, eax
mov al, byte [edi + 0x4f8]
setne cl
mov dl, al
and dl, 1
cmp dl, cl
je 0x4e354d
and al, 0xfe
and cl, 1
or al, cl
or al, 0x80
mov esi, edi
mov byte [edi + 0x4f8], al
call fcn.004ece70
mov esi, dword [esp + 0x24]
test byte [edi + 0x4f8], 0x10
jne 0x4e369b
push str.paused
mov eax, esi
call fcn.005050a0
test eax, eax
je 0x4e35c1
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e35c1
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e35c1
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.005050a0
test eax, eax
je 0x4e3607
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4e3607
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e3607
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.005050a0
test eax, eax
je 0x4e3652
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e3652
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e3652
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.005050a0
test eax, eax
je 0x4e369b
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4e369b
mov edx, eax
call fcn.00504cd0
cmp eax, 0xffffffff
mov dword [esp + 0x50], edx
je 0x4e369b
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.005050a0
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x4e3ad3
mov eax, dword [ebx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x4e3ad3
test byte [edi + 0x545], 0x80
jne 0x4e3716
mov eax, dword [edi + 0x324]
cmp dword [edi + 0x320], eax
lea esi, [edi + 0x31c]
mov dword [esp + 0x28], eax
jbe 0x4e36ee
call fcn.005b8b18
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
jbe 0x4e3703
call fcn.005b8b18
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
push ecx
push esi
push eax
push esi
lea edx, [esp + 0x5c]
push edx
push esi
call fcn.0049a020
xor ecx, ecx
cmp dword [ebx + 0xc], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x1c], ecx
jle 0x4e3a1f
mov dword [esp + 0x20], ecx
lea ecx, [ecx]
mov eax, dword [ebx]
add eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
je 0x4e3a06
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x4e3a06
cmp dword [eax + 0xc], ecx
mov dword [esp + 0x34], ecx
jle 0x4e39fb
lea ebx, [edi + 0x31c]
jmp 0x4e3770
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x88]
call fcn.005052f0
push eax
lea eax, [esp + 0xb0]
push eax
mov dword [esp + 0x140], 8
call fcn.004b3fe0
mov byte [esp + 0x138], 0xa
cmp dword [esp + 0xa0], 0x10
jb 0x4e37bf
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.0059b877
add esp, 4
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
mov dword [esp + 0xa0], 0xf
mov dword [esp + 0x9c], 0
mov byte [esp + 0x8c], 0
mov dword [esp + 0x30], eax
jbe 0x4e37ee
call fcn.005b8b18
sub esp, 0x28
mov dword [esp + 0x80], esp
mov esi, esp
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x9c], esp
push 0xffffffffffffffff
push 0
lea edx, [esp + 0xf8]
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push edx
mov byte [ecx + 4], 0
call fcn.0040b390
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x94], 0
call fcn.004f40a0
mov esi, dword [ebx + 8]
add esp, 0x20
cmp dword [ebx + 4], esi
jbe 0x4e3851
call fcn.005b8b18
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [esp + 0x80], eax
jbe 0x4e386c
call fcn.005b8b18
mov eax, dword [esp + 0x80]
push esi
push ebx
push eax
push ebx
lea esi, [esp + 0x70]
call fcn.004f4180
mov esi, eax
mov eax, dword [esi]
add esp, 0x38
test eax, eax
je 0x4e3888
cmp eax, ebx
je 0x4e388d
call fcn.005b8b18
mov ecx, dword [esp + 0x30]
cmp dword [esi + 4], ecx
je 0x4e3932
mov esi, 0x10
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xfc], esi
jb 0x4e38c3
mov edx, dword [esp + 0xe8]
push edx
call fcn.0059b877
add esp, 4
cmp dword [esp + 0xe0], esi
mov dword [esp + 0xfc], 0xf
mov dword [esp + 0xf8], 0
mov byte [esp + 0xe8], 0
jb 0x4e38fa
mov eax, dword [esp + 0xcc]
push eax
call fcn.0059b877
add esp, 4
cmp dword [esp + 0xc4], esi
mov dword [esp + 0xe0], 0xf
mov dword [esp + 0xdc], 0
mov byte [esp + 0xcc], 0
jb 0x4e39e3
mov ecx, dword [esp + 0xb0]
push ecx
jmp 0x4e39db
mov dl, byte [esp + 0x60]
lea eax, [esp + 0xac]
push eax
mov esi, ebx
mov byte [esp + 0x120], dl
mov byte [esp + 0x121], 0
call fcn.004b72c0
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xfc], 0x10
jb 0x4e3979
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.0059b877
add esp, 4
xor esi, esi
cmp dword [esp + 0xe0], 0x10
mov dword [esp + 0xfc], 0xf
mov dword [esp + 0xf8], esi
mov byte [esp + 0xe8], 0
jb 0x4e39af
mov edx, dword [esp + 0xcc]
push edx
call fcn.0059b877
add esp, 4
cmp dword [esp + 0xc4], 0x10
mov dword [esp + 0xe0], 0xf
mov dword [esp + 0xdc], esi
mov byte [esp + 0xcc], 0
jb 0x4e39e3
mov eax, dword [esp + 0xb0]
push eax
call fcn.0059b877
add esp, 4
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x34], eax
jl 0x4e3770
add dword [esp + 0x60], 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 0x4e3730
mov eax, dword [edi + 0x324]
cmp dword [edi + 0x320], eax
lea esi, [edi + 0x31c]
mov dword [esp + 0x14], eax
jbe 0x4e3a3c
call fcn.005b8b18
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
mov dword [esp + 0x30], eax
jbe 0x4e3a4d
call fcn.005b8b18
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 0x4e3a71
call fcn.005b8b18
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.004b9ec0
mov ecx, dword [edi + 0x2e8]
add esp, 0x20
cmp byte [ecx + 0x1c3], 0
je 0x4e3ad3
push edi
call fcn.004dff00
mov eax, dword [esp + 0x24]
push str.url_list
call fcn.005050a0
mov ebx, eax
test ebx, ebx
je 0x4e3bff
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x4e3bff
xor eax, eax
cmp dword [ebx + 0xc], eax
mov dword [esp + 0x1c], eax
jle 0x4e3bff
nop
lea ecx, [esp + 0x88]
mov edx, ebx
call fcn.005052f0
mov dword [esp + 0x138], 0xb
mov edx, dword [esp + 0x9c]
test edx, edx
jne 0x4e3b5a
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e3beb
mov eax, dword [esp + 0x8c]
push eax
jmp 0x4e3be3
mov eax, dword [edi + 0xa8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4e3bb5
mov eax, dword [eax + 0x10]
sub eax, ecx
sar eax, 5
cmp eax, 1
jle 0x4e3bb5
lea esi, [edx - 1]
cmp esi, edx
jbe 0x4e3b80
call fcn.005b8b18
cmp dword [esp + 0xa0], 0x10
mov eax, dword [esp + 0x8c]
jae 0x4e3b98
lea eax, [esp + 0x8c]
cmp byte [eax + esi], 0x2f
je 0x4e3bb5
push 0x2f
mov eax, 1
lea edi, [esp + 0x8c]
call fcn.004192a0
mov edi, dword [esp + 0x2c]
push 0
lea ecx, [esp + 0x8c]
push ecx
mov ecx, edi
call fcn.004e91d0
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e3beb
mov edx, dword [esp + 0x8c]
push edx
call fcn.0059b877
add esp, 4
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
jl 0x4e3b10
mov eax, dword [esp + 0x24]
push str.httpseeds
call fcn.005050a0
mov esi, eax
test esi, esi
je 0x4e3cbb
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x4e3cbb
xor ebx, ebx
cmp dword [esi + 0xc], ebx
jle 0x4e3cbb
mov eax, ebx
lea ecx, [esp + 0x88]
mov edx, esi
call fcn.005052f0
mov dword [esp + 0x138], 0xc
cmp dword [esp + 0x9c], 0
jne 0x4e3c79
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e3caf
mov ecx, dword [esp + 0x8c]
push ecx
jmp 0x4e3ca7
push 1
lea edx, [esp + 0x8c]
push edx
mov ecx, edi
call fcn.004e91d0
mov dword [esp + 0x138], 0xffffffff
cmp dword [esp + 0xa0], 0x10
jb 0x4e3caf
mov eax, dword [esp + 0x8c]
push eax
call fcn.0059b877
add esp, 4
add ebx, 1
cmp ebx, dword [esi + 0xc]
jl 0x4e3c35
mov esi, dword [edi + 0xa8]
mov eax, dword [esi + 0xd0]
test eax, eax
je 0x4e3f09
mov ecx, dword [esi + 0xd4]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4e3f09
mov eax, dword [esp + 0x24]
push str.merkle_tree
call fcn.005050a0
mov ebx, eax
xor ecx, ecx
cmp ebx, ecx
mov dword [esp + 0x28], ebx
je 0x4e3f09
mov edx, dword [ebx + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x4e3f09
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x138], 0xd
mov eax, dword [esi + 0xd0]
cmp eax, ecx
jne 0x4e3d46
xor esi, esi
jmp 0x4e3d61
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 ecx, ecx
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.004b7cc0
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov esi, dword [esp + 0x40]
jne 0x4e3d90
xor eax, eax
jmp 0x4e3da5
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 0x4e3dc5
lea eax, [esp + 0x14]
mov dword [esp + 0x1c], eax
jmp 0x4e3dcd
lea edx, [esp + 0x30]
mov dword [esp + 0x1c], edx
test ecx, ecx
mov ebx, dword [ebx]
je 0x4e3de8
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4e3df1
call fcn.005b8b18
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
push eax
push ebx
push ecx
call fcn.005c3120
mov ecx, dword [esp + 0x34]
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 0x4e3e1d
xor eax, eax
jmp 0x4e3e32
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 0x4e3ec3
test ecx, ecx
jne 0x4e3e49
xor esi, esi
jmp 0x4e3e5e
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 0x4e3e77
sub ebx, ecx
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4e3e80
call fcn.005b8b18
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 + 0x28]
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 fcn.005be600
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 0x4e3f09
push eax
call fcn.0059b877
add esp, 4
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.005b88a9
mov esp, ebp
pop ebp
ret