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

Disassembly:
lea r12, [rsp - 0x1a0]
cmp r12, qword [r14 + 0x10]
jbe 0x62ab86
push rbp
mov rbp, rsp
sub rsp, 0x218
mov qword [rsp + 0x230], rbx
mov qword [rsp + 0x228], rax
test byte [rax], al
movups xmmword [rsp + 0xe0], xmm15
lea rdx, [0x0063dfc0]
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xe8], rax
mov edx, dword [rax + 0x118]
test edx, edx
jne 0x629f00
lea rcx, [rax + 0x118]
lea rbx, [rsp + 0xe0]
mov rax, rcx
call fcn.00481260
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
mov rdx, qword [rbx + 0xe8]
test rdx, rdx
je 0x629f15
mov rsi, qword [rbx + 0xf0]
jmp 0x629f23
lea rdx, [0x0072a600]
lea rsi, [0x009210a0]
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x70], rsi
mov rdi, qword [rdx + 0x30]
nop
mov rax, rsi
lea rbx, [0x0066cc20]
lea rcx, [0x009210a0]
call rdi
lea rdx, [0x00671180]
cmp rax, rdx
je 0x629f53
xor ebx, ebx
mov rdx, qword [rsp + 0x230]
mov rsi, qword [rdx + 0x10]
nop
test rsi, rsi
je 0x62a056
mov r8, qword [rdx + 0x38]
test r8, r8
je 0x62a00f
mov r9, qword [rsi + 8]
mov rsi, qword [rsi]
nop dword [rax]
cmp r9, 4
jne 0x629f96
cmp dword [rsi], 0x70747468
jne 0x629f96
mov r10d, 1
jmp 0x629fb1
cmp r9, 5
jne 0x629fae
cmp dword [rsi], 0x70747468
jne 0x629fae
cmp byte [rsi + 4], 0x73
sete r10b
jmp 0x629fb1
xor r10d, r10d
mov qword [rsp + 0x90], rbx
mov byte [rsp + 0x47], r10b
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x98], rsi
test r10b, r10b
je 0x62a0a2
lea rdi, [rsp + 0x1b8]
lea rdi, [rdi - 0x20]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466c8b
mov rbp, qword [rbp]
lea rax, [0x0069da20]
mov rbx, r8
lea rcx, [rsp + 0x1b8]
call fcn.0040f4e0
jmp 0x62a917
mov rcx, qword [rdx + 0x40]
nop
test rcx, rcx
je 0x62a023
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x18
lea rcx, [0x006b7c12]
mov qword [rax], rcx
lea rbx, [0x00728640]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rdx + 0x40]
nop
nop dword [rax + rax]
test rcx, rcx
je 0x62a06f
mov rax, qword [rdx + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x15
lea rcx, [0x006b6310]
mov qword [rax], rcx
lea rbx, [0x00728640]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, qword [rdx + 0x40]
test rax, rax
je 0x62a1e4
lea rdi, [0x00729a40]
cmp rax, rdi
je 0x62a0bf
xor eax, eax
jmp 0x62a0f2
mov rbx, qword [rdx + 0x48]
lea rcx, [0x009210a0]
call fcn.00404940
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x98]
mov r9, qword [rsp + 0x58]
movzx r10d, byte [rsp + 0x47]
test al, al
jne 0x62a1e4
lea rax, [0x006a7820]
call fcn.0040d680
mov qword [rsp + 0x78], rax
cmp dword [0x00921500], 0
je 0x62a130
mov rbx, rax
mov rcx, qword [rsp + 0x230]
lea rax, [0x006a7820]
call fcn.00413880
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x230]
mov rcx, qword [rsi]
mov qword [rax], rcx
lea rcx, [rsi + 8]
lea rdi, [rax + 8]
mov rsi, rcx
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466f6e
mov rbp, qword [rbp]
lea rax, [0x006866a0]
call fcn.0040d680
mov qword [rax], 0
mov byte [rax + 0x10], 0
mov byte [rax + 0x11], 0
mov qword [rax + 8], 0
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
mov rbx, qword [rcx + 0x48]
mov qword [rax], rdx
cmp dword [0x00921500], 0
je 0x62a1b0
nop dword [rax + rax]
call fcn.004665c0
mov qword [r11], rbx
mov rdx, qword [rax + 8]
mov qword [r11 + 8], rdx
mov qword [rax + 8], rbx
lea rdx, [0x00729a68]
mov rsi, qword [rsp + 0x78]
mov qword [rsi + 0x40], rdx
cmp dword [0x00921500], 0
je 0x62a1dd
call fcn.004665c0
mov qword [r11], rax
mov rdi, qword [rsi + 0x48]
mov qword [r11 + 8], rdi
mov qword [rsi + 0x48], rax
mov rdx, rsi
mov qword [rsp + 0x78], rdx
mov rax, qword [rsp + 0x228]
mov rbx, rdx
call fcn.00629d80
test rax, rax
jne 0x62a210
movzx esi, byte [rsp + 0x47]
test sil, sil
mov rax, qword [rsp + 0x78]
jmp 0x62a296
mov rcx, qword [rax + 0x18]
mov rax, rbx
mov rbx, qword [rsp + 0x78]
call rcx
nop
cmp qword [0x008be140], rbx
jne 0x62a272
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xd0], rcx
mov rdx, qword [0x008be148]
mov rax, rbx
mov rbx, rcx
mov rcx, rdx
call fcn.00404940
test al, al
jne 0x62a27b
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
add rsp, 0x218
pop rbp
ret
mov rax, qword [rsp + 0x78]
call fcn.0062ac60
test rbx, rbx
jne 0x62a45a
movzx esi, byte [rsp + 0x47]
test sil, sil
je 0x62a3b2
mov qword [rsp + 0xb0], rax
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x62a2b1
xor edx, edx
jmp 0x62a2d4
mov rdx, qword [rax]
lea rcx, [0x006e11b8]
mov rax, rdx
nop
call fcn.00488560
cmp rax, 0xffffffffffffffff
setne dl
mov rax, qword [rsp + 0xb0]
test dl, dl
je 0x62a35c
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x62a2fb
mov rdx, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
mov rax, rdx
call rcx
mov rax, qword [rsp + 0xb0]
movups xmmword [rsp + 0xf0], xmm15
mov rcx, qword [rax]
mov rbx, qword [rax + 8]
mov rax, rcx
call fcn.0040ae40
lea rcx, [0x0065b7a0]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006b93d5]
mov ebx, 0x1b
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call fcn.004dd6a0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x10]
cmp qword [rcx + 0x30], 0
jne 0x62a465
mov rcx, qword [rax + 0x40]
nop
test rcx, rcx
je 0x62a37f
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
lea rax, [0x00673e00]
call fcn.0040d680
mov qword [rax + 8], 0x1c
lea rcx, [0x006b9b48]
mov qword [rax], rcx
lea rbx, [0x00728640]
mov rcx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x62a3c5
mov rax, qword [rax + 0x48]
mov rcx, qword [rcx + 0x18]
call rcx
movups xmmword [rsp + 0x100], xmm15
movups xmmword [rsp + 0x110], xmm15
lea rax, [0x006b93f0]
mov ebx, 0x1b
call fcn.0040ae40
lea rcx, [0x0065b7a0]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rax
mov rax, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x58]
call fcn.0040ae40
lea rcx, [0x0065b7a0]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
lea rax, [0x006b0bb6]
mov ebx, 5
lea rcx, [rsp + 0x100]
mov edi, 2
mov rsi, rdi
call fcn.004dd6a0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rcx + 0x20]
mov rax, qword [rsp + 0x70]
call rdx
mov rbx, rax
xor eax, eax
call fcn.00406e40
test al, al
jne 0x62a8ce
lea rax, [0x006a94c0]
call fcn.0040d680
cmp dword [0x00921500], 0
jne 0x62a4c0
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x230]
jmp 0x62a4e8
call fcn.004665e0
mov rcx, qword [rsp + 0xa8]
mov qword [r11], rcx
mov rdx, qword [rsp + 0x90]
mov qword [r11 + 8], rdx
mov rsi, qword [rsp + 0x230]
mov qword [r11 + 0x10], rsi
mov qword [rsp + 0x88], rax
mov qword [rax], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], rsi
mov rbx, rax
mov rax, qword [rsp + 0x228]
call fcn.0062b800
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], rbx
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rdi
mov qword [rsp + 0x170], rsi
mov byte [rsp + 0x178], r8b
movups xmm0, xmmword [rsp + 0x150]
movups xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x170]
movups xmmword [rsp + 0x140], xmm0
test r9, r9
jne 0x62a887
mov rcx, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x130]
mov r8, qword [rsp + 0x138]
mov r9, qword [rsp + 0x140]
movzx r10d, byte [rsp + 0x148]
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x88]
call fcn.0062de60
nop word [rax + rax]
test rbx, rbx
jne 0x62a82f
mov qword [rsp + 0xb8], rax
cmp qword [rax], 0
je 0x62a60d
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call fcn.0062d260
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rdx]
mov rax, qword [rdx + 8]
mov rsi, qword [rsi + 0x18]
mov rbx, qword [rsp + 0xa8]
call rsi
jmp 0x62a620
mov rbx, qword [rsp + 0x88]
call fcn.00635740
nop word [rax + rax]
test rbx, rbx
je 0x62a7e6
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xc8], rcx
lea rax, [0x0066b180]
nop dword [rax]
call fcn.0040b0a0
test rax, rax
je 0x62a6ed
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0xb8]
nop
call fcn.0062ce00
test al, al
je 0x62a713
mov rdx, qword [rsp + 0xb8]
mov r11, qword [rdx + 0x18]
mov qword [rsp + 0x180], r11
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rsp + 0x188], xmm0
movups xmm0, xmmword [rdx + 0x30]
movups xmmword [rsp + 0x198], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rsp + 0x1a8], xmm0
mov rbx, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x188]
mov rdi, qword [rsp + 0x190]
mov rsi, qword [rsp + 0x198]
mov r8, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x1a8]
movzx r10d, byte [rsp + 0x1b0]
mov rax, qword [rsp + 0x228]
call fcn.0062f140
jmp 0x62a713
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0xc8]
call fcn.0062ae80
test al, al
je 0x62a741
mov rdx, qword [0x008bd6e8]
mov rax, qword [rdx]
call rax
mov rax, qword [rsp + 0xa8]
call fcn.0062ac60
test rbx, rbx
je 0x62a465
xor eax, eax
add rsp, 0x218
pop rbp
nop
ret
mov rdx, qword [rsp + 0x68]
lea rsi, [0x00728ee0]
cmp rdx, rsi
jne 0x62a763
mov rdx, qword [rsp + 0xc8]
mov rbx, qword [rdx]
mov rcx, qword [rdx + 8]
jmp 0x62a76e
mov rbx, rdx
mov rcx, qword [rsp + 0xc8]
lea rdx, [0x00728f00]
cmp rbx, rdx
jne 0x62a781
mov rbx, qword [rcx]
mov rcx, qword [rcx + 8]
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rdx + 0x40]
mov rax, qword [rdx + 0x48]
lea rdx, [0x00729a68]
cmp rsi, rdx
jne 0x62a7a2
mov rdx, rax
jmp 0x62a7aa
mov rdx, rax
mov eax, 0
jne 0x62a7db
cmp byte [rax + 0x11], 0
jne 0x62a7db
nop
test rsi, rsi
je 0x62a7db
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x68], rbx
mov rcx, qword [rsi + 0x18]
mov rax, rdx
call rcx
mov rcx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x68]
xor eax, eax
add rsp, 0x218
pop rbp
ret
test byte [rax], al
cmp dword [0x00921500], 0
jne 0x62a800
mov rdx, qword [rsp + 0x230]
jmp 0x62a81b
call fcn.004665c0
mov rdx, qword [rsp + 0x230]
mov qword [r11], rdx
mov rsi, qword [rax + 0x80]
mov qword [r11 + 8], rsi
mov qword [rax + 0x80], rdx
xor ebx, ebx
xor ecx, ecx
add rsp, 0x218
pop rbp
ret
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xc8], rcx
mov rax, qword [rsp + 0x228]
mov rbx, qword [rsp + 0x230]
xor ecx, ecx
call fcn.0062d260
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x62a86f
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
xor eax, eax
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xc8]
add rsp, 0x218
pop rbp
ret
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rdx + 0x40]
nop
test rsi, rsi
je 0x62a8bd
mov qword [rsp + 0x68], r9
mov qword [rsp + 0xc8], r10
mov rax, qword [rdx + 0x48]
mov rcx, qword [rsi + 0x18]
call rcx
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0xc8]
xor eax, eax
mov rbx, r9
mov rcx, r10
add rsp, 0x218
pop rbp
ret
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rcx + 0x40]
test rdx, rdx
je 0x62a8e9
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x28]
mov rax, qword [rsp + 0x70]
call rcx
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
lea rax, [rsp + 0x1b8]
call fcn.0040f780
mov rdx, qword [rsp + 0x1b8]
nop
test rdx, rdx
je 0x62a98f
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x60], rbx
mov rsi, qword [rsp + 0x1c0]
mov rax, qword [rdx]
mov qword [rsp + 0xc0], rax
mov rdx, qword [rsi]
mov rsi, qword [rsi + 8]
test rbx, rbx
jne 0x62a958
lea r9, [0x008905e0]
xor ecx, ecx
jmp 0x62a980
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x80], rdx
xor ecx, ecx
jmp 0x62a9ba
lea r9, [0x008905e0]
xor ecx, ecx
jmp 0x62a980
lea r9, [0x008905e0]
mov ecx, 1
test cl, cl
je 0x62aa2a
xor ecx, ecx
jmp 0x62aab5
mov rdx, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x98]
mov r9, qword [rsp + 0x58]
movzx r10d, byte [rsp + 0x47]
jmp 0x62a0a2
mov rcx, r8
cmp rcx, rbx
jge 0x62a974
movzx edi, byte [rax + rcx]
cmp edi, 0x80
jge 0x62a9d1
lea r8, [rcx + 1]
jmp 0x62a9f5
call fcn.0045d600
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x50]
mov edi, eax
mov r8, rbx
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x60]
movsxd rdi, edi
nop dword [rax + rax]
cmp rdi, 0x7f
jge 0x62a969
jae 0x62ab78
lea r9, [0x008905e0]
movzx edi, byte [r9 + rdi]
nop dword [rax]
test dil, dil
jne 0x62a9b7
jmp 0x62a970
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x62aa53
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x60]
movups xmmword [rsp + 0xf0], xmm15
nop dword [rax]
call fcn.0040ae40
lea rcx, [0x0065b7a0]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006be0fe]
mov ebx, 0x26
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call fcn.004dd6a0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
lea rdx, [rdi + 0x10]
inc rcx
cmp rcx, rsi
jge 0x62a90a
mov rdi, rdx
mov r8, qword [rdx]
mov rdx, qword [rdx + 8]
xor r10d, r10d
jmp 0x62aad0
inc r10
cmp r10, rdx
jge 0x62aaae
movzx r11d, byte [r8 + r10]
nop word [rax + rax]
cmp r11b, 0x20
jb 0x62aaf0
cmp r11b, 0x7f
jne 0x62aacd
cmp r11b, 0x20
je 0x62aacd
cmp r11b, 9
je 0x62aacd
mov rcx, qword [rsp + 0x230]
mov rdx, qword [rcx + 0x40]
nop
test rdx, rdx
je 0x62ab21
mov rax, qword [rcx + 0x48]
mov rcx, qword [rdx + 0x18]
call rcx
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0x60]
movups xmmword [rsp + 0xf0], xmm15
call fcn.0040ae40
lea rcx, [0x0065b7a0]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rax
lea rax, [0x006bfdc9]
mov ebx, 0x2b
lea rcx, [rsp + 0xf0]
mov edi, 1
mov rsi, rdi
call fcn.004dd6a0
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x218
pop rbp
ret
mov rax, rdi
mov ecx, 0x7f
call fcn.00466960
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004646a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp fcn.00629e80