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

Disassembly:
lea r12, [rsp - 0xb8]
cmp r12, qword [r14 + 0x10]
jbe 0x59ec78
push rbp
mov rbp, rsp
sub rsp, 0x130
cmp qword [rax + 8], 0
je 0x59e610
mov qword [rsp + 0x198], rax
xor ecx, ecx
jmp 0x59e63e
mov rdi, qword [0x008be830]
mov rsi, qword [0x008be838]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x130
pop rbp
ret
mov rcx, qword [rsp + 0x40]
inc rcx
mov rax, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x150]
test rbx, rbx
je 0x59e651
mov rsi, qword [rbx + 0x10]
jmp 0x59e653
xor esi, esi
cmp rcx, rsi
jge 0x59e702
mov rsi, qword [rbx + 0x10]
nop
cmp rcx, rsi
jae 0x59ec6c
mov qword [rsp + 0x40], rcx
mov rax, qword [rbx + 8]
shl rcx, 5
mov rdx, qword [rax + rcx + 0x18]
mov rax, qword [rdx]
nop
call rax
test rbx, rbx
jne 0x59e6ac
cmp qword [rax + 8], 0
jne 0x59e62e
mov rdi, qword [0x008be830]
mov rsi, qword [0x008be838]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x130
pop rbp
ret
movups xmmword [rsp + 0x100], xmm15
je 0x59e6bb
mov rbx, qword [rbx + 8]
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rcx
lea rax, [0x006c02ea]
mov ebx, 0x2c
lea rcx, [rsp + 0x100]
mov edi, 1
mov rsi, rdi
call fcn.004dd6a0
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
add rsp, 0x130
pop rbp
ret
call fcn.005999c0
mov rcx, qword [rsp + 0x158]
test rcx, rcx
jne 0x59e72c
test rax, rax
je 0x59ea66
cmp byte [rax + 0x28], 0
jne 0x59ea66
test rcx, rcx
je 0x59e76f
cmp byte [rcx + 0x28], 0
je 0x59e76f
mov rax, qword [rsp + 0x198]
lea rbx, [rsp + 0x140]
call fcn.0059ace0
test rdi, rdi
je 0x59e766
mov rdx, qword [rsp + 0x158]
test rdx, rdx
je 0x59e75f
mov rdx, qword [rdx + 0x10]
jmp 0x59e761
xor edx, edx
test rdx, rdx
jne 0x59e76f
add rsp, 0x130
pop rbp
ret
cmp qword [rsp + 0x158], 0
jne 0x59e790
call fcn.005999c0
mov qword [rsp + 0x158], rax
test rax, rax
je 0x59ea11
mov rax, qword [rsp + 0x198]
xor ebx, ebx
xor ecx, ecx
mov rdi, rbx
mov rsi, rbx
lea r8, [rsp + 0x140]
call fcn.0059d440
test rax, rax
jne 0x59e9fb
mov rcx, qword [rsp + 0x148]
test rcx, rcx
je 0x59e7e9
mov rbx, qword [rsp + 0x140]
mov rax, qword [rsp + 0x198]
call fcn.005a0060
nop word [rax + rax]
test rax, rax
jne 0x59e9e5
mov rdx, qword [rsp + 0x158]
test rdx, rdx
jne 0x59e7fa
xor edx, edx
jmp 0x59e876
mov qword [rsp + 0xb8], rdx
mov rdx, qword [rsp + 0x198]
mov rax, qword [rdx]
mov rbx, qword [rdx + 8]
mov rcx, qword [rdx + 0x10]
call fcn.00556ae0
movups xmm0, xmmword [rsp]
movups xmmword [rsp + 0x9c], xmm0
movups xmm0, xmmword [rsp + 0xc]
movups xmmword [rsp + 0xa8], xmm0
movups xmm0, xmmword [rsp + 0x9c]
movups xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rsp + 0x8c], xmm0
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rdx + 0x20]
lea rax, [0x0066a7c0]
lea rcx, [rsp + 0x80]
call fcn.0040e5a0
movzx edx, byte [rax]
test dl, dl
je 0x59e903
lea rax, [0x00662f00]
call fcn.0040d680
mov qword [rsp + 0xe0], rax
lea rax, [0x00662fc0]
call fcn.0040d680
cmp dword [0x00921500], 0
jne 0x59e8b1
mov rdx, qword [rsp + 0x198]
jmp 0x59e8c1
call fcn.004665a0
mov rdx, qword [rsp + 0x198]
mov qword [r11], rdx
mov qword [rax], rdx
mov r8, qword [rsp + 0xe0]
mov qword [r8 + 8], 1
mov qword [r8 + 0x10], 1
cmp dword [0x00921500], 0
je 0x59e8f4
call fcn.004665c0
mov qword [r11], rax
mov r9, qword [r8]
mov qword [r11 + 8], r9
mov qword [r8], rax
mov ebx, 1
mov ecx, 1
jmp 0x59e954
mov qword [rsp + 0xe8], 0
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0xe8], rax
lea rbx, [rsp + 0xe8]
mov ecx, 1
mov rdi, rcx
xor esi, esi
lea r8, [rsp + 0x140]
call fcn.0059efc0
nop
test rdi, rdi
jne 0x59e9d5
mov rdx, qword [rsp + 0x198]
mov r8, rax
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0xc0], r8
cmp qword [rsp + 0x180], 0
jne 0x59e9be
mov qword [rsp + 0x50], rcx
lea rax, [0x00660d40]
call fcn.0040d680
mov qword [rax], 1
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x180], 1
mov qword [rsp + 0x188], 1
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x48]
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x178]
mov r10, qword [rsp + 0x180]
xor eax, eax
jmp 0x59ea87
xor eax, eax
xor ebx, ebx
mov rcx, rbx
add rsp, 0x130
pop rbp
ret
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
add rsp, 0x130
pop rbp
ret
xor ecx, ecx
mov rdi, rax
mov rsi, rbx
xor eax, eax
mov rbx, rcx
add rsp, 0x130
pop rbp
ret
movups xmmword [rsp + 0xf0], xmm15
mov rcx, qword [0x008cc3b0]
mov rdx, qword [0x008cc3b8]
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rdx
lea rax, [0x00682a80]
lea rbx, [rsp + 0xf0]
call fcn.0040abe0
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x00729220]
mov rsi, rax
xor eax, eax
add rsp, 0x130
pop rbp
ret
mov rax, qword [rsp + 0x198]
lea rbx, [rsp + 0x140]
call fcn.0059ace0
add rsp, 0x130
pop rbp
ret
inc rax
cmp rax, r10
jge 0x59eaa5
mov r11, qword [r9 + rax*8]
test r11, r11
jne 0x59ea84
mov rax, r8
xor edi, edi
xor esi, esi
add rsp, 0x130
pop rbp
ret
lea rax, [0x00659840]
mov rcx, rbx
xor ebx, ebx
call fcn.0044b7a0
mov rdx, qword [rsp + 0xc0]
xor ecx, ecx
mov rbx, qword [rsp + 0x48]
xor esi, esi
jmp 0x59eae6
mov rdx, qword [rsp + 0xd0]
add rdx, 0x18
mov r9, qword [rsp + 0x68]
inc r9
mov rsi, rbx
mov rbx, rcx
mov rcx, r9
mov r9, qword [rsp + 0x48]
cmp rcx, r9
jge 0x59ebef
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xd0], rdx
mov rax, qword [rdx]
mov qword [rsp + 0xc8], rax
mov rbx, qword [rdx + 8]
mov qword [rsp + 0x58], rbx
mov rcx, qword [rdx + 0x10]
mov qword [rsp + 0x60], rcx
mov rdi, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x180]
mov r8, qword [rsp + 0x188]
call fcn.005a0480
test al, al
je 0x59ebd8
mov rbx, qword [rsp + 0x70]
inc rbx
mov rcx, qword [rsp + 0x78]
cmp rcx, rbx
jb 0x59eb71
mov rax, qword [rsp + 0xd8]
jmp 0x59eb8a
mov rax, qword [rsp + 0xd8]
mov edi, 1
lea rsi, [0x00659840]
call fcn.0044b880
lea rdx, [rbx + rbx*2]
mov r9, qword [rsp + 0x58]
mov qword [rax + rdx*8 - 0x10], r9
mov r9, qword [rsp + 0x60]
mov qword [rax + rdx*8 - 8], r9
cmp dword [0x00921500], 0
jne 0x59ebb5
mov r9, qword [rsp + 0xc8]
jmp 0x59ebce
call fcn.004665c0
mov r9, qword [rsp + 0xc8]
mov qword [r11], r9
mov r10, qword [rax + rdx*8 - 0x18]
mov qword [r11 + 8], r10
mov qword [rax + rdx*8 - 0x18], r9
jmp 0x59eac9
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov rax, qword [rsp + 0xd8]
jmp 0x59eac9
test rsi, rsi
jne 0x59ec59
movups xmmword [rsp + 0x110], xmm15
movups xmmword [rsp + 0x120], xmm15
mov rcx, qword [rsp + 0x198]
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], 4
movups xmmword [rsp + 0x120], xmm15
lea rax, [0x0068e620]
lea rbx, [rsp + 0x110]
call fcn.0040abe0
xor ebx, ebx
mov rcx, rbx
lea rdi, [0x007291a0]
mov rsi, rax
xor eax, eax
add rsp, 0x130
pop rbp
ret
mov rcx, rbx
xor edi, edi
mov rbx, rsi
xor esi, esi
add rsp, 0x130
pop rbp
ret
mov rax, rcx
mov rcx, rsi
call fcn.00466960
nop
mov qword [rsp + 0x60], rax
nop dword [rax]
call fcn.004646a0
mov rax, qword [rsp + 0x60]
jmp fcn.0059e5e0