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

Disassembly:
lea r12, [rsp - 0x180]
cmp r12, qword [r14 + 0x10]
jbe 0x594a55
sub rsp, 0x200
mov qword [rsp + 0x1f8], rbp
lea rbp, [rsp + 0x1f8]
mov qword [rsp + 0x218], rcx
cmp qword [rax + 0x320], 0
jne 0x594463
mov qword [rsp + 0x210], rbx
mov qword [rsp + 0x230], r8
mov qword [rsp + 0x208], rax
mov qword [rsp + 0x220], rdi
mov qword [rsp + 0x218], rcx
test rdi, rdi
je 0x593fc8
mov rdx, qword [rcx + rdi*8 - 8]
mov rsi, qword [rdx + 0x68]
mov rdx, qword [rdx + 0x60]
mov r9, qword [rax + 0x48]
cmp qword [rax + 0x50], rsi
jne 0x593f6b
mov rax, rdx
mov rbx, r9
mov rcx, rsi
call fcn.00402d80
test al, al
je 0x593f63
mov rax, qword [rsp + 0x208]
mov rcx, qword [rsp + 0x218]
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x220]
mov r8, qword [rsp + 0x230]
jmp 0x593fc8
mov rax, qword [rsp + 0x208]
movups xmmword [rsp + 0xf8], xmm15
movups xmmword [rsp + 0x108], xmm15
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], 5
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006f5600]
lea rbx, [rsp + 0xf8]
call fcn.0040ae80
mov rbx, rax
lea rax, [0x007f2320]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rdx, qword [r8 + 0x20]
mov r9, qword [r8 + 0x28]
mov r10, qword [r8 + 0x30]
bt rdx, 0x3f
jae 0x593ff4
mov r11, rdx
shl rdx, 1
shr rdx, 0x1f
movabs r12, 0xdd7b17f80
add rdx, r12
jmp 0x593ffa
mov r11, rdx
mov rdx, r9
test rdx, rdx
jne 0x594026
mov rdx, r11
and r11d, 0x3fffffff
test r11d, r11d
jne 0x594029
call fcn.004b1260
mov r9, rbx
mov rdx, rax
mov r10, rcx
mov rax, qword [rsp + 0x208]
jmp 0x594029
mov rdx, r11
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], r9
mov rsi, qword [rax + 0x2b8]
mov r8, qword [rax + 0x2c0]
mov rdi, qword [rax + 0x2b0]
mov rbx, r9
mov rcx, r10
mov rax, rdx
call fcn.004afde0
nop
test al, al
jne 0x594303
mov rdx, qword [rsp + 0x208]
mov rsi, qword [rdx + 0x2d0]
mov r8, qword [rdx + 0x2d8]
mov rdi, qword [rdx + 0x2c8]
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
call fcn.004afd20
nop dword [rax]
test al, al
jne 0x59419e
mov rdx, qword [rsp + 0x230]
mov rdx, qword [rdx + 0x50]
mov qword [rsp + 0x60], rdx
test rdx, rdx
jne 0x5940c7
mov qword [rsp + 0x60], 0x3d090
mov qword [rsp + 0x70], 0
mov rdx, qword [rsp + 0x210]
cmp rdx, 1
jne 0x5940eb
mov r8, qword [rsp + 0x220]
test r8, r8
jmp 0x5940fc
cmp rdx, 2
jne 0x594147
mov r8, qword [rsp + 0x220]
test r8, r8
je 0x59410f
mov r9, qword [rsp + 0x218]
mov r9, qword [r9]
cmp rdx, 1
jmp 0x594159
lea rax, [0x006d8800]
call fcn.0040daa0
mov qword [rax + 8], 0x38
lea rcx, [0x0072f8e0]
mov qword [rax], rcx
mov rbx, rax
lea rax, [0x007f1c00]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
cmp rdx, 1
mov r8, qword [rsp + 0x220]
mov r9d, 0
mov qword [rsp + 0xa0], r9
je 0x594169
cmp rdx, 2
jne 0x594197
nop
mov r10, qword [0x009a3bd0]
mov r11, qword [0x009a3bd8]
mov r12, qword [rsp + 0x208]
mov r13, qword [r12 + 0x2e8]
mov r15, qword [r12 + 0x2f0]
xor eax, eax
jmp 0x5949b5
xor eax, eax
jmp 0x594481
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
lea rdi, [0x00722c58]
mov esi, 0x19
nop dword [rax]
call fcn.004a8f20
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x88], rbx
mov rdx, qword [rsp + 0x208]
mov r8, qword [rdx + 0x2c8]
mov r9, qword [rdx + 0x2d0]
mov rcx, qword [rdx + 0x2d8]
lea rdi, [0x00722c58]
mov esi, 0x19
mov rax, r8
mov rbx, r9
call fcn.004a8f20
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rbx
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x88]
nop dword [rax + rax]
call fcn.0040b100
lea rdx, [0x006bb4c0]
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x80]
call fcn.0040b100
lea rdx, [0x006bb4c0]
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], rax
lea rax, [0x0072433b]
mov ebx, 0x1b
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call fcn.004c51a0
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
lea rax, [0x006f5600]
lea rbx, [rsp + 0xf8]
call fcn.0040ae80
mov rbx, rax
lea rax, [0x007f2320]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x98]
lea rdi, [0x00722c58]
mov esi, 0x19
call fcn.004a8f20
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x88], rbx
mov rdx, qword [rsp + 0x208]
mov r8, qword [rdx + 0x2b0]
mov r9, qword [rdx + 0x2b8]
mov rcx, qword [rdx + 0x2c0]
lea rdi, [0x00722c58]
mov esi, 0x19
mov rax, r8
mov rbx, r9
call fcn.004a8f20
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rbx
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x88]
nop dword [rax]
call fcn.0040b100
lea rdx, [0x006bb4c0]
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0x80]
call fcn.0040b100
lea rdx, [0x006bb4c0]
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], rax
lea rax, [0x00724cdc]
mov ebx, 0x1c
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call fcn.004c51a0
mov rdx, qword [rsp + 0x208]
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0x100], 1
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
lea rax, [0x006f5600]
lea rbx, [rsp + 0xf8]
call fcn.0040ae80
mov rbx, rax
lea rax, [0x007f2320]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
lea rax, [0x007f23c0]
lea rbx, [0x00a04c58]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
test al, al
je 0x5944a8
mov r10, qword [0x009a3bf0]
mov r11, qword [0x009a3bf8]
mov r12, qword [r9 + 0x2f0]
mov r13, qword [r9 + 0x2e8]
xor eax, eax
jmp 0x5945a2
cmp rdx, 1
jne 0x594513
mov rcx, qword [rsp + 0x208]
cmp byte [rcx + 0x360], 0
je 0x5944c8
cmp byte [rcx + 0x361], 0
jne 0x59451b
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], 0
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006f5600]
lea rbx, [rsp + 0xf8]
call fcn.0040ae80
mov rbx, rax
lea rax, [0x007f2320]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
mov rcx, qword [rsp + 0x208]
cmp byte [rcx + 0x360], 0
je 0x594584
mov rdx, qword [rcx + 0x368]
test rdx, rdx
jl 0x594584
lea rsi, [r8 - 1]
cmp rdx, rsi
jge 0x594584
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], 3
movups xmmword [rsp + 0x108], xmm15
lea rax, [0x006f5600]
lea rbx, [rsp + 0xf8]
call fcn.0040ae80
mov rbx, rax
lea rax, [0x007f2320]
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
ret
add r13, 0x38
inc rax
mov r8, rcx
cmp rax, r12
jge 0x594602
mov r15, qword [r13]
mov qword [rsp + 0x150], r15
movups xmm0, xmmword [r13 + 8]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [r13 + 0x18]
movups xmmword [rsp + 0x168], xmm0
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rsp + 0x178], xmm0
mov r15, qword [rsp + 0x158]
mov rcx, r8
mov r8, qword [rsp + 0x150]
cmp r15, r11
jne 0x594598
xor ebx, ebx
jmp 0x594980
mov rdx, rsi
mov r9, rdi
nop
jmp 0x594598
jl 0x59460f
lea rax, [rsp + 0x40]
xor ecx, ecx
xor ebx, ebx
jmp 0x594667
lea rax, [rsp + 0x40]
mov ebx, 1
xor ecx, ecx
mov rdi, rbx
lea rsi, [0x00705920]
call fcn.0044aa20
cmp dword [0x00a04ed0], 0
jne 0x594642
mov rdx, qword [rsp + 0xa0]
mov qword [rax], rdx
nop
jmp 0x594652
mov rdi, rax
mov rdx, qword [rsp + 0xa0]
call fcn.00465b40
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov ebx, 1
mov r9, qword [0x009a3bf0]
mov r10, qword [0x009a3bf8]
mov qword [rsp + 0x48], r10
mov r11, qword [rsp + 0x208]
mov r12, qword [r11 + 0x2e8]
mov r13, qword [r11 + 0x2f0]
xor esi, esi
jmp 0x5946a0
add r12, 0x38
inc rsi
mov r8, rdi
nop
cmp rsi, r13
jge 0x594727
mov r15, qword [r12]
mov qword [rsp + 0x118], r15
movups xmm0, xmmword [r12 + 8]
movups xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [r12 + 0x18]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [r12 + 0x28]
movups xmmword [rsp + 0x140], xmm0
mov r15, qword [rsp + 0x120]
mov rdi, r8
mov r8, qword [rsp + 0x118]
cmp r15, r10
jne 0x594694
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x78]
jmp 0x594943
mov rdx, qword [rsp + 0x210]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x208]
jmp 0x594694
jge 0x59477d
inc rbx
cmp rcx, rbx
jae 0x59475d
mov edi, 1
lea rsi, [0x00705920]
nop dword [rax]
call fcn.0044aa20
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x208]
lea rdi, [rax + rbx*8]
lea rdi, [rdi - 8]
cmp dword [0x00a04ed0], 0
jne 0x594775
mov qword [rax + rbx*8 - 8], r11
jmp 0x59477d
mov rsi, r11
call fcn.00465b80
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x40], rbx
xor ecx, ecx
jmp 0x5947c0
mov rcx, qword [rsp + 0x88]
inc rcx
mov rbx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
mov r11, qword [rsp + 0x208]
nop
cmp rbx, rcx
jle 0x594852
mov qword [rsp + 0x88], rcx
mov rsi, qword [rax + rcx*8]
mov r9, qword [rsi + 0x2e8]
mov rsi, qword [rsi + 0x2f0]
xor edi, edi
jmp 0x594862
xor esi, esi
xor edi, edi
xor r9d, r9d
movups xmmword [rsp + 0xb8], xmm15
movups xmmword [rsp + 0xc8], xmm15
lea rdx, [0x00594aa0]
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], r11
lea r8, [rsp + 0x70]
mov qword [rsp + 0xc8], r8
lea r8, [rsp + 0x60]
mov qword [rsp + 0xd0], r8
mov rax, r9
mov rbx, rdi
mov rcx, rsi
lea rdi, [rsp + 0xb8]
call fcn.0058b340
test rax, rax
je 0x59478e
jmp 0x5948d0
cmp rdx, 1
jmp 0x5944ac
add r9, 0x38
inc rdi
cmp rdi, rsi
jge 0x5947e7
mov r10, qword [r9]
mov qword [rsp + 0x1c0], r10
movups xmm0, xmmword [r9 + 8]
movups xmmword [rsp + 0x1c8], xmm0
movups xmm0, xmmword [r9 + 0x18]
movups xmmword [rsp + 0x1d8], xmm0
movups xmm0, xmmword [r9 + 0x28]
movups xmmword [rsp + 0x1e8], xmm0
mov r10, qword [rsp + 0x1c8]
mov r12, qword [rsp + 0x1c0]
mov r13, qword [0x009a3bf0]
cmp qword [0x009a3bf8], r10
jne 0x59485b
xor r15d, r15d
jmp 0x5948f4
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
jmp 0x59485b
mov rbp, qword [rsp + 0x1f8]
add rsp, 0x200
nop
ret
inc r15
mov rdx, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
cmp r15, r10
jge 0x594909
mov r8, qword [r12 + r15*8]
mov rdx, qword [r13 + r15*8]
cmp rdx, r8
je 0x5948e1
jmp 0x5948be
mov r9, qword [rsp + 0x1e0]
mov rdi, qword [rsp + 0x1e8]
mov rsi, qword [rsp + 0x1f0]
jmp 0x5947ee
inc rdx
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x208]
mov qword [rsp + 0x68], rdx
mov rdx, qword [rsp + 0x210]
mov rdx, qword [rsp + 0x68]
cmp rdx, r15
jge 0x59495f
mov r11, qword [r8 + rdx*8]
mov r10, qword [r9 + rdx*8]
cmp r10, r11
je 0x594926
jmp 0x59470d
cmp rsi, r13
mov rdx, qword [rsp + 0x210]
mov r8, rdi
jmp 0x594727
inc rbx
mov rdx, rsi
mov r9, rdi
nop dword [rax + rax]
cmp rbx, r15
jge 0x59499d
mov rsi, rdx
mov rdx, qword [r8 + rbx*8]
mov rdi, r9
mov r9, qword [r10 + rbx*8]
cmp r9, rdx
je 0x594972
jmp 0x5945f9
cmp rax, r12
mov r8, rcx
jmp 0x594602
add r13, 0x38
inc rax
mov r8, rcx
mov r12, rbx
cmp rax, r15
jge 0x594a19
mov rcx, r8
mov r8, qword [r13]
mov qword [rsp + 0x188], r8
movups xmm0, xmmword [r13 + 8]
movups xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [r13 + 0x18]
movups xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rsp + 0x1b0], xmm0
mov r8, qword [rsp + 0x190]
mov rbx, r12
mov r12, qword [rsp + 0x188]
cmp r8, r11
jne 0x5949a8
xor esi, esi
jmp 0x594a33
mov rdx, rdi
mov r9, qword [rsp + 0xa0]
jmp 0x5949a8
setl al
nop dword [rax]
jmp 0x594481
inc rsi
mov rdx, rdi
mov r9, qword [rsp + 0xa0]
cmp rsi, r8
jge 0x594a4a
mov rdi, rdx
mov rdx, qword [r12 + rsi*8]
mov r9, qword [r10 + rsi*8]
cmp r9, rdx
je 0x594a25
jmp 0x594a0c
cmp rax, r15
mov r8, rcx
mov r12, rbx
jmp 0x594a19
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp fcn.00593ea0