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

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0x200]
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jbe 0x4c17e9
sub rsp, 0x280
mov qword [rsp + 0x278], rbp
lea rbp, [rsp + 0x278]
mov rbx, qword [rsp + 0x290]
test rbx, rbx
je 0x4c17ac
mov rsi, qword [rsp + 0x288]
movzx edi, byte [rsi]
nop dword [rax]
cmp dil, 0x2d
jne 0x4c1790
sete dil
lea r8, [rbx - 1]
mov r9, r8
neg r8
sar r8, 0x3f
and r8, 1
add r8, rsi
cmp r9, 1
jne 0x4c09d3
cmp byte [r8], 0x30
je 0x4c1769
test r9, r9
je 0x4c166a
mov byte [rsp + 0x5f], dil
xor eax, eax
jmp 0x4c0ca3
inc rdx
mov rcx, r10
cmp r9, rdx
jle 0x4c14f0
movzx r10d, byte [rdx + r8]
lea r11d, [r10 - 0x30]
cmp r11b, 9
ja 0x4c14ed
movabs r11, 0xccccccccccccccc
cmp r11, rcx
jl 0x4c14da
lea r12, [rcx + rcx*4]
lea r10, [r10 + r12*2]
lea r10, [r10 - 0x30]
test r10, r10
jge 0x4c09e8
mov r8, qword [0x007cd240]
xor ecx, ecx
xor edx, edx
xor r10d, r10d
nop dword [rax]
test r8, r8
jne 0x4c13d5
test rcx, rcx
je 0x4c13ba
cmp byte [rdx], 0x2e
jne 0x4c13ba
lea r8, [rcx - 1]
mov r12, r8
neg r8
sar r8, 0x3f
and r8, 1
add r8, rdx
xor edx, edx
movsd xmm0, qword [0x006a0980]
xor r13d, r13d
xor r14d, r14d
jmp 0x4c0a8a
inc r13
movzx edi, byte [rsp + 0x5f]
cmp r12, r13
jle 0x4c0ae3
movzx r15d, byte [r13 + r8]
lea edi, [r15 - 0x30]
cmp dil, 9
ja 0x4c0ae0
nop
test r14b, r14b
jne 0x4c0a82
cmp r11, rdx
jge 0x4c0ab2
mov r14d, 1
jmp 0x4c0a82
lea rdi, [rdx + rdx*4]
lea rdi, [r15 + rdi*2]
lea rdi, [rdi - 0x30]
nop
test rdi, rdi
jge 0x4c0acd
mov r14d, 1
jmp 0x4c0a82
movsd xmm1, qword [0x006a09b8]
mulsd xmm0, xmm1
mov rdx, rdi
jmp 0x4c0a82
cmp r12, r13
jb 0x4c17d2
mov rdi, rcx
sub rcx, r13
dec rcx
cmp r12, rcx
setne r12b
mov r14, rcx
neg rcx
sar rcx, 0x3f
and rcx, r13
add r8, rcx
cmp rdi, r9
je 0x4c12ac
xor ecx, ecx
jmp 0x4c0b19
inc rcx
cmp rcx, r14
jge 0x4c0b32
movzx edi, byte [r8 + rcx]
cmp dil, 0x2e
je 0x4c0b32
add edi, 0xffffffd0
cmp dil, 9
ja 0x4c0b16
test rcx, rcx
je 0x4c11a7
nop dword [rax + rax]
cmp rcx, r14
ja 0x4c17ca
mov qword [rsp + 0x68], r10
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0x270], r8
mov qword [rsp + 0xd8], r14
mov qword [rsp + 0xd0], rax
movsd qword [rsp + 0xb8], xmm0
mov qword [rsp + 0xc8], rdx
mov rax, qword [0x007cc9d0]
lea rdx, [0x0061d200]
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], rcx
call fcn.00414100
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xc0]
sub rax, rcx
mov rdx, rax
neg rax
sar rax, 0x3f
and rax, rcx
mov rbx, qword [rsp + 0x270]
add rax, rbx
mov rsi, qword [rsp + 0x20]
mov rsi, qword [rsi]
cmp byte [rsp + 0x28], 0
nop dword [rax]
je 0x4c1010
test rsi, rsi
je 0x4c17c5
mov rcx, rax
movabs rax, 0x7fffffffffffffff
mov rbx, rdx
nop
cmp rsi, 0xffffffffffffffff
je 0x4c0c0d
cqo
idiv rsi
jmp 0x4c0c12
neg rax
xor edx, edx
mov rdi, qword [rsp + 0x68]
nop word [rax + rax]
cmp rdi, rax
jg 0x4c0ef8
imul rdi, rsi
mov r8, qword [rsp + 0xc8]
test r8, r8
jle 0x4c0ef0
xorps xmm0, xmm0
cvtsi2sd xmm0, r8
xorps xmm1, xmm1
cvtsi2sd xmm1, rsi
movsd xmm2, qword [rsp + 0xb8]
divsd xmm1, xmm2
mulsd xmm1, xmm0
cvttsd2si rsi, xmm1
add rsi, rdi
test rsi, rsi
jl 0x4c0dda
mov rdi, qword [rsp + 0xd0]
add rsi, rdi
nop dword [rax + rax]
test rsi, rsi
jl 0x4c0cc5
movzx edi, byte [rsp + 0x5f]
mov r9, rbx
mov r8, rcx
mov rax, rsi
mov rbx, qword [rsp + 0x290]
mov rsi, qword [rsp + 0x288]
test r9, r9
je 0x4c1636
movzx r10d, byte [r8]
cmp r10b, 0x2e
jne 0x4c1527
xor ecx, ecx
xor edx, edx
nop
jmp 0x4c09ee
lea rax, [rsp + 0x160]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov rcx, qword [rsp + 0x288]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x290]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x230], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0xa0], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0xa0]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c0dcb
mov rax, qword [rsp + 0x230]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x230]
call fcn.0046c920
jmp 0x4c0d98
lea rax, [rsp + 0x180]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov rcx, qword [rsp + 0x288]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x290]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x228], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x80], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x80]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c0ee1
mov rax, qword [rsp + 0x228]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
nop
ret
mov rax, qword [rsp + 0x228]
call fcn.0046c920
jmp 0x4c0ead
mov rsi, rdi
jmp 0x4c0c70
lea rax, [rsp + 0x1a0]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov rcx, qword [rsp + 0x288]
mov qword [rsp + 0x18], rcx
mov rcx, qword [rsp + 0x290]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x268], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x90], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x90]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
nop
jne 0x4c1001
mov rax, qword [rsp + 0x268]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
nop
ret
mov rax, qword [rsp + 0x268]
call fcn.0046c920
jmp 0x4c0fcd
lea rax, [rsp + 0x1e0]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x220], rax
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x60], rcx
lea rdx, [rsp + 0x1c0]
mov qword [rsp], rdx
lea rdx, [0x0065a2b7]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 1
mov rbx, qword [rsp + 0x288]
mov qword [rsp + 0x18], rbx
mov rbx, qword [rsp + 0x290]
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x0065e69d]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x13
mov rdx, qword [rsp + 0x220]
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x20], rdx
lea rdx, [0x0065c34f]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0xd
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rcx
call fcn.00451f60
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x248], rax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x98], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x98]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c1197
mov rax, qword [rsp + 0x248]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x248]
nop
call fcn.0046c920
jmp 0x4c1164
lea rax, [rsp + 0x200]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x0066334f]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x1f
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x238], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x88], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x88]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c129d
mov rax, qword [rsp + 0x238]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x238]
call fcn.0046c920
jmp 0x4c126a
test r12b, r12b
jne 0x4c0b12
lea rax, [rsp + 0xe0]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x260], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0xa8], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0xa8]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c13ab
mov rax, qword [rsp + 0x260]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x260]
call fcn.0046c920
jmp 0x4c1378
mov rdi, rcx
xor r12d, r12d
mov r8, rdx
mov r14, rdi
xor edx, edx
movsd xmm0, qword [0x006a0980]
jmp 0x4c0b09
lea rax, [rsp + 0x100]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x258], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0xb0], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0xb0]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c14cb
mov rax, qword [rsp + 0x258]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x258]
call fcn.0046c920
jmp 0x4c1498
mov r8, qword [0x007cd240]
xor ecx, ecx
xor edx, edx
xor r10d, r10d
jmp 0x4c0a40
cmp r9, rdx
jb 0x4c17dd
mov r12, r9
sub r9, rdx
mov r13, r9
neg r9
sar r9, 0x3f
and rdx, r9
add rdx, r8
mov r9, r12
movabs r11, 0xccccccccccccccc
mov r10, rcx
xor r8d, r8d
mov rcx, r13
jmp 0x4c0a40
cmp r10b, 0x30
jb 0x4c1537
cmp r10b, 0x39
jbe 0x4c0cba
lea rax, [rsp + 0x120]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x240], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x70], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x70]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c1627
mov rax, qword [rsp + 0x240]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x240]
call fcn.0046c920
jmp 0x4c15f4
mov rcx, rax
neg rax
movzx edx, dil
test rdx, rdx
cmovne rcx, rax
mov qword [rsp + 0x298], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x2a0], xmm0
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
lea rax, [rsp + 0x140]
mov qword [rsp], rax
lea rax, [0x0065a2b7]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 1
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], 1
call fcn.00451ee0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
mov qword [rsp], 0
lea rdx, [0x006602b4]
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], 0x17
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
call fcn.00451e60
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x250], rax
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x78], rcx
lea rdx, [0x00625ba0]
mov qword [rsp], rdx
call fcn.0040e560
mov rdi, qword [rsp + 8]
mov rax, qword [rsp + 0x78]
mov qword [rdi + 8], rax
cmp dword [0x00811460], 0
jne 0x4c175a
mov rax, qword [rsp + 0x250]
mov qword [rdi], rax
mov qword [rsp + 0x298], 0
lea rax, [0x006a4760]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], rdi
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
mov rax, qword [rsp + 0x250]
call fcn.0046c920
jmp 0x4c1727
mov qword [rsp + 0x298], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x2a0], xmm0
mov rbp, qword [rsp + 0x278]
add rsp, 0x280
ret
cmp dil, 0x2b
jne 0x4c179f
cmp dil, 0x2d
jmp 0x4c09aa
mov r9, rbx
mov r8, rsi
xor edi, edi
jmp 0x4c09c3
mov rsi, qword [rsp + 0x288]
mov r9, rbx
mov r8, rsi
xor edi, edi
nop dword [rax]
jmp 0x4c09c3
call fcn.00436e20
mov rdx, r14
call fcn.0046ce00
mov rax, r13
mov rcx, r12
call fcn.0046ce80
mov rax, rdx
mov rcx, r9
call fcn.0046ce80
nop
call fcn.0046abe0
jmp fcn.004c0940