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

Disassembly:
lea r12, [rsp - 0x148]
cmp r12, qword [r14 + 0x10]
jbe 0x656eb0
push rbp
mov rbp, rsp
sub rsp, 0x1c0
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rbx
test rcx, rcx
je 0x6569de
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 0x65620f
bt ecx, 9
jb 0x6561d5
lea rsi, [0x01435508]
jmp 0x6561e0
call fcn.004aed80
mov rsi, rax
mov rax, rbx
mov rcx, qword [rsi + 0xd0]
call rcx
test rax, rax
je 0x65698d
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
cmp rdx, 0x17
jne 0x656222
cmp qword [rbx + 8], 0
sete sil
nop
jmp 0x656224
xor esi, esi
test sil, sil
je 0x656256
cmp byte [rsp + 0x1f9], 0
je 0x656256
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040e9e0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x01422128]
add rsp, 0x1c0
pop rbp
ret
cmp byte [rsp + 0x1d0], 0
nop
je 0x65638b
cmp qword [rsp + 0x1d8], 0
je 0x65638b
lea rsi, [rdx - 2]
nop dword [rax]
cmp rsi, 4
ja 0x65638b
bt ecx, 9
jb 0x656299
lea rsi, [0x01435508]
jmp 0x6562a4
call fcn.004aed80
mov rsi, rax
mov rax, rbx
mov rbx, rax
mov rax, rsi
call fcn.004b0360
call fcn.004a9420
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x70], rcx
mov rdx, qword [rsp + 0x1d8]
mov rdi, qword [rdx]
call fcn.004ad8e0
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004aa4a0
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.004aa4a0
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xb0]
call fcn.004982c0
test al, al
jne 0x656368
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
jmp 0x65638b
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040e9e0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x01422128]
add rsp, 0x1c0
pop rbp
ret
cmp byte [rsp + 0x1d0], 0
je 0x656473
cmp qword [rsp + 0x1d8], 0
jne 0x656473
mov edi, 1
call fcn.004aa4a0
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xa8], rbx
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x6563e2
lea rdx, [0x01435508]
mov rsi, qword [rsp + 0xd0]
nop
jmp 0x6563fd
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004aed80
mov rdx, rax
mov rsi, rbx
mov rax, rdx
mov rbx, rsi
call fcn.004b0280
mov edi, 1
call fcn.004aa4a0
mov rcx, rax
mov rdi, rbx
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xa8]
call fcn.004982c0
test al, al
jne 0x656450
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
jmp 0x656473
xor eax, eax
xor ebx, ebx
mov rcx, rbx
call fcn.0040e9e0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x01422128]
add rsp, 0x1c0
pop rbp
ret
bt ecx, 9
jb 0x656485
mov rsi, rax
lea rdi, [0x01435508]
jmp 0x6564ad
call fcn.004aed80
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 [0x01baece0], rdi
je 0x6564bc
bt ecx, 9
jmp 0x6564f7
mov rcx, qword [0x01baece8]
mov rbx, rax
mov rax, rdi
call fcn.00407d40
test al, al
jne 0x65678e
mov rcx, qword [rsp + 0x80]
bt ecx, 9
mov rdx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
jb 0x656502
lea rax, [0x01435508]
jmp 0x65650d
mov rax, rsi
call fcn.004aed80
mov rsi, rbx
mov rbx, rsi
call fcn.00652880
test dil, dil
je 0x6566e3
nop
test al, al
jne 0x6566d5
mov rdx, qword [rsp + 0x1f0]
test rdx, rdx
je 0x65657f
cmp rbx, 0x17
je 0x65657f
lea rcx, [0x01070fee]
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], 0x2b
mov rax, qword [rsp + 0x100]
mov ebx, 0x2b
call fcn.0040e940
xor ebx, ebx
lea rcx, [0x0141e900]
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 0x6565e0
cmp rbx, 0x13
jne 0x65659b
test rsi, rsi
jmp 0x6565e9
lea rcx, [0x01078634]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], 0x2f
mov rax, qword [rsp + 0xf0]
mov ebx, 0x2f
call fcn.0040e940
xor ebx, ebx
lea rcx, [0x0141e900]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
cmp rbx, 0x13
jne 0x656654
test rsi, rsi
jne 0x656d3e
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x18
jne 0x65660b
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rbx]
mov rdi, qword [rbx + 8]
jmp 0x656640
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004ae9e0
movzx ecx, byte [rsp + 0x4f]
mov rdx, qword [rsp + 0x78]
mov rdi, rbx
mov rsi, rax
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x88], rsi
xor eax, eax
jmp 0x656d49
cmp rbx, 0x17
jne 0x6566cd
nop word [rax + rax]
cmp rdx, 0x18
je 0x6566b4
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
mov edi, 1
call fcn.004aa4a0
lea rdx, [0x0101eb60]
cmp rax, rdx
jne 0x656d2f
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov rcx, qword [rbx + 0x10]
mov rbx, rdx
call fcn.00654240
test al, al
je 0x6566be
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x18
jmp 0x656a18
movzx ecx, byte [rsp + 0x4f]
mov eax, 0x17
jmp 0x656a18
mov rax, rbx
jmp 0x656a18
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jmp 0x6566ef
mov rcx, qword [rsp + 0x80]
bt ecx, 9
jb 0x656702
lea rax, [0x01435508]
mov rbx, qword [rsp + 0xd0]
jmp 0x656717
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
call fcn.004aed80
movups xmmword [rsp + 0x120], xmm15
test rax, rax
je 0x656729
mov rax, qword [rax + 8]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rbx
lea rax, [0x01040934]
mov ebx, 0x13
lea rcx, [rsp + 0x120]
mov edi, 1
mov rsi, rdi
call fcn.00501000
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rbx
mov rax, qword [rsp + 0x110]
call fcn.0040e940
xor ebx, ebx
lea rcx, [0x0141e900]
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.004aa4a0
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, [0x00faae40]
cmp rax, rdx
jne 0x656a09
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 0x656961
lea rax, [0x00f5cfe0]
call fcn.00411180
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.00653a00
call fcn.0040e9e0
lea rcx, [0x01422128]
mov rdx, qword [rsp + 0xa0]
mov qword [rdx + 8], rcx
cmp dword [0x01c09e00], 0
je 0x6568fb
call fcn.00472500
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.0040e9e0
lea rdx, [0x01422128]
mov rbx, qword [rsp + 0xa0]
mov qword [rbx + 0x18], rdx
cmp dword [0x01c09e00], 0
je 0x656948
call fcn.00472500
mov qword [r11], rax
mov rdx, qword [rbx + 0x20]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x20], rax
lea rax, [0x01422150]
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.0040e9e0
mov rbx, rax
xor ecx, ecx
xor edi, edi
lea rax, [0x01422128]
add rsp, 0x1c0
pop rbp
ret
mov rax, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x80]
call fcn.004a9420
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.00656160
add rsp, 0x1c0
pop rbp
ret
lea rax, [0x01053bcb]
mov ebx, 0x1e
xor ecx, ecx
xor edi, edi
mov rsi, rdi
call fcn.004fe0a0
mov rcx, rax
mov rdi, rbx
xor eax, eax
xor ebx, ebx
add rsp, 0x1c0
pop rbp
ret
mov rbx, rdx
lea rcx, [0x00ebb820]
call fcn.0040e560
movzx edx, byte [rsp + 0x1f8]
test dl, dl
je 0x656a75
cmp rax, 0x10
jne 0x656a31
mov eax, 0x11
jmp 0x656a75
lea rcx, [0x0104bd01]
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], 0x1a
mov rax, qword [rsp + 0xe0]
mov ebx, 0x1a
call fcn.0040e940
xor ebx, ebx
lea rcx, [0x0141e900]
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 0x656a92
test dl, dl
jne 0x656a92
mov byte [rsp + 0x1f8], 1
lea rax, [0x00f5cfe0]
call fcn.00411180
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.006550a0
mov rdx, qword [rsp + 0x98]
mov qword [rdx + 0x18], rax
cmp dword [0x01c09e00], 0
je 0x656b10
nop
call fcn.00472500
mov qword [r11], rbx
mov rsi, qword [rdx + 0x20]
mov qword [r11 + 8], rsi
mov qword [rdx + 0x20], rbx
test rcx, rcx
jne 0x656d22
mov rcx, qword [rdx + 0x18]
mov rcx, qword [rcx + 0x20]
mov rax, rbx
call rcx
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x656caf
cmp byte [rsp + 0x1d2], 0
je 0x656b4c
mov edx, 1
jmp 0x656b66
movzx edx, byte [rsp + 0x1d3]
test rdx, rdx
mov edx, 2
mov r10d, 3
cmovne rdx, r10
cmp byte [rsp + 0x1d1], 0
jne 0x656b78
mov r10, qword [rcx]
jmp 0x656cb6
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.00653a00
call fcn.0040e9e0
lea rdx, [0x01422128]
mov r10, qword [rsp + 0x98]
mov qword [r10 + 8], rdx
cmp dword [0x01c09e00], 0
je 0x656bd8
call fcn.00472500
mov qword [r11], rax
mov rcx, qword [r10 + 0x10]
mov qword [r11 + 8], rcx
mov qword [r10 + 0x10], rax
lea rax, [0x00f5cfe0]
call fcn.00411180
lea rcx, [0x01422150]
mov qword [rax + 0x18], rcx
cmp dword [0x01c09e00], 0
jne 0x656c06
mov rdx, qword [rsp + 0x98]
jmp 0x656c16
call fcn.004724e0
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.00653a00
call fcn.0040e9e0
lea rcx, [0x01422128]
mov rbx, qword [rsp + 0x90]
mov qword [rbx + 8], rcx
cmp dword [0x01c09e00], 0
je 0x656c97
call fcn.00472500
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x01422150]
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.00653a00
call fcn.0040e9e0
lea rdx, [0x01422128]
mov rbx, qword [rsp + 0x98]
mov qword [rbx + 8], rdx
cmp dword [0x01c09e00], 0
je 0x656d0a
call fcn.00472500
mov qword [r11], rax
mov rdx, qword [rbx + 0x10]
mov qword [r11 + 8], rdx
mov qword [rbx + 0x10], rax
lea rax, [0x01422150]
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, [0x00ebb820]
call fcn.0040e560
mov rax, rsi
jmp 0x656a18
mov rax, r9
cmp rax, rdi
jge 0x656ea3
movzx r8d, byte [rsi + rax]
nop word [rax + rax]
cmp r8d, 0x80
jge 0x656d6f
lea r9, [rax + 1]
jmp 0x656da2
mov rbx, rdi
mov rcx, rax
mov rax, rsi
call fcn.00467ea0
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 0x656e20
lea r10d, [r8 - 0x61]
cmp r10b, 0x19
jbe 0x656d46
lea r10d, [r8 - 0x41]
cmp r10b, 0x19
jbe 0x656d46
lea r10d, [r8 - 0x30]
cmp r10b, 9
jbe 0x656d46
lea r10d, [r8 - 0x27]
cmp r10b, 2
jbe 0x656d46
lea r10d, [r8 - 0x2b]
nop
cmp r10b, 4
jbe 0x656d46
cmp r8b, 0x20
je 0x656d46
cmp r8b, 0x3a
je 0x656d46
nop
cmp r8b, 0x3d
je 0x656d46
cmp r8b, 0x3f
je 0x656d46
cmp rdx, 0x18
jmp 0x656e24
cmp rdx, 0x18
jne 0x656e2f
mov rdx, qword [rbx]
mov rsi, qword [rbx + 8]
jmp 0x656e4b
mov rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x80]
nop
call fcn.004ae9e0
mov rsi, rbx
mov rdx, rax
mov rax, rdx
mov rbx, rsi
call fcn.004830a0
test al, al
je 0x656e6e
movzx ecx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0xd8]
mov eax, 0xc
jmp 0x656ea8
lea rax, [0x00f053c0]
call fcn.00411180
mov qword [rax + 8], 0x1c
lea rcx, [0x0104f7c6]
mov qword [rax], rcx
xor ebx, ebx
lea rcx, [0x0141bcc0]
mov rdi, rax
xor eax, eax
add rsp, 0x1c0
pop rbp
ret
mov eax, 0x13
mov rsi, rax
jmp 0x656d3e
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
nop
call fcn.004705e0
mov rax, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
jmp fcn.00656160