Function at 0x4310c0
Capabilities:
Reference http user-agent string

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x10]
cmp rax, qword [rcx + 0x10]
jbe 0x431a76
sub rsp, 0x90
mov qword [rsp + 0x88], rbp
lea rbp, [rsp + 0x88]
mov rax, qword gs:[0x28]
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
mov rcx, qword [rax + 0x30]
mov rcx, qword [rcx + 0xa0]
mov qword [rsp + 0x80], rcx
mov edx, dword [0x00898080]
test edx, edx
je 0x431134
call fcn.00430de0
mov rax, qword [rsp + 0x78]
jmp 0x43110b
test byte [rcx], al
mov edx, dword [rcx + 0x1248]
test edx, edx
jne 0x431a5f
movzx edx, byte [0x008b4021]
test dl, dl
je 0x43115e
movzx edx, byte [0x008b4022]
test dl, dl
jne 0x431a26
mov qword [rsp], rcx
call fcn.00437cc0
mov rax, qword [rsp + 8]
movzx ecx, byte [rsp + 0x10]
test rax, rax
jne 0x431a07
mov eax, dword [0x00898018]
test eax, eax
jne 0x431995
call fcn.004256a0
movzx eax, byte [rsp]
test al, al
je 0x4311a5
mov rax, qword [0x00897fc8]
test rax, rax
jne 0x431902
mov eax, dword [0x00898000]
mov ecx, dword [0x008b4078]
lea edx, [rcx - 1]
cmp eax, edx
jne 0x43171f
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x70], rax
mov ecx, dword [0x008b406c]
test ecx, ecx
je 0x4311e5
test byte [rax], al
mov rcx, qword [rax + 0x1218]
test rcx, rcx
jne 0x43167d
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d6a0
mov eax, dword [0x00898080]
test eax, eax
jne 0x431663
mov rax, qword [rsp + 0x70]
test byte [rax], al
mov ecx, dword [rax + 0x1248]
test ecx, ecx
jne 0x431663
mov ecx, dword [0x00898018]
test ecx, ecx
jne 0x431613
call fcn.00435c10
mov rax, qword [rsp]
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
jne 0x4315f8
mov qword [rsp], rcx
call fcn.00437890
lea rax, [0x00897fd0]
mov qword [rsp], rax
call fcn.0040d8b0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x30]
movzx edx, byte [rcx + 0xe4]
mov byte [rsp + 0x27], dl
test dl, dl
je 0x43128f
mov byte [rcx + 0xe4], 0
mov ecx, 0xffffffff
lea rbx, [0x00898004]
lock xadd dword [rbx], ecx
dec ecx
test ecx, ecx
jl 0x4315dd
xor ecx, ecx
mov qword [rsp + 0x30], rcx
movsxd rbx, dword [0x008b4078]
cmp rcx, rbx
jge 0x4312d7
cmp rcx, 0x101
jae 0x4315d6
lea rbx, [0x00898aa0]
mov rsi, qword [rbx + rcx*8]
test rsi, rsi
jne 0x43152b
inc rcx
mov qword [rsp + 0x30], rcx
movsxd rbx, dword [0x008b4078]
cmp rcx, rbx
jl 0x4312a2
mov eax, dword [0x008b406c]
test eax, eax
je 0x43138f
mov qword [rsp], 0
call fcn.004182e0
movzx eax, byte [rsp + 8]
test al, al
je 0x43138f
lea rax, [0x00897fd0]
mov qword [rsp], rax
call fcn.0040d6a0
call fcn.00437930
mov rax, qword [rsp]
test rax, rax
je 0x43132d
mov rcx, qword [rax + 0x1218]
test rcx, rcx
je 0x43151b
mov qword [rsp + 0x70], rax
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d8b0
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x43138f
mov qword [rsp], rax
call fcn.004359e0
movzx eax, byte [rsp + 0x27]
test al, al
je 0x431388
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x30]
mov byte [rcx + 0xe4], 1
mov ecx, 1
lea rdx, [0x00898004]
lock xadd dword [rdx], ecx
mov rax, qword [rsp + 0x70]
jmp 0x4311c4
mov rax, qword [rsp + 0x78]
jmp 0x43137e
call fcn.004256a0
movzx eax, byte [rsp]
test al, al
je 0x4313ad
xor eax, eax
lea rcx, [0x00897fc8]
xchg qword [rcx], rax
test rax, rax
jne 0x4313bc
call fcn.00430470
mov rax, qword [rsp + 0x78]
jmp 0x43110b
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax + 0x30]
mov rbx, qword [rdx + 0xa0]
test rbx, rbx
jne 0x431500
movzx edx, byte [rdx + 0xe4]
test dl, dl
jne 0x4314e5
mov byte [rsp], 1
call fcn.00426c10
mov rax, qword [rsp + 8]
mov qword [rsp + 0x60], rax
call fcn.004289c0
mov rax, qword [rsp]
lea rcx, [0x00897fc8]
xchg qword [rcx], rax
mov rax, qword [rsp + 0x60]
test rax, rax
jne 0x431416
jmp 0x4313ad
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d6a0
call fcn.00437930
mov rax, qword [rsp]
mov qword [rsp + 0x70], rax
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d8b0
mov rax, qword [rsp + 0x70]
test rax, rax
jne 0x431461
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
call fcn.00431c30
jmp 0x4313ad
mov qword [rsp], rax
call fcn.004359e0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0xe0]
mov qword [rsp], rcx
call fcn.00431c30
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
movabs rcx, 0x100000004
mov qword [rsp + 8], rcx
call fcn.0042e780
movzx eax, byte [0x008a3ef0]
test al, al
jne 0x4314cc
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov rax, qword [rsp + 0x60]
mov qword [rsp], rax
mov qword [rsp + 8], 0
call fcn.00448560
jmp 0x4314a7
lea rax, [0x006d99d2]
mov qword [rsp], rax
mov qword [rsp + 8], 0x23
call fcn.0042aea0
ud2
lea rax, [0x006d7446]
mov qword [rsp], rax
mov qword [rsp + 8], 0x1c
call fcn.0042aea0
ud2
mov qword [rsp], rax
call fcn.00437890
xor eax, eax
jmp 0x43132d
mov qword [rsp], rsi
call fcn.00437960
movzx eax, byte [rsp + 8]
test al, al
je 0x431558
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
movzx edx, byte [rsp + 0x27]
lea rbx, [0x00898aa0]
jmp 0x4312c3
lea rax, [0x00897fd0]
mov qword [rsp], rax
call fcn.0040d6a0
call fcn.00437930
mov rax, qword [rsp]
mov qword [rsp + 0x68], rax
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d8b0
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x431595
jmp 0x4312d7
mov qword [rsp], rax
call fcn.004359e0
movzx eax, byte [rsp + 0x27]
test al, al
je 0x4315cc
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax + 0x30]
mov byte [rcx + 0xe4], 1
mov ecx, 1
lea rdx, [0x00898004]
lock xadd dword [rdx], ecx
jmp 0x43110b
mov rax, qword [rsp + 0x78]
jmp 0x43110b
call fcn.004293e0
ud2
lea rax, [0x006d8fd3]
mov qword [rsp], rax
mov qword [rsp + 8], 0x21
call fcn.0042aea0
ud2
lea rax, [0x006d4940]
mov qword [rsp], rax
mov qword [rsp + 8], 0x15
call fcn.0042aea0
ud2
mov qword [rsp], rax
mov dword [rsp + 8], 0
call fcn.00437740
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x48], rax
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d8b0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
lea rax, [0x00897fd0]
mov qword [rsp], rax
call fcn.0040d8b0
mov rax, qword [rsp + 0x78]
jmp 0x43110b
mov qword [rsp], rax
call fcn.004182e0
movzx eax, byte [rsp + 8]
test al, al
jne 0x431699
mov rax, qword [rsp + 0x70]
jmp 0x4311e5
mov rax, qword [rsp + 0x70]
mov qword [rax + 0x1220], 2
mov rax, qword [rax + 0x1218]
mov qword [rsp + 0x80], rax
mov qword [rsp], rax
movabs rcx, 0x100000004
mov qword [rsp + 8], rcx
call fcn.0042e780
movzx eax, byte [0x008a3ef0]
test al, al
jne 0x431703
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov qword [rsp + 8], 0
call fcn.00448560
jmp 0x4316db
mov rax, qword [rsp + 0x78]
mov rdx, qword [rax + 0x30]
movzx edx, byte [rdx + 0xe4]
test dl, dl
je 0x4318dd
mov rcx, qword [rax + 0x30]
movzx edx, byte [rcx + 0xe4]
test dl, dl
je 0x4318c1
xor ecx, ecx
mov qword [rsp + 0x28], rcx
cmp rcx, 4
jge 0x431875
call fcn.00454c50
mov eax, dword [rsp]
mov ecx, dword [0x00897ae0]
mov rdx, qword [0x00897af0]
mov rbx, qword [0x00897ae8]
test ecx, ecx
je 0x431882
mov esi, eax
mov rdi, rdx
xor edx, edx
div ecx
test edi, edi
je 0x431882
mov eax, esi
mov esi, edx
xor edx, edx
div edi
mov edx, edx
cmp rdx, rdi
jae 0x4318ba
mov eax, dword [rbx + rdx*4]
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
cmp eax, ecx
je 0x431858
mov eax, dword [0x00898080]
test eax, eax
jne 0x4318b0
mov eax, dword [rsp + 0x40]
cmp rax, 0x101
jae 0x4318a9
lea rcx, [0x00898aa0]
mov rax, qword [rcx + rax*8]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov rdx, qword [rsp + 0x28]
cmp rdx, 2
setg bl
mov byte [rsp + 0x10], bl
call fcn.00437f10
mov rax, qword [rsp + 0x18]
test rax, rax
jne 0x431889
mov ecx, dword [rsp + 0x38]
inc ecx
mov dword [rsp + 0x38], ecx
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + 0x44]
lea eax, [rcx + rdx]
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
je 0x431882
xor edx, edx
div ecx
mov dword [rsp + 0x40], edx
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
cmp eax, ecx
jne 0x4317ca
mov rdx, qword [rsp + 0x28]
lea rcx, [rdx + 1]
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rcx
cmp rcx, 4
jl 0x43175b
mov rax, qword [rsp + 0x80]
jmp 0x4311c4
call fcn.004294c0
ud2
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
call fcn.004293e0
ud2
mov rax, qword [rsp + 0x78]
jmp 0x43110b
call fcn.004293e0
ud2
mov byte [rcx + 0xe4], 1
mov ecx, 1
lea rdx, [0x00898004]
lock xadd dword [rdx], ecx
jmp 0x43174a
mov edx, dword [0x00898004]
mov ebx, dword [0x00898000]
sub ecx, ebx
shl edx, 1
cmp edx, ecx
jb 0x431737
mov rax, qword [rsp + 0x80]
jmp 0x4311c4
mov byte [rsp], 0
call fcn.00426c10
mov rax, qword [rsp + 8]
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x43191f
jmp 0x4311a5
mov rcx, qword [rax + 0xe0]
mov qword [rsp], rcx
call fcn.00431c30
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
movabs rcx, 0x100000004
mov qword [rsp + 8], rcx
call fcn.0042e780
movzx eax, byte [0x008a3ef0]
test al, al
jne 0x43197c
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov rax, qword [rsp + 0x58]
mov qword [rsp], rax
mov qword [rsp + 8], 0
call fcn.00448560
jmp 0x431957
lea rax, [0x00897fd0]
mov qword [rsp], rax
call fcn.0040d6a0
mov rax, qword [rsp + 0x80]
mov qword [rsp], rax
mov dword [rsp + 8], 0
call fcn.00437740
mov rax, qword [rsp + 0x10]
mov qword [rsp + 0x50], rax
lea rcx, [0x00897fd0]
mov qword [rsp], rcx
call fcn.0040d8b0
mov rax, qword [rsp + 0x50]
test rax, rax
jne 0x4319e7
jmp 0x431188
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], 0
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
mov qword [rsp + 0x98], rax
mov byte [rsp + 0xa0], cl
mov rbp, qword [rsp + 0x88]
add rsp, 0x90
ret
call fcn.004146f0
mov rax, qword [rsp]
test rax, rax
jne 0x431a46
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
jmp 0x43115e
mov qword [rsp], rax
mov qword [rsp + 8], 0
mov byte [rsp + 0x10], 1
call fcn.0042df50
jmp 0x431a34
call fcn.0042fad0
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
jmp 0x431144
call fcn.00452210
jmp fcn.004310c0