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

Disassembly:
lea r12, [rsp - 0x148]
cmp r12, qword [r14 + 0x10]
jbe 0x5483f0
push rbp
mov rbp, rsp
sub rsp, 0x1c0
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rbx
test rcx, rcx
je 0x547f1e
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rax
mov rdx, rcx
and edx, 0x1f
mov qword [rsp + 0x78], rdx
nop
nop word [rax + rax]
cmp rdx, 0x14
jne 0x54774f
bt ecx, 9
jb 0x547715
lea rsi, [0x0072d308]
jmp 0x547720
call fcn.004ae300
mov rsi, rax
mov rax, rbx
mov rcx, qword [rsi + 0xd0]
call rcx
test rax, rax
je 0x547ecd
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
cmp rdx, 0x17
jne 0x547762
cmp qword [rbx + 8], 0
sete sil
nop
jmp 0x547764
xor esi, esi
test sil, sil
je 0x547796
cmp byte [rsp + 0x1f9], 0
je 0x547796
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040aee0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00729f90]
add rsp, 0x1c0
pop rbp
ret
cmp byte [rsp + 0x1d0], 0
nop
je 0x5478cb
cmp qword [rsp + 0x1d8], 0
je 0x5478cb
lea rsi, [rdx - 2]
nop dword [rax]
cmp rsi, 4
ja 0x5478cb
bt ecx, 9
jb 0x5477d9
lea rsi, [0x0072d308]
jmp 0x5477e4
call fcn.004ae300
mov rsi, rax
mov rax, rbx
mov rbx, rax
mov rax, rsi
call fcn.004aeec0
call fcn.004ac0e0
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0xc0], rbx
mov rdx, qword [rsp + 0x1d8]
mov rdi, qword [rdx]
call fcn.004adba0
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004ac580
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xb0], rbx
mov rcx, qword [rsp + 0x70]
mov edi, 1
mov rax, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
call fcn.004ac580
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
call fcn.004a6b60
test al, al
jne 0x5478a8
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
jmp 0x5478cb
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040aee0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00729f90]
add rsp, 0x1c0
pop rbp
ret
cmp byte [rsp + 0x1d0], 0
je 0x5479b3
cmp qword [rsp + 0x1d8], 0
jne 0x5479b3
mov edi, 1
call fcn.004ac580
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa8], rbx
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x547922
lea rdx, [0x0072d308]
mov rsi, qword [rsp + 0xd0]
nop
jmp 0x54793d
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004ae300
mov rdx, rax
mov rsi, rbx
mov rax, rdx
mov rbx, rsi
call fcn.004aede0
mov edi, 1
call fcn.004ac580
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
call fcn.004a6b60
test al, al
jne 0x547990
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
jmp 0x5479b3
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040aee0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00729f90]
add rsp, 0x1c0
pop rbp
ret
bt ecx, 9
jb 0x5479c5
mov rsi, rax
lea rdi, [0x0072d308]
jmp 0x5479ed
call fcn.004ae300
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xd0]
mov rdi, rax
mov rax, rbx
mov rbx, qword [rsp + 0xd8]
cmp qword [0x008cc420], rdi
je 0x5479fc
bt ecx, 9
jmp 0x547a37
mov rcx, qword [0x008cc428]
mov rbx, rax
mov rax, rdi
call fcn.00404940
test al, al
jne 0x547cce
mov rcx, qword [rsp + 0x80]
bt ecx, 9
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
jb 0x547a42
lea rax, [0x0072d308]
jmp 0x547a4d
mov rax, rsi
call fcn.004ae300
mov rsi, rbx
mov rbx, rsi
call fcn.00543dc0
test dil, dil
je 0x547c23
nop
test al, al
jne 0x547c15
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x547abf
cmp rbx, 0x17
je 0x547abf
lea rcx, [0x006bfecb]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], 0x2b
mov rax, qword [rsp + 0x100]
mov ebx, 0x2b
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729460]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
mov byte [rsp + 0x4f], cl
mov rsi, qword [rsp + 0x1e8]
test rsi, rsi
je 0x547b20
cmp rbx, 0x13
jne 0x547adb
test rsi, rsi
jmp 0x547b29
lea rcx, [0x006c1398]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], 0x2f
mov rax, qword [rsp + 0xf0]
mov ebx, 0x2f
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729460]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
cmp rbx, 0x13
jne 0x547b94
test rsi, rsi
jne 0x54827e
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x18
jne 0x547b4b
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rbx]
mov rdi, qword [rbx + 8]
jmp 0x547b80
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004ae240
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x78]
mov rdi, rbx
mov rsi, rax
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x50], rdi
xor eax, eax
jmp 0x548289
cmp rbx, 0x17
jne 0x547c0d
nop word [rax + rax]
cmp rdx, 0x18
je 0x547bf4
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004ac580
lea rdx, [0x006ab6a0]
cmp rax, rdx
jne 0x54826f
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rbx, rdx
call fcn.00545780
test al, al
je 0x547bfe
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x18
jmp 0x547f58
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x17
jmp 0x547f58
mov rax, rbx
jmp 0x547f58
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jmp 0x547c2f
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x547c42
lea rax, [0x0072d308]
mov rbx, qword [rsp + 0xd0]
jmp 0x547c57
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004ae300
movups xmmword [rsp + 0x120], xmm15
test rax, rax
je 0x547c69
mov rax, qword [rax + 8]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rbx
lea rax, [0x006b5806]
mov ebx, 0x13
lea rcx, [rsp + 0x120]
mov edi, 1
mov rsi, rdi
call fcn.004e0560
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rbx
mov rax, qword [rsp + 0x110]
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729460]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004ac580
movups xmmword [rsp + 0x178], xmm15
movups xmmword [rsp + 0x180], xmm15
movups xmmword [rsp + 0x190], xmm15
movups xmmword [rsp + 0x1a0], xmm15
movups xmmword [rsp + 0x1b0], xmm15
lea rdx, [0x00696220]
cmp rax, rdx
jne 0x547f49
mov rdx, qword [rbx]
mov qword [rsp + 0x178], rdx
movups xmm0, xmmword [rbx + 8]
movups xmmword [rsp + 0x180], xmm0
movups xmm0, xmmword [rbx + 0x18]
movups xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [rbx + 0x28]
movups xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [rbx + 0x38]
movups xmmword [rsp + 0x1b0], xmm0
mov rdx, qword [rsp + 0x178]
mov qword [rsp + 0x130], rdx
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x138], xmm0
movups xmm0, xmmword [rsp + 0x190]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [rsp + 0x1a0]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0x168], xmm0
mov rbx, qword [rsp + 0x168]
test rbx, rbx
jne 0x547ea1
lea rax, [0x00688e60]
call fcn.0040d680
mov qword [rsp + 0xa0], rax
mov rdi, qword [rsp + 0x130]
mov rsi, qword [rsp + 0x138]
mov r8, qword [rsp + 0x150]
movzx r9d, byte [rsp + 0x140]
xor ebx, ebx
mov ecx, 8
call fcn.00544f40
call fcn.0040aee0
lea rcx, [0x00729f90]
mov rdx, qword [rsp + 0xa0]
mov qword [rdx + 8], rcx
cmp dword [0x00921500], 0
je 0x547e3b
call fcn.004665c0
mov qword [r11], rax
mov rsi, qword [rdx + 0x10]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x10], rax
mov rax, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x158]
call fcn.0040aee0
lea rdx, [0x00729f90]
mov rbx, qword [rsp + 0xa0]
mov qword [rbx + 0x18], rdx
cmp dword [0x00921500], 0
je 0x547e88
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rbx + 0x20]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x20], rax
lea rax, [0x00729fb8]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c0
pop rbp
nop
ret
mov rax, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x170]
call fcn.0040aee0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x00729f90]
add rsp, 0x1c0
pop rbp
ret
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004ac0e0
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x20], xmm0
call fcn.005476a0
add rsp, 0x1c0
pop rbp
ret
lea rax, [0x006bac69]
mov ebx, 0x1e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004dd6a0
mov rcx, rax
mov rdi, rbx
xor eax, eax
xor ebx, ebx
add rsp, 0x1c0
pop rbp
ret
mov rbx, rdx
lea rcx, [0x00665260]
call fcn.0040aa60
movzx edx, byte [rsp + 0x1f8]
test dl, dl
je 0x547fb5
cmp rax, 0x10
jne 0x547f71
mov eax, 0x11
jmp 0x547fb5
lea rcx, [0x006b8e41]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], 0x1a
mov rax, qword [rsp + 0xe0]
mov ebx, 0x1a
call fcn.0040ae40
xor ebx, ebx
lea rcx, [0x00729460]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
mov qword [rsp + 0x58], rax
nop word [rax + rax]
cmp rax, 0x11
jne 0x547fd2
test dl, dl
jne 0x547fd2
mov byte [rsp + 0x1f8], 1
lea rax, [0x00688e60]
call fcn.0040d680
mov qword [rsp + 0x98], rax
movups xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x20], xmm0
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0xd0]
call fcn.005465e0
mov rdx, qword [rsp + 0x98]
mov qword [rdx + 0x18], rax
cmp dword [0x00921500], 0
je 0x548050
nop
call fcn.004665c0
mov qword [r11], rbx
mov rsi, qword [rdx + 0x20]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x20], rbx
test rcx, rcx
jne 0x548262
mov rcx, qword [rdx + 0x18]
mov rcx, qword [rcx + 0x20]
mov rax, rbx
call rcx
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x5481ef
cmp byte [rsp + 0x1d2], 0
je 0x54808c
mov edx, 1
jmp 0x5480a6
movzx edx, byte [rsp + 0x1d3]
test rdx, rdx
mov edx, 2
mov r10d, 3
cmovne rdx, r10
cmp byte [rsp + 0x1d1], 0
jne 0x5480b8
mov r10, qword [rcx]
jmp 0x5481f6
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rdx
xor ebx, ebx
mov ecx, 8
mov rdi, rbx
mov rsi, qword [rsp + 0x58]
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0x98]
call fcn.00544f40
call fcn.0040aee0
lea rdx, [0x00729f90]
mov r10, qword [rsp + 0x98]
mov qword [r10 + 8], rdx
cmp dword [0x00921500], 0
je 0x548118
call fcn.004665c0
mov qword [r11], rax
mov rcx, qword [r10 + 0x10]
mov qword [r11 + 8], rcx
mov qword [r10 + 0x10], rax
lea rax, [0x00688e60]
call fcn.0040d680
lea rcx, [0x00729fb8]
mov qword [rax + 0x18], rcx
cmp dword [0x00921500], 0
jne 0x548146
mov rdx, qword [rsp + 0x98]
jmp 0x548156
call fcn.004665a0
mov rdx, qword [rsp + 0x98]
mov qword [r11], rdx
mov qword [rsp + 0x90], rax
mov qword [rax + 0x20], rdx
mov rcx, qword [rdx + 8]
mov rdx, qword [rdx + 0x10]
mov rcx, qword [rcx + 0x20]
mov rax, rdx
call rcx
mov rcx, qword [rsp + 0x1e0]
mov rsi, qword [rcx]
mov rcx, qword [rsp + 0x68]
lea r8, [rcx + rax]
mov rax, qword [rsp + 0x90]
xor ebx, ebx
mov ecx, 8
mov rdi, qword [rsp + 0x60]
mov r9d, 1
call fcn.00544f40
call fcn.0040aee0
lea rcx, [0x00729f90]
mov rbx, qword [rsp + 0x90]
mov qword [rbx + 8], rcx
cmp dword [0x00921500], 0
je 0x5481d7
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x00729fb8]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c0
pop rbp
ret
xor edx, edx
mov r10, qword [rsp + 0x58]
xor ebx, ebx
mov ecx, 8
mov rdi, rdx
mov rsi, r10
mov r8, rax
movzx r9d, byte [rsp + 0x4f]
mov rax, qword [rsp + 0x98]
call fcn.00544f40
call fcn.0040aee0
lea rdx, [0x00729f90]
mov rbx, qword [rsp + 0x98]
mov qword [rbx + 8], rdx
cmp dword [0x00921500], 0
je 0x54824a
call fcn.004665c0
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x00729fb8]
xor ecx, ecx
xor edi, edi
add rsp, 0x1c0
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0x1c0
pop rbp
ret
mov rbx, rdx
lea rcx, [0x00665260]
call fcn.0040aa60
mov rax, rsi
jmp 0x547f58
mov rax, r9
cmp rax, rdi
jge 0x5483e3
movzx r8d, byte [rsi + rax]
nop word [rax + rax]
cmp r8d, 0x80
jge 0x5482af
lea r9, [rax + 1]
jmp 0x5482e2
mov rbx, rdi
mov rcx, rax
mov rax, rsi
call fcn.0045d600
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x50]
mov r8d, eax
mov r9, rbx
mov rbx, qword [rsp + 0xd8]
cmp r8d, 0x80
jge 0x548360
lea r10d, [r8 - 0x61]
cmp r10b, 0x19
jbe 0x548286
lea r10d, [r8 - 0x41]
cmp r10b, 0x19
jbe 0x548286
lea r10d, [r8 - 0x30]
cmp r10b, 9
jbe 0x548286
lea r10d, [r8 - 0x27]
cmp r10b, 2
jbe 0x548286
lea r10d, [r8 - 0x2b]
nop
cmp r10b, 4
jbe 0x548286
cmp r8b, 0x20
je 0x548286
cmp r8b, 0x3a
je 0x548286
nop
cmp r8b, 0x3d
je 0x548286
cmp r8b, 0x3f
je 0x548286
cmp rdx, 0x18
jmp 0x548364
cmp rdx, 0x18
jne 0x54836f
mov rdx, qword [rbx]
mov rsi, qword [rbx + 8]
jmp 0x54838b
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
nop
call fcn.004ae240
mov rsi, rbx
mov rdx, rax
mov rax, rdx
mov rbx, rsi
call fcn.00474c60
test al, al
je 0x5483ae
movzx ecx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0xd8]
mov eax, 0xc
jmp 0x5483e8
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x1c
lea rcx, [0x006b9d08]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x00728640]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
mov eax, 0x13
mov rsi, rax
jmp 0x54827e
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
nop
call fcn.004646a0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp fcn.005476a0