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

Disassembly:
lea r12, [rsp - 0x140]
cmp r12, qword [r14 + 0x10]
jbe 0x624eb2
push rbp
mov rbp, rsp
sub rsp, 0x1b8
cmp byte [rcx + 0x20], 0
jne 0x62425d
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0x1d8], rcx
mov rdx, qword [rcx + 8]
mov rsi, qword [rcx + 0x10]
jmp 0x624280
mov rbx, qword [0x00899a50]
mov rcx, qword [0x00899a58]
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
add rdx, 0x28
dec rsi
nop dword [rax]
test rsi, rsi
jle 0x6243a8
mov rdi, qword [rdx]
mov qword [rsp + 0xc0], rdi
movups xmm0, xmmword [rdx + 8]
movups xmmword [rsp + 0xc8], xmm0
movups xmm0, xmmword [rdx + 0x18]
movups xmmword [rsp + 0xd8], xmm0
mov rdi, qword [rsp + 0xc0]
mov qword [rsp + 0x158], rdi
movups xmm0, xmmword [rsp + 0xc8]
movups xmmword [rsp + 0x160], xmm0
movups xmm0, xmmword [rsp + 0xd8]
movups xmmword [rsp + 0x170], xmm0
cmp qword [rsp + 0x160], 0
je 0x6243a2
mov rdi, qword [rsp + 0x158]
cmp byte [rdi], 0x3a
jne 0x6243a2
mov rdi, qword [rsp + 0xc8]
cmp rdi, 1
jb 0x624ea5
mov r8, qword [rsp + 0xc0]
lea r9, [rdi - 1]
neg r9
sar r9, 0x3f
and r9d, 1
lea rax, [r8 + r9]
cmp rdi, 7
jne 0x624276
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x1b0], rdx
lea rbx, [0x006c5017]
mov ecx, 6
call fcn.004035a0
test al, al
jne 0x62437d
mov rcx, qword [rsp + 0x1d8]
mov rdx, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x1d0]
mov rsi, qword [rsp + 0x80]
jmp 0x624276
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0x1d0]
mov rax, rcx
mov rcx, qword [rsp + 0x1d8]
jmp 0x6243ac
xor edx, edx
xor eax, eax
jmp 0x6243ac
xor edx, edx
xor eax, eax
test rdx, rdx
je 0x624418
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x90], rax
mov rbx, rdx
call fcn.00482980
test rbx, rbx
jne 0x6243e4
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rdx + 8]
mov rdi, qword [rdx + 0x10]
xor ecx, ecx
jmp 0x624453
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x4a
lea rcx, [0x006d8263]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x3c
lea rcx, [0x006d6cf0]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
add rsi, 0x28
inc rcx
cmp rcx, rdi
jge 0x6244fa
mov r8, qword [rsi]
mov qword [rsp + 0x98], r8
movups xmm0, xmmword [rsi + 8]
movups xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [rsi + 0x18]
movups xmmword [rsp + 0xb0], xmm0
mov r8, qword [rsp + 0x98]
mov qword [rsp + 0x130], r8
movups xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x138], xmm0
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x148], xmm0
cmp qword [rsp + 0x138], 0
je 0x6244c8
mov r8, qword [rsp + 0x130]
cmp byte [r8], 0x3a
je 0x62444c
mov rsi, qword [rdx + 0x10]
cmp rcx, rsi
ja 0x624e95
mov rdi, qword [rdx + 8]
mov r8, qword [rdx + 0x18]
lea r9, [rcx + rcx*4]
mov r10, rcx
sub rcx, r8
shl r9, 3
sar rcx, 0x3f
and rcx, r9
sub rsi, r10
add rdi, rcx
jmp 0x6244fe
xor esi, esi
xor edi, edi
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x40], rsi
lea rax, [0x0066d140]
mov rbx, rsi
mov rcx, rbx
call fcn.004479c0
mov qword [rsp + 0x1b0], rax
mov rbx, qword [rsp + 0x40]
xor ecx, ecx
lea rax, [0x006b12c0]
call fcn.0040df40
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x58]
call fcn.0062fa80
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x80], rbx
lea rax, [0x006b6760]
call fcn.0040d480
mov qword [rax + 0x20], 8
lea rdx, [0x006c54b7]
mov qword [rax + 0x18], rdx
mov qword [rax + 0x28], 2
cmp dword [0x0092d940], 0
jne 0x624594
mov rdx, qword [rsp + 0x1a8]
jmp 0x6245a4
call fcn.0045fe20
mov rdx, qword [rsp + 0x1a8]
mov qword [r11], rdx
mov qword [rsp + 0x110], rax
mov qword [rax + 0x38], rdx
mov r10, qword [rsp + 0x58]
mov qword [rax + 0x10], r10
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
lea rdi, [0x0073fc28]
mov esi, 1
mov r8, qword [rsp + 0x1a0]
mov r9, qword [rsp + 0x80]
xor eax, eax
call fcn.0044ac80
mov rdx, qword [rsp + 0x110]
mov qword [rdx + 8], rbx
cmp dword [0x0092d940], 0
je 0x62460f
nop
call fcn.0045fe40
mov qword [r11], rax
mov rsi, qword [rdx]
mov qword [r11 + 8], rsi
mov qword [rdx], rax
mov r8, qword [rsp + 0x88]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x1b0]
mov rbx, rax
jmp 0x624651
mov r8, qword [rsp + 0x1b0]
add r8, 0x28
mov rsi, qword [rsp + 0x80]
dec rsi
mov rdx, qword [rsp + 0x110]
mov rbx, rax
mov rax, rsi
test rax, rax
jle 0x62498e
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x1b0], r8
mov rcx, qword [r8]
mov qword [rsp + 0xe8], rcx
movups xmm0, xmmword [r8 + 8]
movups xmmword [rsp + 0xf0], xmm0
movups xmm0, xmmword [r8 + 0x18]
movups xmmword [rsp + 0x100], xmm0
mov rax, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xf0]
call fcn.00617fc0
cmp rbx, 7
jne 0x624777
cmp dword [rax], 0x69617254
jne 0x624777
cmp word [rax + 4], 0x656c
jne 0x624777
cmp byte [rax + 6], 0x72
jne 0x624777
mov rdx, qword [rsp + 0x110]
mov rsi, qword [rdx + 0x78]
test rsi, rsi
jne 0x624725
call fcn.0040df00
cmp dword [0x0092d940], 0
jne 0x624706
mov rdx, qword [rsp + 0x110]
jmp 0x62471e
call fcn.0045fe40
mov qword [r11], rax
mov rdx, qword [rsp + 0x110]
mov rsi, qword [rdx + 0x78]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x78], rax
mov rsi, rax
movups xmmword [rsp + 0x180], xmm15
lea rdx, [0x00624ee0]
mov qword [rsp + 0x180], rdx
mov qword [rsp + 0x188], rsi
mov rax, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0x100]
lea rcx, [rsp + 0x180]
nop dword [rax]
call fcn.00619220
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x128]
jmp 0x62462c
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x118], rax
mov rcx, rax
mov rdi, rbx
lea rax, [0x006b12c0]
mov rbx, qword [rsp + 0x1a8]
call fcn.004121a0
mov rdx, qword [rax]
test rdx, rdx
je 0x6247b0
mov r8, qword [rsp + 0x68]
jmp 0x624885
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x624885
lea rdx, [r8 - 1]
mov qword [rsp + 0x60], rdx
neg rdx
sar rdx, 0x3f
and edx, 0x10
mov r8, qword [rsp + 0x100]
mov r9, qword [rsp + 0x128]
add rdx, r9
mov qword [rsp + 0x198], rdx
mov r10, qword [rsp + 0xf8]
mov qword [r9 + 8], r8
cmp dword [0x0092d940], 0
nop
je 0x624811
call fcn.0045fe40
mov qword [r11], r10
mov r8, qword [r9]
mov qword [r11 + 8], r8
mov qword [r9], r10
lea rax, [0x006b12c0]
mov rbx, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x50]
call fcn.00412940
mov qword [rax + 8], 1
mov qword [rax + 0x10], 1
cmp dword [0x0092d940], 0
jne 0x624858
mov rsi, qword [rsp + 0x128]
jmp 0x62486f
call fcn.0045fe40
mov rsi, qword [rsp + 0x128]
mov qword [r11], rsi
mov r8, qword [rax]
mov qword [r11 + 8], r8
mov qword [rax], rsi
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x198]
nop
jmp 0x62462c
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
inc rbx
mov r9, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x100]
cmp rcx, rbx
jae 0x6248db
mov qword [rsp + 0x1a0], r9
mov qword [rsp + 0x78], r10
mov rax, rdx
mov edi, 1
lea rsi, [0x0066d140]
call fcn.00447aa0
mov r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0x1a0]
mov r10, qword [rsp + 0x78]
mov rdx, rax
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rcx
lea rsi, [rbx - 1]
shl rsi, 4
mov qword [rdx + rsi + 8], r10
cmp dword [0x0092d940], 0
je 0x624910
nop dword [rax + rax]
call fcn.0045fe40
mov qword [r11], r9
mov r10, qword [rdx + rsi]
mov qword [r11 + 8], r10
mov qword [rsp + 0x198], rdx
mov qword [rdx + rsi], r9
lea rax, [0x006b12c0]
mov rbx, qword [rsp + 0x1a8]
mov rcx, qword [rsp + 0x118]
mov rdi, qword [rsp + 0x50]
call fcn.00412940
mov rdx, qword [rsp + 0x78]
mov qword [rax + 8], rdx
mov rdx, qword [rsp + 0x70]
mov qword [rax + 0x10], rdx
cmp dword [0x0092d940], 0
jne 0x624962
mov rsi, qword [rsp + 0x198]
jmp 0x624979
call fcn.0045fe40
mov rsi, qword [rsp + 0x198]
mov qword [r11], rsi
mov r8, qword [rax]
mov qword [r11 + 8], r8
mov qword [rax], rsi
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x128]
jmp 0x62462c
mov rax, qword [rsp + 0x58]
lea rsi, [rax - 0x64]
nop word [rax + rax]
cmp rsi, 0x63
ja 0x624b03
mov rsi, qword [rsp + 0x1d8]
mov rsi, qword [rsi]
movzx esi, byte [rsi + 2]
nop dword [rax]
test sil, 1
jne 0x624acf
mov rsi, qword [rsp + 0x1d0]
movzx edi, byte [rsi + 0x15d]
inc edi
mov byte [rsi + 0x15d], dil
cmp dil, 5
ja 0x624a9b
mov rdi, qword [0x008a6450]
test rdi, rdi
jne 0x624a0d
mov rdi, qword [rsi + 0x20]
nop dword [rax]
test rdi, rdi
je 0x624a0b
mov rdi, qword [rdi + 0x28]
jmp 0x624a0d
xor edi, edi
test rdi, rdi
je 0x624a34
mov rcx, qword [rdi]
mov rbx, qword [rsp + 0x1a8]
mov rdx, rdi
call rcx
test rax, rax
jne 0x624a8a
mov rax, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x1d0]
cmp rax, 0x64
jne 0x624a74
mov rcx, qword [rsi + 0x20]
nop
test rcx, rcx
je 0x624a5b
mov rdx, qword [rcx + 0x20]
test rdx, rdx
je 0x624a5b
mov rax, qword [rdx]
call rax
mov rsi, qword [rsp + 0x1d0]
mov rax, qword [rsi + 0xf0]
lea rbx, [rsp + 0x40]
call fcn.00407820
mov rsi, qword [rsp + 0x1d0]
mov byte [rsi + 0x15b], 0
xor eax, eax
xor ebx, ebx
xor ecx, ecx
add rsp, 0x1b8
pop rbp
ret
mov rcx, rbx
mov rbx, rax
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x2b
lea rcx, [0x006d303b]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
nop
lea rax, [0x006870a0]
call fcn.0040d480
mov qword [rax + 8], 0x2f
lea rcx, [0x006d4418]
mov qword [rax], rcx
lea rbx, [0x00741740]
mov rcx, rax
xor eax, eax
add rsp, 0x1b8
pop rbp
ret
mov qword [rdx + 0x50], 0xffffffffffffffff
mov rbx, qword [rdx + 0x38]
lea rax, [0x006b12c0]
lea rcx, [0x006c6a98]
mov edi, 0xe
call fcn.004121a0
mov rdx, qword [rax + 8]
cmp rdx, 1
je 0x624b9b
jle 0x624b50
mov rax, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rsp + 0x1d0]
jmp 0x624be2
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rdx]
movzx esi, byte [rsi + 2]
nop
test sil, 1
je 0x624b89
mov rsi, qword [rsp + 0x1d0]
cmp byte [rsi + 0xb9], 0
jne 0x624b91
mov rax, qword [rsp + 0x110]
mov qword [rax + 0x50], 0
jmp 0x624be2
mov rsi, qword [rsp + 0x1d0]
mov rax, qword [rsp + 0x110]
jmp 0x624be2
mov rdx, qword [rax]
mov rax, qword [rdx]
mov rbx, qword [rdx + 8]
mov ecx, 0xa
mov edi, 0x3f
call fcn.00481da0
test rbx, rbx
je 0x624bc3
mov rdx, qword [rsp + 0x110]
jmp 0x624bcf
mov rdx, qword [rsp + 0x110]
mov qword [rdx + 0x50], rax
mov rax, rdx
mov rdx, qword [rsp + 0x1d8]
mov rsi, qword [rsp + 0x1d0]
cmp byte [rsi + 0xb9], 0
je 0x624c27
mov rdx, qword [0x00899a70]
mov rsi, qword [0x00899a78]
mov qword [rax + 0x40], rdx
cmp dword [0x0092d940], 0
je 0x624c16
call fcn.0045fe40
mov qword [r11], rsi
mov rdx, qword [rax + 0x48]
mov qword [r11 + 8], rdx
mov qword [rax + 0x48], rsi
xor ebx, ebx
xor ecx, ecx
add rsp, 0x1b8
pop rbp
ret
mov rdx, qword [rdx]
movzx edx, byte [rdx + 2]
test dl, 1
je 0x624ca3
cmp qword [rax + 0x50], 0
jle 0x624c67
lea rdx, [0x00742808]
mov qword [rax + 0x40], rdx
cmp dword [0x0092d940], 0
je 0x624c5a
mov rdx, qword [rax + 0x48]
call fcn.0045fe20
mov qword [r11], rdx
lea rdx, [0x0092d4c0]
mov qword [rax + 0x48], rdx
jmp 0x624c96
mov rdx, qword [0x00899a70]
mov rsi, qword [0x00899a78]
mov qword [rax + 0x40], rdx
cmp dword [0x0092d940], 0
je 0x624c92
call fcn.0045fe40
mov qword [r11], rsi
mov rdx, qword [rax + 0x48]
mov qword [r11 + 8], rdx
mov qword [rax + 0x48], rsi
xor ebx, ebx
xor ecx, ecx
add rsp, 0x1b8
pop rbp
ret
lea rax, [0x006a7b20]
call fcn.0040d480
mov rcx, qword [rsp + 0x1d0]
lea rdx, [rcx + 0x30]
mov rbx, qword [rsp + 0x110]
mov rsi, qword [rbx + 0x50]
mov qword [rax + 0x30], rsi
mov rsi, rax
mov rax, rdx
lea rbx, [0x00743470]
mov rcx, rsi
nop dword [rax + rax]
call fcn.006182c0
mov rax, qword [rsp + 0x110]
mov rcx, qword [rax + 0x50]
mov rdx, qword [rsp + 0x1d0]
mov qword [rdx + 0x120], rcx
lea rcx, [0x00742830]
mov qword [rax + 0x40], rcx
cmp dword [0x0092d940], 0
je 0x624d24
call fcn.0045fe40
mov qword [r11], rdx
mov rsi, qword [rax + 0x48]
mov qword [r11 + 8], rsi
mov qword [rax + 0x48], rdx
cmp byte [rdx + 0xb8], 0
je 0x624d5b
mov rdx, qword [rax + 0x38]
lea rbx, [0x006c744d]
mov ecx, 0x10
mov rax, rdx
call fcn.00520820
cmp rbx, 4
jne 0x624d53
xor ecx, ecx
jmp 0x624d6b
mov rax, qword [rsp + 0x110]
xor ebx, ebx
xor ecx, ecx
add rsp, 0x1b8
pop rbp
ret
inc rcx
cmp rcx, 4
jge 0x624da7
movzx edx, byte [rcx + rax]
lea esi, [rdx - 0x41]
cmp sil, 0x19
ja 0x624d81
add edx, 0x20
lea rsi, [0x006c4c12]
movzx esi, byte [rsi + rcx]
lea edi, [rsi - 0x41]
cmp dil, 0x19
ja 0x624d98
add esi, 0x20
cmp dl, sil
je 0x624d68
mov rax, qword [rsp + 0x110]
jmp 0x624d5b
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rcx + 0x38]
mov qword [rsp + 0x190], rdx
nop
lea rax, [0x006c744d]
mov ebx, 0x10
call fcn.00521fa0
mov rcx, rax
mov rdi, rbx
lea rax, [0x006a0d60]
mov rbx, qword [rsp + 0x190]
call fcn.00412d60
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rcx + 0x38]
mov qword [rsp + 0x120], rdx
nop
lea rax, [0x006c6a98]
mov ebx, 0xe
call fcn.00521fa0
mov rcx, rax
mov rdi, rbx
lea rax, [0x006a0d60]
mov rbx, qword [rsp + 0x120]
call fcn.00412d60
mov rcx, qword [rsp + 0x110]
mov qword [rcx + 0x50], 0xffffffffffffffff
lea rax, [0x006a23e0]
nop
call fcn.0040d480
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rcx + 0x40]
mov rsi, qword [rcx + 0x48]
mov qword [rax], rdx
cmp dword [0x0092d940], 0
nop
je 0x624e76
call fcn.0045fe60
mov qword [r11], rsi
mov qword [r11 + 8], rax
mov rdx, qword [rcx + 0x48]
mov qword [r11 + 0x10], rdx
mov qword [rax + 8], rsi
lea rdx, [0x00742858]
mov qword [rcx + 0x40], rdx
mov qword [rcx + 0x48], rax
mov byte [rcx + 0x71], 1
mov rax, rcx
jmp 0x624d5b
mov rax, rcx
mov rcx, rsi
nop dword [rax + rax]
call fcn.004602a0
mov eax, 1
xor ecx, ecx
call fcn.004602a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.0045df00
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00624220