Function at 0x683970
Capabilities:
Reference http user-agent string
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x68433d
sub esp, 0xc8
mov eax, 0
mov dword [esp + 0xc4], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x6c]
test cl, cl
jne 0x6839cb
mov ecx, dword [eax + 0x74]
test ecx, ecx
jge 0x6839ec
mov eax, dword [0x967538]
mov ecx, dword [0x96753c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
add esp, 0xc8
ret
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.006899b0
movzx eax, byte [esp + 4]
test al, al
jne 0x683b61
mov eax, dword [esp + 0xd0]
mov dword [esp], eax
call fcn.0068d200
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00472830
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
lea eax, [0x684350]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0xc4], ecx
mov byte [esp + 0x23], 1
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
test edx, edx
jne 0x683a6c
xor edx, edx
jmp 0x683aa0
mov edx, dword [eax + 0x18]
lea ebp, [0x6f80a0]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0040eec0
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
test eax, eax
setne al
mov ecx, dword [esp + 0xd0]
mov edx, eax
mov eax, dword [esp + 0xcc]
test dl, dl
jne 0x683b34
lea esi, [ecx + 0xc]
lea edi, [esp + 0x8c]
call fcn.004695ca
lea edi, [esp + 0xa8]
xor eax, eax
call fcn.004690f9
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 0x10]
lea ebx, [0x6f8060]
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0x8c]
mov dword [esp + 8], edx
call fcn.0040d520
movzx ecx, byte [esp + 0x10]
mov byte [esp + 0x21], cl
mov esi, dword [esp + 0xc]
lea edi, [esp + 0xa8]
call fcn.004695ca
lea edi, [esp + 0x70]
lea esi, [esp + 0xa8]
call fcn.004695ca
movzx ecx, byte [esp + 0x21]
test cl, cl
je 0x683b82
mov edx, dword [esp + 0xd0]
mov ebx, dword [edx]
test ebx, ebx
jne 0x684281
jmp 0x68409c
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
call eax
add esp, 0xc8
ret
mov eax, dword [0x967540]
mov ecx, dword [0x967544]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 8]
test cl, cl
jne 0x683c59
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x683bce
call fcn.0040cf60
mov eax, dword [0x995310]
mov ecx, dword [esp]
test eax, eax
jne 0x683bb7
mov eax, dword [esp + 0xcc]
jmp 0x683bcb
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [esp + 0xcc]
mov edx, dword [eax + 0xc]
mov dword [edi + 4], edx
mov dword [eax + 0xc], ecx
mov ecx, dword [eax + 0xc]
lea edx, [0x6f8020]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
call fcn.0040d350
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xcc]
mov edx, dword [ecx + 0x74]
mov ebx, dword [eax + 8]
test edx, edx
jne 0x683c08
mov edx, 2
mov ebp, dword [eax + 4]
cmp edx, ebp
jle 0x683c28
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ebp
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0xd0]
xor esi, esi
jmp 0x683c8b
mov eax, dword [0x967558]
mov ecx, dword [0x96755c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
call eax
add esp, 0xc8
ret
mov eax, dword [0x967548]
mov ecx, dword [0x96754c]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
call eax
add esp, 0xc8
ret
inc esi
cmp esi, ebp
jge 0x683d06
lea edi, [eax + esi*4]
cmp dword [edi], edx
jne 0x683c8a
mov dword [esp + 0x34], esi
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea eax, [0x730600]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
lea ecx, [0x745426]
mov dword [esp], ecx
mov dword [esp + 4], 0x1d
lea ebx, [esp + 0x54]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004e2c10
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
jmp 0x683c8a
inc ebp
cmp ebx, ebp
jae 0x683d47
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x730600]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x34], ebx
mov esi, dword [0x995310]
test esi, esi
je 0x683d63
call fcn.00468e70
mov dword [edi], edx
mov esi, dword [eax + ebp*4 - 4]
mov dword [edi + 4], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], ebp
mov dword [eax + ebp*4 - 4], edx
mov ebx, dword [ecx + 0xc]
lea esi, [0x6f8020]
mov dword [esp], esi
mov dword [esp + 4], ebx
lea ebx, [esp + 0x8c]
mov dword [esp + 8], ebx
call fcn.0040d8a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x683db1
mov ecx, dword [esp + 0x48]
jmp 0x683dc1
call fcn.00468e70
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0xcc]
lea ecx, [eax + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 4], ecx
call fcn.0068dd50
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x683f0d
mov edx, dword [eax + 0x18]
test edx, edx
je 0x683dfd
mov edx, dword [edx]
jmp 0x683dff
xor edx, edx
cmp edx, ecx
jle 0x683f0d
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx + 0x14]
nop
test edx, edx
jne 0x683e16
xor edx, edx
jmp 0x683e19
mov edx, dword [ecx + 4]
mov ebx, dword [edx + 0xc]
mov ebp, dword [edx + 0x10]
lea esi, [0x730600]
cmp ebx, esi
jne 0x68407f
nop
cmp dword [edx + 8], ecx
jne 0x683eb2
mov ebx, dword [edx + 4]
test byte [ebx], al
mov esi, dword [0x995310]
nop
mov edi, dword [edx]
test esi, esi
je 0x683e5c
mov esi, edi
call fcn.00468e70
mov dword [edi], esi
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, dword [esp + 0xcc]
mov edi, esi
mov dword [ebx], edi
mov ebx, dword [edx]
test byte [ebx], al
mov esi, dword [0x995310]
mov edi, dword [edx + 4]
test esi, esi
je 0x683e98
mov esi, edi
call fcn.00468ea0
mov dword [edi], esi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [edx]
mov dword [edi + 8], eax
mov eax, dword [edx + 4]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xcc]
mov edi, esi
mov dword [ebx + 4], edi
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
dec dword [ecx + 0x14]
mov dword [esp + 0x44], ebp
mov edx, dword [eax + 0x18]
lea ebx, [0x6f80a0]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.0040f720
mov eax, dword [0x967550]
mov ecx, dword [0x967554]
mov edx, dword [esp + 0x44]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0068d250
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call fcn.00684be0
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x7c]
mov edx, dword [eax + 0x80]
test edx, edx
sete bl
xchg ebp, ebx
setg bl
xchg ebp, ebx
test ecx, ecx
xchg esi, ebx
seta bl
xchg esi, ebx
and ebx, esi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x683ffb
mov ebx, dword [esp + 0xd0]
mov ebp, dword [ebx]
test ebp, ebp
jne 0x684002
mov ebp, dword [ebx + 0x78]
test ebp, ebp
je 0x683f6d
mov dword [esp], ebp
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
call fcn.00489be0
mov eax, dword [esp + 0xd0]
jmp 0x684002
lea eax, [0x700640]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
lea ecx, [0x6943b0]
mov dword [eax], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x683f9a
mov ecx, dword [esp + 0xd0]
jmp 0x683fa8
call fcn.00468e60
mov ecx, dword [esp + 0xd0]
mov dword [edi], ecx
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xcc]
mov ebx, dword [edx + 0x7c]
mov edx, dword [edx + 0x80]
mov dword [esp + 4], edx
mov dword [esp], ebx
mov dword [esp + 8], eax
call fcn.00489cd0
mov eax, dword [0x995310]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x683fe2
mov eax, dword [esp + 0xd0]
jmp 0x683ff6
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [esp + 0xd0]
mov edx, dword [eax + 0x78]
mov dword [edi + 4], edx
mov dword [eax + 0x78], ecx
jmp 0x684002
mov ebx, dword [esp + 0xd0]
call fcn.0048bbf0
lea edi, [esp + 0x5c]
lea esi, [esp]
call fcn.004695de
mov eax, dword [0x995310]
mov ecx, dword [esp + 0xd0]
lea edi, [ecx + 0x64]
test eax, eax
je 0x684049
mov dword [esp + 0x40], edi
lea eax, [0x737960]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x5c]
mov dword [esp + 8], eax
call fcn.00411b70
mov edi, dword [esp + 0x40]
lea esi, [esp + 0x5c]
call fcn.004695de
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
call eax
add esp, 0xc8
ret
mov dword [esp], ebx
mov dword [esp + 4], esi
lea eax, [0x6f55e0]
mov dword [esp + 8], eax
call fcn.004099d0
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov esi, ebx
sub ebx, ebp
mov edi, dword [esp + 0x84]
add ebx, edi
test ebx, ebx
jle 0x684178
mov dword [esp + 0x24], ebx
cmp esi, ebp
jg 0x68410c
test edi, edi
jne 0x6840c9
xor esi, esi
jmp 0x684142
mov ebp, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], esi
mov dword [esp + 0x80], ebp
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jbe 0x684257
mov ecx, dword [esp + 0x70]
mov ebp, dword [0x995310]
mov esi, dword [ecx + eax*4]
test ebp, ebp
je 0x684137
mov ebp, dword [ecx + eax*4]
call fcn.00468e60
mov dword [edi], ebp
mov dword [ecx + eax*4], 0
inc dword [esp + 0x7c]
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00685390
movzx eax, byte [esp + 0x10]
test al, al
je 0x684095
mov eax, dword [esp + 0x24]
test eax, eax
mov edx, dword [esp + 0xd0]
setg al
mov byte [esp + 0x22], al
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x7c]
add ecx, dword [esp + 0x84]
test ecx, ecx
jne 0x6841bb
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x10]
lea edx, [0x6f8060]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
call fcn.0040dd70
jmp 0x68421d
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x10]
lea edx, [0x6f8060]
mov dword [esp], edx
mov dword [esp + 4], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 8], ecx
call fcn.0040d8a0
mov edi, dword [esp + 0xc]
test byte [edi], al
mov eax, dword [0x995310]
test eax, eax
je 0x684214
mov dword [esp + 0x3c], edi
lea eax, [0x7136e0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x70]
mov dword [esp + 8], eax
call fcn.00411b70
mov edi, dword [esp + 0x3c]
lea esi, [esp + 0x70]
call fcn.004695ca
movzx eax, byte [esp + 0x22]
test al, al
je 0x683b82
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
call eax
add esp, 0xc8
ret
call fcn.00468ed0
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call fcn.00685390
mov eax, dword [esp + 0xd0]
mov edx, eax
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
mov esi, ebx
sub ebx, ebp
mov edi, dword [esp + 0x84]
add ebx, edi
test ebx, ebx
jle 0x684324
cmp esi, ebp
jg 0x6842ed
test edi, edi
jne 0x6842aa
xor ebp, ebp
jmp 0x68425c
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x80], ebx
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x68432b
mov ecx, dword [esp + 0x70]
mov ebx, dword [0x995310]
mov ebp, dword [ecx + eax*4]
test ebx, ebx
je 0x684314
mov ebx, dword [ecx + eax*4]
call fcn.00468e60
mov dword [edi], ebx
mov dword [ecx + eax*4], 0
inc dword [esp + 0x7c]
jmp 0x68425c
xor eax, eax
jmp 0x68417b
call fcn.00468ed0
nop
call fcn.00438090
add esp, 0xc8
ret
call fcn.00467a60
jmp fcn.00683970