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

Disassembly:
mov eax, 0x67167e
call fcn.006313fc
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x4c], 7
xor ebx, ebx
mov dword [esp + 0x14], esi
xor eax, eax
mov dword [esp + 0x48], ebx
push edi
mov word [esp + 0x3c], ax
mov dword [esp + 0x74], ebx
call fcn.00468071
mov ebp, dword [esp + 0x84]
cmp byte [ebp + 0x10], 5
je 0x4adf8b
call fcn.00490095
push eax
push 0x17
lea ecx, [esp + 0x30]
call fcn.0048f892
lea eax, [esp + 0x28]
inc ebx
push eax
lea eax, [esp + 0x58]
mov byte [esp + 0x78], bl
push eax
call fcn.004916a8
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx]
jmp 0x4ae34f
push ebx
push str.interval
mov ecx, ebp
call fcn.0045bb2b
mov ecx, eax
cmp ecx, 0x3c
jg 0x4adfa2
push 0x3c
pop ecx
mov edi, dword [esp + 0x80]
push ebx
push str.min_interval
mov eax, dword [edi]
mov dword [eax + 0x1c], ecx
mov ecx, ebp
call fcn.0045bb2b
mov ecx, eax
cmp ecx, 0x1e
jg 0x4adfc5
push 0x1e
pop ecx
mov eax, dword [edi]
push ebx
push str.failure_reason
mov dword [eax + 0x20], ecx
lea eax, [esp + 0x5c]
push eax
mov ecx, ebp
mov byte [esi + 0x6ac], bl
call fcn.0045bd54
push eax
lea ecx, [esp + 0x40]
call fcn.0044dbe6
push ebx
xor ebx, ebx
lea ecx, [esp + 0x58]
inc ebx
push ebx
call fcn.0042341c
cmp dword [esp + 0x4c], 0
je 0x4ae069
mov ecx, dword [edi]
lea eax, [esp + 0x3c]
add ecx, 0x48
cmp ecx, eax
je 0x4ae018
push 0xffffffffffffffff
push 0
push eax
call fcn.0042358a
cmp dword [esp + 0x50], 8
mov eax, dword [esp + 0x3c]
jae 0x4ae027
lea eax, [esp + 0x3c]
push eax
push str.tracker:_failure_reason__s_
call fcn.00409edb
mov eax, dword [edi]
add esp, 8
mov esi, dword [eax + 0x1c]
test esi, esi
jg 0x4ae040
xor esi, esi
call fcn.0046818d
xor edx, edx
push 5
pop ecx
div ecx
mov ecx, 0xe10
add edx, 0xf
imul eax, edx, 0x3c
add eax, esi
cmp eax, ecx
ja 0x4ae05f
mov ecx, eax
mov eax, dword [edi]
mov dword [eax + 0x1c], ecx
jmp 0x4ae372
mov eax, dword [edi]
mov ecx, ebp
push 0xffffffffffffffff
push str.complete
inc dword [eax + 0x40]
call fcn.0045bb2b
test eax, eax
jle 0x4ae0c6
mov ecx, dword [edi]
push 0
push str.incomplete
mov dword [ecx + 0x6c], eax
mov ecx, ebp
mov esi, dword [edi]
call fcn.0045bb2b
push 0xffffffffffffffff
push 0x69deec
mov ecx, ebp
mov dword [esi + 0x70], eax
call fcn.0045bb2b
cmp eax, 0xffffffff
je 0x4ae0b0
mov ecx, dword [edi]
mov dword [ecx + 0x68], eax
mov ecx, dword [edi]
mov eax, dword [0x762f20]
mov esi, dword [esp + 0x18]
mov dword [ecx + 0x38], eax
mov eax, dword [0x762f24]
mov dword [ecx + 0x3c], eax
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
push str.external_ip
call fcn.0045bcaf
test eax, eax
je 0x4ae125
lea ecx, [esp + 0x12]
mov byte [esp + 0x12], 0
push ecx
push dword [esp + 0x18]
lea ecx, [esp + 0x30]
push eax
call fcn.004c61bc
cmp byte [esp + 0x12], 0
je 0x4ae11a
mov ecx, dword [0x7638f4]
lea eax, [esp + 0x28]
push ebx
push eax
call fcn.0050b6ca
push ebx
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
call fcn.004a43d4
jmp 0x4ae125
push str.Tracker_reports_an_invalid_external_IP
call fcn.004790ad
pop ecx
mov eax, dword [edi]
mov esi, str.peers
push 0xffffffffffffffff
push esi
mov ecx, ebp
mov byte [esp + 0x1a], 0
mov al, byte [eax + 0x62]
and al, 4
neg al
sbb al, al
and al, 3
add al, 5
mov byte [esp + 0x24], al
call fcn.0045bb6f
mov dword [esp + 0x20], eax
mov ecx, ebp
lea eax, [esp + 0x14]
push eax
push esi
call fcn.0045bcaf
mov esi, eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4ae25e
and dword [esp + 0x24], 0
mov ecx, eax
mov byte [esp + 0x12], bl
call fcn.0045ba56
test eax, eax
je 0x4ae2f3
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
push edi
mov ecx, ebp
call fcn.0045ba8e
mov esi, eax
test esi, esi
je 0x4ae249
push 0
push 0x69df60
mov ecx, esi
call fcn.0045bcaf
mov dword [esp + 0x20], eax
test eax, eax
je 0x4ae249
push 0x14
push 0x69df64
mov ecx, esi
call fcn.0045bc70
mov dword [esp + 0x24], eax
test eax, eax
je 0x4ae1e8
mov edx, 0x7640e4
xor ecx, ecx
mov eax, dword [eax + ecx*4]
cmp eax, dword [edx + ecx*4]
jne 0x4ae1e8
mov eax, dword [esp + 0x24]
inc ecx
cmp ecx, 5
jne 0x4ae1d4
jmp 0x4ae249
push 0
push str.port
mov ecx, esi
call fcn.0045bb2b
mov esi, eax
test esi, esi
je 0x4ae249
cmp esi, 0xffff
je 0x4ae249
lea eax, [esp + 0x13]
push eax
push dword [esp + 0x24]
lea eax, [esp + 0x30]
push eax
call fcn.004c687b
cmp byte [esp + 0x13], 0
je 0x4ae227
mov word [esp + 0x38], si
xor eax, eax
jmp 0x4ae22b
mov eax, dword [esp + 0x20]
push dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x20]
push eax
push dword [esp + 0x30]
call fcn.0049b4fc
test eax, eax
je 0x4ae249
or byte [eax + 0x4c], bl
mov ecx, ebp
inc edi
call fcn.0045ba56
cmp edi, eax
jne 0x4ae18b
jmp 0x4ae2e5
test esi, esi
je 0x4ae2f3
mov eax, dword [esp + 0x14]
xor edx, edx
push 6
pop ecx
div ecx
mov byte [esp + 0x12], bl
imul ecx, eax, 6
mov dword [esp + 0x24], eax
cmp ecx, dword [esp + 0x14]
je 0x4ae29d
call fcn.00490095
push eax
push 0x18
lea ecx, [esp + 0x30]
call fcn.0048f892
mov byte [esp + 0x74], 2
jmp 0x4ae33e
test eax, eax
je 0x4ae2f3
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
push 0
push 6
push esi
lea ecx, [esp + 0x34]
call fcn.004c61bc
lea ecx, [esp + 0x28]
call fcn.004640b5
test al, al
jne 0x4ae2df
push dword [esp + 0x1c]
lea eax, [esp + 0x2c]
mov ecx, ebp
push eax
push 0
push 0
call fcn.0049b4fc
test eax, eax
je 0x4ae2df
or byte [eax + 0x4c], bl
add esi, 6
dec edi
jne 0x4ae2a9
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
lea eax, [esp + 0x14]
mov ecx, ebp
push eax
push str.peers6
call fcn.0045bcaf
mov esi, eax
test esi, esi
je 0x4ae3cb
mov eax, dword [esp + 0x14]
xor edx, edx
push 0x12
pop ecx
div ecx
mov byte [esp + 0x12], bl
mov ebp, eax
imul ecx, ebp, 0x12
cmp ecx, dword [esp + 0x14]
je 0x4ae37c
call fcn.00490095
push eax
push 0x19
lea ecx, [esp + 0x30]
call fcn.0048f892
mov byte [esp + 0x74], 3
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.004916a8
mov ecx, dword [edi]
push eax
add ecx, 0x48
call fcn.0044dbe6
push 0
push ebx
lea ecx, [esp + 0x5c]
call fcn.0042341c
lea ecx, [esp + 0x28]
mov byte [esp + 0x74], 0
call fcn.0048f8e2
mov byte [esp + 0x12], 0
jmp 0x4ae41c
test ebp, ebp
je 0x4ae41c
mov edi, dword [esp + 0x18]
push 0
push 0x12
push esi
lea ecx, [esp + 0x34]
call fcn.004c61bc
lea ecx, [esp + 0x28]
call fcn.004640b5
test al, al
jne 0x4ae3be
push dword [esp + 0x1c]
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
push 0
push 0
call fcn.0049b4fc
test eax, eax
je 0x4ae3be
or byte [eax + 0x4c], bl
add esi, 0x12
dec ebp
jne 0x4ae388
mov edi, dword [esp + 0x80]
cmp byte [esp + 0x12], 0
jne 0x4ae41c
call fcn.00490095
push eax
push 0x1a
lea ecx, [esp + 0x30]
call fcn.0048f892
lea eax, [esp + 0x28]
mov byte [esp + 0x74], 4
push eax
lea eax, [esp + 0x58]
push eax
call fcn.004916a8
mov ecx, dword [edi]
push eax
add ecx, 0x48
call fcn.0044dbe6
push 0
push ebx
lea ecx, [esp + 0x5c]
call fcn.0042341c
lea ecx, [esp + 0x28]
mov byte [esp + 0x74], 0
call fcn.0048f8e2
push 0
push ebx
lea ecx, [esp + 0x44]
call fcn.0042341c
mov al, byte [esp + 0x12]
mov ecx, dword [esp + 0x6c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 8