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

Disassembly:
lea r12, [rsp - 0x30]
cmp r12, qword [r14 + 0x10]
jbe 0x59cce8
sub rsp, 0xb0
mov qword [rsp + 0xa8], rbp
lea rbp, [rsp + 0xa8]
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc8], rcx
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x59c369
mov rdx, r8
cmp rbx, rdx
jle 0x59c72a
jbe 0x59ccdc
mov qword [rsp + 0x58], rdx
mov byte [rsp + 0x45], dil
mov qword [rsp + 0x48], rsi
movzx r8d, byte [rax + rdx]
lea r9, [rax + rdx]
mov qword [rsp + 0x80], r9
nop dword [rax + rax]
cmp r8b, 0x25
jne 0x59c5d5
lea r8, [rdx + 2]
cmp rbx, r8
jle 0x59c6ae
lea r10, [rdx + 1]
nop dword [rax + rax]
cmp rbx, r10
jbe 0x59ccd1
movzx r10d, byte [rax + rdx + 1]
lea r11d, [r10 - 0x30]
cmp r11b, 9
ja 0x59c3de
cmp rbx, r8
jmp 0x59c403
lea r12d, [r10 - 0x61]
cmp r12b, 5
ja 0x59c3ed
cmp rbx, r8
jmp 0x59c403
lea r12d, [r10 - 0x41]
cmp r12b, 5
ja 0x59c6ae
nop dword [rax + rax]
cmp rbx, r8
jbe 0x59ccc6
movzx r8d, byte [rax + rdx + 2]
lea r12d, [r8 - 0x30]
cmp r12b, 9
jbe 0x59c434
lea r13d, [r8 - 0x61]
nop dword [rax]
cmp r13b, 5
jbe 0x59c434
lea r13d, [r8 - 0x41]
cmp r13b, 5
ja 0x59c6ae
cmp rcx, 3
jne 0x59c4bb
nop
cmp r11b, 9
ja 0x59c44b
mov r13d, r11d
jmp 0x59c483
lea r13d, [r10 - 0x61]
cmp r13b, 5
ja 0x59c464
lea r13d, [r10 - 0x57]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x59c483
lea r13d, [r10 - 0x41]
cmp r13b, 5
ja 0x59c47d
lea r13d, [r10 - 0x37]
mov r15d, r13d
mov r13d, r11d
mov r11d, r15d
jmp 0x59c483
mov r13d, r11d
xor r11d, r11d
cmp r11b, 8
jae 0x59c4c0
lea r11, [rdx + 3]
cmp rbx, r11
jb 0x59ccbb
cmp rdx, r11
ja 0x59ccb0
movzx r11d, word [rax + rdx]
cmp r11w, 0x3225
jne 0x59c657
cmp r8b, 0x35
je 0x59c4c0
jmp 0x59c657
mov r13d, r11d
nop
cmp rcx, 4
jne 0x59c5c9
cmp r13b, 9
ja 0x59c4d6
cmp r12b, 9
jmp 0x59c514
lea r11d, [r10 - 0x61]
nop word [rax + rax]
cmp r11b, 5
ja 0x59c4f3
lea r11d, [r10 - 0x57]
cmp r12b, 9
mov r13d, r11d
jmp 0x59c514
lea r11d, [r10 - 0x41]
cmp r11b, 5
ja 0x59c50a
lea r11d, [r10 - 0x37]
cmp r12b, 9
mov r13d, r11d
jmp 0x59c514
cmp r12b, 9
mov r13d, 0
jbe 0x59c53f
lea r10d, [r8 - 0x61]
nop word [rax + rax]
cmp r10b, 5
ja 0x59c52c
lea r12d, [r8 - 0x57]
jmp 0x59c53f
lea r10d, [r8 - 0x41]
cmp r10b, 5
ja 0x59c53c
lea r12d, [r8 - 0x37]
jmp 0x59c53f
xor r12d, r12d
shl r13d, 4
or r12d, r13d
lea r10, [rdx + 3]
cmp rbx, r10
jb 0x59cca5
cmp rdx, r10
ja 0x59cc9a
movzx r10d, word [rax + rdx]
cmp r10w, 0x3225
jne 0x59c56f
cmp r8b, 0x35
je 0x59c5bb
cmp r12b, 0x20
jne 0x59c57a
xor r8d, r8d
jmp 0x59c5c0
mov eax, r12d
mov ebx, 3
call fcn.0059c1c0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x80]
mov r8d, eax
mov rax, qword [rsp + 0xb8]
jmp 0x59c5c0
xor r8d, r8d
nop
test r8b, r8b
jne 0x59c683
inc rsi
lea r8, [rdx + 3]
jmp 0x59c366
cmp r8b, 0x2b
jne 0x59c5ec
cmp rcx, 6
sete dil
lea r8, [rdx + 1]
jmp 0x59c366
cmp rcx, 3
je 0x59c5f8
cmp rcx, 4
jne 0x59c642
cmp r8b, 0x80
jb 0x59c603
xor r8d, r8d
jmp 0x59c645
mov eax, r8d
mov rbx, rcx
call fcn.0059c1c0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x58]
mov rbx, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x48]
movzx edi, byte [rsp + 0x45]
mov r9, qword [rsp + 0x80]
mov r8d, eax
mov rax, qword [rsp + 0xb8]
jmp 0x59c645
xor r8d, r8d
test r8b, r8b
jne 0x59c6f2
lea r8, [rdx + 1]
jmp 0x59c366
mov rax, r9
mov ebx, 3
nop
call fcn.0040afc0
xor ebx, ebx
lea rcx, [0x007437c0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
mov rax, r9
mov ebx, 3
call fcn.0040afc0
xor ebx, ebx
lea rcx, [0x007437c0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
sub rbx, rdx
mov rcx, rbx
neg rbx
sar rbx, 0x3f
and rdx, rbx
add rax, rdx
cmp rcx, 3
jle 0x59c6cc
mov ecx, 3
mov rbx, rcx
call fcn.0040afc0
xor ebx, ebx
lea rcx, [0x007437c0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
lea rcx, [rdx + 1]
cmp rdx, rcx
ja 0x59cc92
mov rax, r9
mov ebx, 1
call fcn.0040afc0
xor ebx, ebx
lea rcx, [0x007437e0]
mov rdi, rax
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
test rsi, rsi
jne 0x59c748
test dil, dil
jne 0x59c748
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
nop
lea rdx, [rsp + 0x88]
mov qword [rsp + 0x88], rdx
shl rsi, 1
mov r8, rbx
sub rbx, rsi
test rbx, rbx
jl 0x59cc7f
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp + 0xa0]
mov r11, r10
sub r10, r9
cmp r10, rbx
jge 0x59c82f
mov qword [rsp + 0x60], r9
nop
lea rcx, [rbx + r11*2]
mov qword [rsp + 0x68], rcx
lea rax, [0x006796c0]
mov rbx, r9
call fcn.0044a840
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x60]
cmp rdx, rcx
mov rsi, rcx
cmovl rcx, rdx
mov rbx, qword [rsp + 0x90]
cmp rax, rbx
je 0x59c7f2
mov qword [rsp + 0x78], rax
call fcn.00466740
mov rax, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x60]
mov qword [rsp + 0x98], rsi
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
xor ebx, ebx
jmp 0x59c840
lea rbx, [r9 + 1]
nop word [rax + rax]
cmp r8, rbx
jle 0x59cbc7
jbe 0x59cc74
movzx r9d, byte [rax + rbx]
cmp r9b, 0x25
jne 0x59c997
lea r9, [rbx + 1]
cmp r8, r9
jbe 0x59cc69
movzx r9d, byte [rax + rbx + 1]
lea r10d, [r9 - 0x30]
cmp r10b, 9
jbe 0x59c89f
lea r10d, [r9 - 0x61]
nop
cmp r10b, 5
ja 0x59c88c
lea r10d, [r9 - 0x57]
jmp 0x59c89f
lea r10d, [r9 - 0x41]
cmp r10b, 5
ja 0x59c89c
lea r10d, [r9 - 0x37]
jmp 0x59c89f
xor r10d, r10d
lea r9, [rbx + 2]
cmp r8, r9
jbe 0x59cc5e
movzx r11d, byte [rax + rbx + 2]
lea r12d, [r11 - 0x30]
cmp r12b, 9
jbe 0x59c8df
lea r12d, [r11 - 0x61]
cmp r12b, 5
ja 0x59c8cc
lea r12d, [r11 - 0x57]
jmp 0x59c8df
lea r12d, [r11 - 0x41]
cmp r12b, 5
ja 0x59c8dc
lea r12d, [r11 - 0x37]
jmp 0x59c8df
xor r12d, r12d
shl r10d, 4
or r12d, r10d
nop
mov r10, qword [rsp + 0x88]
test r10, r10
je 0x59c8fe
cmp r10, rdx
je 0x59c906
jmp 0x59cc4b
mov qword [rsp + 0x88], rdx
mov rbx, qword [rsp + 0x98]
inc rbx
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
cmp r11, rbx
jae 0x59c985
mov qword [rsp + 0x70], r9
mov byte [rsp + 0x46], r12b
mov rax, r10
mov rcx, r11
mov edi, 1
lea rsi, [0x006796c0]
call fcn.0044a920
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x70]
movzx r12d, byte [rsp + 0x46]
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x98], rbx
mov byte [rbx + r10 - 1], r12b
jmp 0x59c833
mov qword [rsp + 0x50], rbx
nop dword [rax]
cmp r9b, 0x2b
jne 0x59cb10
cmp rcx, 6
jne 0x59ca5f
nop
nop
mov r9, qword [rsp + 0x88]
nop
test r9, r9
je 0x59c9cf
cmp r9, rdx
je 0x59c9d7
jmp 0x59cc38
mov qword [rsp + 0x88], rdx
mov r9, qword [rsp + 0x98]
inc r9
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
cmp r11, r9
jae 0x59ca4c
mov rax, r10
mov rbx, r9
mov rcx, r11
mov edi, 1
lea rsi, [0x006796c0]
call fcn.0044a920
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r9
mov byte [r9 + r10 - 1], 0x20
jmp 0x59cb08
nop
nop
mov r9, qword [rsp + 0x88]
test r9, r9
je 0x59ca78
cmp r9, rdx
je 0x59ca80
jmp 0x59cc25
mov qword [rsp + 0x88], rdx
mov r9, qword [rsp + 0x98]
inc r9
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
nop dword [rax + rax]
cmp r11, r9
jae 0x59cafa
mov rax, r10
mov rbx, r9
mov rcx, r11
mov edi, 1
lea rsi, [0x006796c0]
call fcn.0044a920
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
mov r9, rbx
mov r10, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r9
mov byte [r9 + r10 - 1], 0x2b
mov r9, rbx
jmp 0x59c833
nop
mov r10, qword [rsp + 0x88]
test r10, r10
je 0x59cb2a
nop
cmp r10, rdx
je 0x59cb32
jmp 0x59cc0f
mov qword [rsp + 0x88], rdx
mov r10, qword [rsp + 0x98]
inc r10
mov r11, qword [rsp + 0x90]
mov r12, qword [rsp + 0xa0]
cmp r12, r10
jae 0x59cbb2
mov byte [rsp + 0x47], r9b
mov rax, r11
mov rbx, r10
mov rcx, r12
mov edi, 1
lea rsi, [0x006796c0]
call fcn.0044a920
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov r8, qword [rsp + 0xc0]
movzx r9d, byte [rsp + 0x47]
mov r10, rbx
mov r11, rax
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x98], r10
mov byte [r10 + r11 - 1], r9b
mov r9, rbx
jmp 0x59c833
mov rax, qword [rsp + 0x90]
mov rdx, rax
neg rax
mov rbx, qword [rsp + 0x98]
nop dword [rax]
cmp rbx, rax
ja 0x59cc00
mov rax, rdx
xor ecx, ecx
xor edi, edi
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
ret
test rdx, rdx
je 0x59cc0a
call fcn.0045cf80
call fcn.0045cfc0
lea rax, [0x00679500]
lea rbx, [0x007420c0]
nop dword [rax]
call fcn.00436420
lea rax, [0x00679500]
lea rbx, [0x007420c0]
call fcn.00436420
lea rax, [0x00679500]
lea rbx, [0x007420c0]
call fcn.00436420
lea rax, [0x00679500]
lea rbx, [0x007420c0]
call fcn.00436420
mov rax, r9
mov rcx, r8
call fcn.00465da0
mov rax, r9
mov rcx, r8
call fcn.00465da0
mov rax, rbx
mov rcx, r8
call fcn.00465da0
lea rax, [0x00679500]
lea rbx, [0x007420d0]
call fcn.00436420
mov rax, rdx
call fcn.00465e60
mov rax, rdx
mov rcx, r10
call fcn.00465e60
mov rcx, r10
mov rdx, rbx
call fcn.00465de0
mov rax, rdx
mov rcx, r11
call fcn.00465e60
mov rcx, r11
mov rdx, rbx
call fcn.00465de0
mov rax, r8
mov rcx, rbx
call fcn.00465da0
mov rax, r10
mov rcx, rbx
call fcn.00465da0
mov rax, rdx
mov rcx, rbx
call fcn.00465da0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463740
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.0059c320