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

Disassembly:
lea r12, [rsp - 0xf0]
cmp r12, qword [r14 + 0x10]
jbe 0x629b70
sub rsp, 0x170
mov qword [rsp + 0x168], rbp
lea rbp, [rsp + 0x168]
mov r13, 0
mov qword [rsp + 0x160], r13
mov byte [rsp + 0x47], 0
movups xmmword [rsp + 0x88], xmm15
cmp byte [rax + 0xb0], 0
jne 0x629079
cmp qword [rax + 0xc0], 0
jge 0x6290a7
mov rax, qword [0x008b64e0]
mov rbx, qword [0x008b64e8]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rbx
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x180], rbx
mov rax, rbx
call fcn.006301e0
nop
test al, al
jne 0x6292ae
mov rax, qword [rsp + 0x180]
call fcn.00634100
nop
xor eax, eax
mov rcx, qword [rsp + 0x178]
mov edx, 1
lock cmpxchg dword [rcx], edx
sete dl
test dl, dl
jne 0x629100
mov rax, rcx
call fcn.00470b60
mov rcx, qword [rsp + 0x178]
movups xmmword [rsp + 0x98], xmm15
lea rsi, [0x00629ba0]
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rcx
lea rsi, [rsp + 0x98]
mov qword [rsp + 0x160], rsi
mov byte [rsp + 0x47], 1
mov rsi, qword [rsp + 0x180]
cmp qword [rsi], 0
jne 0x629147
xor edx, edx
jmp 0x629171
mov rbx, qword [rcx + 0x28]
lea rax, [0x00673f20]
mov rcx, rsi
call fcn.004118a0
cmp qword [rax], 0
setne dl
mov rcx, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
test dl, dl
jne 0x629273
mov rdx, qword [rsi + 0x18]
mov qword [rsp + 0xf0], rdx
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rsp + 0xf8], xmm0
movups xmm0, xmmword [rsi + 0x30]
movups xmmword [rsp + 0x108], xmm0
movups xmm0, xmmword [rsi + 0x40]
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x128], xmm15
movups xmmword [rsp + 0x130], xmm15
movups xmmword [rsp + 0x140], xmm15
movups xmmword [rsp + 0x150], xmm15
mov rbx, qword [rcx + 0x18]
lea rax, [0x00674640]
lea rcx, [rsp + 0xf0]
call fcn.0040ec40
mov rdx, qword [rax]
mov qword [rsp + 0x128], rdx
movups xmm0, xmmword [rax + 8]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rax + 0x18]
movups xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rax + 0x28]
movups xmmword [rsp + 0x150], xmm0
mov rdx, qword [rsp + 0x128]
mov qword [rsp + 0xb8], rdx
movups xmm0, xmmword [rsp + 0x130]
movups xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rsp + 0x140]
movups xmmword [rsp + 0xd0], xmm0
movups xmm0, xmmword [rsp + 0x150]
movups xmmword [rsp + 0xe0], xmm0
test bl, bl
je 0x6292dc
mov rbx, qword [rsp + 0x180]
cmp qword [rbx], 0
jne 0x629a53
jmp 0x629816
movups xmmword [rsp + 0x88], xmm15
mov byte [rsp + 0x47], 0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rdx]
call rax
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
mov rax, qword [0x008b64c0]
mov rbx, qword [0x008b64c8]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rbx
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
mov rsi, qword [rsp + 0x178]
cmp byte [rsi + 8], 0
jne 0x6293df
cmp qword [rsi + 0x10], 0
jne 0x62932e
call fcn.0040e560
cmp dword [0x00918a90], 0
jne 0x629311
mov rdx, qword [rsp + 0x178]
mov qword [rdx + 0x10], rax
jmp 0x62932b
mov rdi, qword [rsp + 0x178]
lea rdx, [rdi + 0x10]
mov rcx, rdi
mov rdi, rdx
call fcn.00465600
mov rdx, rcx
mov rsi, rdx
mov rbx, qword [rsi + 0x10]
lea rax, [0x00674580]
lea rcx, [rsp + 0xf0]
call fcn.0040ea00
mov rdx, qword [rsp + 0x178]
mov rsi, qword [rdx + 0xc0]
test rsi, rsi
mov edi, 2
cmovne rdi, rsi
mov rsi, qword [rax]
mov rbx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
cmp rbx, rdi
jge 0x62938f
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x70], rsi
mov r8, qword [rsp + 0x180]
xor eax, eax
jmp 0x629432
mov rax, qword [0x008b6560]
mov rcx, qword [0x008b6568]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rcx
mov byte [rsp + 0x47], 0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rdx]
call rax
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
mov rax, qword [0x008b64b0]
mov rcx, qword [0x008b64b8]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rcx
mov byte [rsp + 0x47], 0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rdx]
call rax
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
inc rax
cmp rax, rbx
jge 0x6294b4
mov r9, qword [rsi + rax*8]
nop dword [rax + rax]
cmp r9, r8
jne 0x62942f
mov qword [rsp + 0x68], rax
movups xmmword [rsp + 0xa8], xmm15
lea rdx, [0x006aa900]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], r8
lea rax, [0x006c1fbb]
mov ebx, 0x1d
lea rcx, [rsp + 0xa8]
mov edi, 1
mov rsi, rdi
call fcn.005cbbe0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x180]
jmp 0x62942f
inc rbx
cmp rcx, rbx
jae 0x6294e3
mov rax, rsi
mov edi, 1
lea rsi, [0x006aa900]
call fcn.0044a700
mov rdx, qword [rsp + 0x178]
mov r8, qword [rsp + 0x180]
mov rsi, rax
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x60], rcx
lea rdi, [rsi + rbx*8]
lea rdi, [rdi - 8]
cmp dword [0x00918a90], 0
jne 0x62950d
mov qword [rsi + rbx*8 - 8], r8
jmp 0x629512
call fcn.00465780
mov rbx, qword [rdx + 0x10]
lea rax, [0x00674580]
lea rcx, [rsp + 0xf0]
call fcn.0040f080
mov rdx, qword [rsp + 0x68]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rax + 0x10], rdx
cmp dword [0x00918a90], 0
jne 0x629552
mov rcx, qword [rsp + 0x80]
mov qword [rax], rcx
jmp 0x629565
mov rdi, rax
mov rcx, qword [rsp + 0x80]
nop dword [rax]
call fcn.00465700
mov rax, qword [rsp + 0x178]
lea rcx, [rax + 0x20]
mov rbx, qword [rsp + 0x180]
mov rax, rcx
nop dword [rax]
call fcn.00634f20
mov rcx, qword [rsp + 0x178]
mov rdx, qword [rcx + 0xb8]
test rdx, rdx
je 0x6296ad
mov rsi, qword [rcx + 0x28]
test rsi, rsi
je 0x6295ab
mov rsi, qword [rsi]
jmp 0x6295ad
xor esi, esi
cmp rsi, rdx
jle 0x6296ad
mov rdx, qword [rcx + 0x20]
nop
cmp qword [rdx + 0x28], 0
jne 0x6295c6
xor esi, esi
jmp 0x6295ca
mov rsi, qword [rdx + 8]
mov r8, qword [rsi + 0x20]
mov rax, qword [rsi + 0x18]
lea rbx, [0x006aa900]
nop dword [rax]
cmp rax, rbx
jne 0x629802
nop
cmp qword [rsi + 0x10], rdx
jne 0x629660
mov rdi, qword [rsi + 8]
test byte [rdi], al
nop
mov r9, qword [rsi]
cmp dword [0x00918a90], 0
jne 0x629608
mov qword [rdi], r9
jmp 0x62960d
call fcn.004657a0
mov rdi, qword [rsi]
test byte [rdi], al
mov r9, qword [rsi + 8]
cmp dword [0x00918a90], 0
jne 0x629631
mov qword [rdi + 8], r9
movups xmmword [rsi], xmm15
mov qword [rsi + 0x10], 0
jmp 0x62965c
add rdi, 8
call fcn.004657a0
mov rdi, rsi
xor r9d, r9d
call fcn.004657a0
lea r10, [rsi + 8]
mov rdi, r10
call fcn.004657a0
lea rdi, [rsi + 0x10]
xor esi, esi
call fcn.00465760
dec qword [rdx + 0x28]
mov qword [rsp + 0x78], r8
mov rbx, qword [rcx + 0x28]
lea rax, [0x00673f20]
mov rcx, r8
call fcn.00412260
mov rbx, qword [0x008b6550]
mov rcx, qword [0x008b6558]
mov rax, qword [rsp + 0x78]
call fcn.006341a0
mov rax, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x78]
nop dword [rax]
call fcn.0062a520
mov rcx, qword [rsp + 0x178]
mov rbx, qword [rcx + 0xd0]
test rbx, rbx
jle 0x629783
mov rdx, qword [rsp + 0x180]
cmp qword [rdx], 0
jne 0x62978b
mov rax, qword [rdx + 0xd0]
test rax, rax
je 0x6296f2
nop dword [rax + rax]
call fcn.00484ce0
mov rcx, qword [rsp + 0x180]
jmp 0x62978b
lea rax, [0x00681be0]
call fcn.0040da20
lea rcx, [0x0063bf00]
mov qword [rax], rcx
cmp dword [0x00918a90], 0
jne 0x62971f
mov rcx, qword [rsp + 0x180]
mov qword [rax + 8], rcx
jmp 0x629730
lea rdi, [rax + 8]
mov rcx, qword [rsp + 0x180]
call fcn.00465700
mov rcx, qword [rsp + 0x178]
mov rcx, qword [rcx + 0xd0]
mov rbx, rax
mov rax, rcx
call fcn.00484e00
cmp dword [0x00918a90], 0
jne 0x629764
mov rcx, qword [rsp + 0x180]
mov qword [rcx + 0xd0], rax
jmp 0x62978b
mov rdi, qword [rsp + 0x180]
lea rcx, [rdi + 0xd0]
mov rdx, rdi
mov rdi, rcx
call fcn.00465600
mov rcx, rdx
jmp 0x62978b
mov rdx, qword [rsp + 0x180]
call fcn.00486420
mov rdi, qword [rsp + 0x180]
mov qword [rdi + 0xb8], rax
mov qword [rdi + 0xc0], rbx
cmp dword [0x00918a90], 0
jne 0x6297b8
mov qword [rdi + 0xc8], rcx
jmp 0x6297c5
add rdi, 0xc8
nop
call fcn.00465700
movups xmmword [rsp + 0x88], xmm15
mov byte [rsp + 0x47], 0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rdx]
nop
call rax
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
lea rcx, [0x0066f2a0]
call fcn.0040ac40
mov rbx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
mov r10, rdx
sub rdx, r9
mov r11, qword [rsp + 0xe0]
add rdx, r11
mov r12, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xd8]
nop word [rax + rax]
test rdx, rdx
jle 0x629938
mov qword [rsp + 0x48], rdx
cmp r10, r9
jg 0x6298c5
test r11, r11
jne 0x629885
xor r8d, r8d
nop dword [rax + rax]
jmp 0x629913
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xd8], rsi
mov rsi, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
nop dword [rax]
cmp rcx, rax
jbe 0x629a3a
mov r8, qword [rsi + rax*8]
lea rdi, [rsi + rax*8]
cmp dword [0x00918a90], 0
jne 0x629904
mov qword [rsi + rax*8], 0
jmp 0x62990b
xor esi, esi
call fcn.00465760
inc qword [rsp + 0xd0]
mov rax, r8
xor ecx, ecx
xor edi, edi
call fcn.0062adc0
nop
test al, al
je 0x62980e
mov rdx, qword [rsp + 0x48]
test rdx, rdx
mov rbx, qword [rsp + 0x180]
setg dl
mov byte [rsp + 0x46], dl
mov rsi, qword [rsp + 0xc0]
sub rsi, qword [rsp + 0xd0]
add rsi, qword [rsp + 0xe0]
test rsi, rsi
jne 0x62997e
mov rdx, qword [rsp + 0x178]
mov rbx, qword [rdx + 0x18]
lea rax, [0x00674640]
lea rcx, [rsp + 0xf0]
call fcn.0040f5e0
jmp 0x6299f1
mov rdx, qword [rsp + 0x178]
mov rbx, qword [rdx + 0x18]
lea rax, [0x00674640]
lea rcx, [rsp + 0xf0]
call fcn.0040f080
test byte [rax], al
cmp dword [0x00918a90], 0
jne 0x6299da
mov rsi, qword [rsp + 0xb8]
mov qword [rax], rsi
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rax + 8], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x18], xmm0
movups xmm0, xmmword [rsp + 0xe0]
movups xmmword [rax + 0x28], xmm0
jmp 0x6299f1
mov rbx, rax
lea rcx, [rsp + 0xb8]
lea rax, [0x00690600]
call fcn.00413ee0
movzx esi, byte [rsp + 0x46]
test sil, sil
je 0x6292dc
movups xmmword [rsp + 0x88], xmm15
mov byte [rsp + 0x47], 0
mov rdx, qword [rsp + 0x160]
mov rax, qword [rdx]
call rax
mov rbx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
call fcn.00465aa0
mov rax, rsi
xor ecx, ecx
xor edi, edi
call fcn.0062adc0
mov rbx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
mov r10, rdx
sub rdx, r9
mov r11, qword [rsp + 0xe0]
add rdx, r11
mov r12, qword [rsp + 0xe8]
mov r13, qword [rsp + 0xd8]
test rdx, rdx
jle 0x629b3a
nop dword [rax]
cmp r9, r10
jl 0x629aee
test r11, r11
jne 0x629aae
xor esi, esi
jmp 0x629a3f
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xb8], r13
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], r8
mov qword [rsp + 0xd8], rsi
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xd0]
cmp rcx, rax
jbe 0x629b45
mov rsi, qword [rdx + rax*8]
lea rdi, [rdx + rax*8]
cmp dword [0x00918a90], 0
jne 0x629b26
mov qword [rdx + rax*8], 0
jmp 0x629b2d
xor edx, edx
call fcn.00465720
inc qword [rsp + 0xd0]
jmp 0x629a3f
xor edx, edx
nop dword [rax]
jmp 0x62993b
call fcn.00465aa0
nop
call fcn.00435700
mov rax, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x168]
add rsp, 0x170
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.00463440
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.00629020