Function at 0x46f913
Capabilities:
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x66e411
call fcn.006313fc
sub esp, 0x58
and dword [esp + 0x60], 0
and dword [esp + 0xc], 0
push ebx
push ebp
mov byte [esp + 0xb], 1
call fcn.00475044
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x68], 1
and dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
xor ebp, ebp
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ebp
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
test ecx, ecx
je 0x46fa96
push esi
push edi
call fcn.004712d1
mov eax, dword [eax]
mov eax, dword [eax + ebp*4]
mov dword [esp + 0x14], eax
mov ebp, dword [eax + 8]
jmp 0x46fa6b
movzx esi, word [ebp + 4]
movzx ebx, word [ebp + 6]
add esi, dword [eax]
test bl, 0xe0
je 0x46fa64
and ebx, 0xf
cmp ebx, 0xf
ja case.0x46f9aa.11
jmp dword [ebx*4 + 0x46fd53]
xor ebx, ebx
mov dword [esp + 0x34], 7
xor eax, eax
mov dword [esp + 0x30], ebx
mov word [esp + 0x20], ax
push 0xc
push str.search_list
push edi
mov byte [esp + 0x7c], 2
call fcn.006342b2
add esp, 0xc
test eax, eax
jne 0x46fa12
push 0x13
push str.served_search_list
push dword [ebp + 0x18]
call fcn.006342b2
add esp, 0xc
test eax, eax
jne 0x46fa12
mov ecx, dword [esp + 0x14]
movzx eax, word [ebp + 0x1c]
add eax, dword [ecx]
lea ecx, [esp + 0x20]
cmp ecx, eax
je 0x46fa35
push 0xffffffffffffffff
push ebx
push eax
call fcn.0042358a
jmp 0x46fa35
push dword [ebp + 0xc]
lea eax, [esp + 0x3c]
push eax
call fcn.004243aa
push eax
lea ecx, [esp + 0x24]
call fcn.0044dbe6
push ebx
push 1
lea ecx, [esp + 0x40]
call fcn.0042341c
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.00434b9c
mov byte [esp + 0x70], 1
lea ecx, [esp + 0x20]
push ebx
push 1
test eax, eax
je 0x46fa5b
call fcn.0042341c
jmp case.0x46f9aa.11
call fcn.0042341c
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x7c]
add ebp, 0x18
mov edi, dword [ebp]
test edi, edi
jne 0x46f98b
mov ebp, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x18], ebp
call fcn.004712d1
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 2
cmp ebp, ecx
jb 0x46f975
pop edi
pop esi
mov byte [esp + 0x68], 0
call fcn.00475085
mov ecx, dword [esp + 0x60]
mov eax, ebx
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret 4
push 0x10
push str.webui.ssdp_uuid
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x19
push str.streaming.preview_player
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x11
push str.upnp_cached_host
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push dword [ebp + 0xc]
lea eax, [esp + 0x54]
push eax
call fcn.004627fd
push eax
mov ecx, esi
call fcn.0040abbe
test eax, eax
lea ecx, [esp + 0x50]
push 0
push 1
setne bl
call fcn.0040a0e9
test bl, bl
je 0x46fa60
push 0xc
push str.sched_table
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
jne case.0x46f9aa.11
cmp dword [esi + 0x14], 0x10
jb 0x46fb44
mov eax, dword [esi]
jmp 0x46fb46
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x46fb50
mov edx, dword [esi]
jmp 0x46fb52
mov edx, esi
mov ecx, dword [esi + 0x10]
add ecx, edx
jmp 0x46fb63
cmp byte [eax], 0x30
jne 0x46fa60
inc eax
cmp eax, ecx
jne 0x46fb59
jmp 0x46fa60
cmp dword [esi + 0x10], 0
jmp 0x46fcb1
push 0xe
push str.mainwndstatus
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x18
push str.default_torrent_handler
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x11
push str.install_revision
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0xa
push str.bind_port
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x18
push str.initial_install_version
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x1f
push str.offers.lifetime_impressions_ft
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x21
push str.offers.lifetime_impressions_lrec
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push 0x1e
push str.offers.lifetime_ad_req_errors
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
cmp ebx, 2
je 0x46fc3f
cmp ebx, 3
jne 0x46fc44
movzx esi, byte [esi]
jmp 0x46fc46
mov esi, dword [esi]
push ebp
call fcn.0046e27f
mov ecx, eax
mov ebx, edx
mov eax, esi
cdq
cmp eax, ecx
jne case.0x46f9aa.11
cmp edx, ebx
jne case.0x46f9aa.11
jmp 0x46fa60
push 0x15
push str.isp.peer_policy_expy
push edi
call fcn.006342b2
add esp, 0xc
test eax, eax
je 0x46fa60
push ebp
call fcn.0046e27f
cmp dword [esi], eax
jne case.0x46f9aa.11
cmp dword [esi + 4], edx
je 0x46fa60
jmp case.0x46f9aa.11
test esi, esi
jmp 0x46fcb1
test esi, esi
je 0x46fa64
xor ebx, ebx
cmp dword [esi], ebx
je 0x46fa64
cmp dword [esi + 4], ebx
jne case.0x46f9aa.11
jmp 0x46fa64
cmp dword [esi + 4], 0
je 0x46fa64
mov esi, 0x1505
test edi, edi
je 0x46fcd1
mov al, byte [edi]
test al, al
je 0x46fcd1
imul esi, esi, 0x21
movzx eax, al
add esi, eax
inc edi
jne 0x46fcc0
mov ebx, dword [esp + 0x7c]
cmp dword [ebx + 0x10], 0
je 0x46fd0c
push 0x698638
lea ecx, [esp + 0x54]
call fcn.00409ba7
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
mov byte [esp + 0x7c], 3
call fcn.00409c77
push 0
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x78], 1
call fcn.0040a0e9
and esi, 0x3ffff
lea eax, [esp + 0x50]
push esi
push 0x6908e8
push eax
call fcn.00472228
add esp, 0xc
push 0xffffffffffffffff
push 0
push eax
mov ecx, ebx
mov byte [esp + 0x7c], 4
call fcn.00409c77
push 0
push 1
lea ecx, [esp + 0x58]
mov byte [esp + 0x78], 1
call fcn.0040a0e9
mov eax, dword [esp + 0x14]
jmp 0x46fa68