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

Disassembly:
lea r12, [rsp - 0x68]
cmp r12, qword [r14 + 0x10]
jbe 0x43fb2a
sub rsp, 0xe8
mov qword [rsp + 0xe0], rbp
lea rbp, [rsp + 0xe0]
mov qword [rsp + 0xc8], r14
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rcx + 0x30]
mov rax, qword [rdx + 0xa0]
cmp dword [0x008c0740], 0
je 0x43f051
call fcn.0043ed80
jmp 0x43f02e
mov qword [rsp + 0xd8], rax
test byte [rax], al
cmp dword [rax + 0x2278], 0
je 0x43f071
call fcn.0043d540
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
call fcn.004409c0
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rbx
cmp byte [0x008c5cf0], 0
jne 0x43f094
cmp byte [0x008c5cf1], 0
je 0x43f0b3
call fcn.00455da0
nop dword [rax]
test rax, rax
jne 0x43f787
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
cmp dword [0x00913b60], 0
je 0x43f0e4
mov rbx, qword [rsp + 0xd8]
mov rcx, rax
lea rax, [0x009149a0]
call fcn.00421980
test rax, rax
jne 0x43f88c
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0xd8]
mov edx, dword [rcx + 0x10]
imul edx, edx, 0xc10c9715
nop word [rax + rax]
cmp edx, 0x4325c53
ja 0x43f16a
cmp dword [0x008c06d0], 0
jle 0x43f16a
nop
nop
lea rax, [0x008c0678]
call fcn.0040b680
mov rax, qword [rsp + 0xd8]
mov ebx, 1
call fcn.00445fe0
mov qword [rsp + 0xd0], rax
nop
nop
lea rax, [0x008c0678]
call fcn.0040b8a0
mov rax, qword [rsp + 0xd0]
test rax, rax
jne 0x43f7cc
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0x50]
cmp byte [0x00913b19], 0
je 0x43f1a8
cmp byte [0x00913b1a], 0
je 0x43f1a8
nop dword [rax]
call fcn.004189e0
test rax, rax
je 0x43f196
xor ebx, ebx
mov ecx, 1
call fcn.0043b940
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0x50]
mov rdx, qword [0x008af178]
mov rdx, qword [rdx]
test rdx, rdx
je 0x43f1e5
mov qword [rsp], rdx
mov qword [rsp + 8], 0
call fcn.004647c0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
call fcn.00446980
test rax, rax
jne 0x43f87a
cmp dword [0x008c06d0], 0
je 0x43f249
nop
nop
lea rax, [0x008c0678]
call fcn.0040b680
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
call fcn.00445fe0
mov qword [rsp + 0xb0], rax
nop
nop
lea rax, [0x008c0678]
call fcn.0040b8a0
mov rax, qword [rsp + 0xb0]
nop word [rax + rax]
test rax, rax
jne 0x43f866
mov edx, dword [0x00913b78]
test edx, edx
je 0x43f270
mov edx, dword [0x00913b7c]
test edx, edx
jbe 0x43f26c
mov rdx, qword [0x008c0668]
test rdx, rdx
setne dl
jmp 0x43f272
xor edx, edx
jmp 0x43f272
xor edx, edx
test dl, dl
je 0x43f28b
xor eax, eax
call fcn.00431820
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x43f7f3
mov rdx, qword [rsp + 0xc8]
mov rsi, qword [rdx + 0x30]
mov edi, dword [0x00913b6c]
cmp byte [rsi + 0xe4], 0
je 0x43f2ad
mov esi, 1
jmp 0x43f2c5
mov esi, dword [0x008c06bc]
mov r8d, dword [0x008c06b8]
shl esi, 1
sub edi, r8d
cmp esi, edi
setb sil
test sil, sil
jne 0x43f2d6
mov rdi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
jmp 0x43f335
mov rcx, qword [rdx + 0x30]
cmp byte [rcx + 0xe4], 0
jne 0x43f2fa
mov byte [rcx + 0xe4], 1
mov ecx, 1
lea rbx, [0x008c06bc]
lock xadd dword [rbx], ecx
mov rax, qword [rsp + 0x58]
nop
call fcn.0043fc20
test rax, rax
jne 0x43f7e1
test sil, sil
jne 0x43f02e
test rdi, rdi
je 0x43f32d
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x43f335
cmp rdi, rdx
jl 0x43f335
jmp 0x43f332
mov rdx, qword [rsp + 0x50]
mov rdi, rdx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rcx
cmp dword [0x00913b60], 0
je 0x43f3d9
mov rdx, qword [rsp + 0xd8]
mov rsi, qword [rdx + 0x1240]
nop dword [rax + rax]
test rsi, rsi
je 0x43f382
cmp qword [rsi + 0x10], 0
jne 0x43f37a
mov rsi, qword [rdx + 0x1248]
cmp qword [rsi + 0x10], 0
je 0x43f382
mov eax, 1
nop
jmp 0x43f3ac
mov rsi, qword [0x008bee60]
test rsi, rsi
jne 0x43f3a7
mov esi, dword [0x008beee8]
cmp dword [0x008beeec], esi
jbe 0x43f3a3
mov eax, 1
jmp 0x43f3ac
xor eax, eax
jmp 0x43f3ac
mov eax, 1
test al, al
jne 0x43f3b4
xor eax, eax
jmp 0x43f3e3
lea rax, [0x009149a0]
nop dword [rax + rax]
call fcn.004224a0
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0x50]
jmp 0x43f3e3
mov rdx, qword [rsp + 0xd8]
xor eax, eax
test al, al
je 0x43f3ed
nop
jmp 0x43fa78
mov rcx, qword [0x008be2c0]
mov qword [rsp + 0xb8], rcx
mov rdx, qword [0x008be2c8]
mov qword [rsp + 0x80], rdx
mov rbx, qword [0x008be2d0]
mov qword [rsp + 0x88], rbx
mov rsi, qword [0x008be340]
mov qword [rsp + 0xa0], rsi
mov rdi, qword [0x008be348]
mov qword [rsp + 0x70], rdi
mov r8, qword [0x008be350]
mov qword [rsp + 0x78], r8
mov r9, qword [0x008be380]
mov qword [rsp + 0x98], r9
mov r10, qword [0x008be388]
mov qword [rsp + 0x40], r10
mov r11, qword [0x008be390]
mov qword [rsp + 0x48], r11
nop
nop
lea rax, [0x008c0678]
call fcn.0040b680
cmp dword [0x008c0740], 0
jne 0x43f490
mov rax, qword [rsp + 0xd8]
cmp dword [rax + 0x2278], 0
je 0x43f4a5
nop
nop
lea rax, [0x008c0678]
call fcn.0040b8a0
nop
jmp 0x43f02e
cmp dword [0x008c06d0], 0
jne 0x43f9f7
call fcn.00444700
mov rcx, qword [rsp + 0xd8]
nop
cmp rax, rcx
jne 0x43fa67
mov rax, rcx
mov rbx, qword [rsp + 0x58]
call fcn.00446220
nop
nop
lea rax, [0x008c0678]
nop
call fcn.0040b8a0
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rcx + 0x30]
movzx esi, byte [rdx + 0xe4]
mov byte [rsp + 0x3f], sil
nop dword [rax]
test sil, sil
je 0x43f5de
mov byte [rdx + 0xe4], 0
mov edx, 0xffffffff
lea r9, [0x008c06bc]
lock xadd dword [r9], edx
dec edx
test edx, edx
jl 0x43fa56
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
call fcn.0043ffa0
test rax, rax
je 0x43f58d
nop
call fcn.00444580
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rcx + 0x30]
mov byte [rdx + 0xe4], 1
mov edx, 1
lea rbx, [0x008c06bc]
lock xadd dword [rbx], edx
jmp 0x43f02e
call fcn.00440180
test rax, rax
jne 0x43f8a3
mov rax, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
call fcn.004400e0
mov rcx, qword [rsp + 0xc8]
movzx esi, byte [rsp + 0x3f]
jmp 0x43f5e3
mov rax, qword [rsp + 0x50]
mov edx, dword [0x00913b78]
test edx, edx
je 0x43f614
mov edx, dword [0x00913b7c]
test edx, edx
ja 0x43f5fc
test rax, rax
je 0x43f610
xor edx, edx
lea rdi, [0x008c0668]
xchg qword [rdi], rdx
test rdx, rdx
setne dl
jmp 0x43f616
xor edx, edx
jmp 0x43f616
xor edx, edx
test dl, dl
je 0x43f9b5
lea rdx, [0x008c0670]
mov rdi, rax
xchg qword [rdx], rax
mov r8, qword [rcx + 0x30]
cmp qword [r8 + 0xa0], 0
jne 0x43fa45
cmp byte [r8 + 0xe4], 0
jne 0x43fa30
mov qword [rsp + 0x90], rdi
nop
call fcn.004669c0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x90]
nop
test rcx, rcx
je 0x43f696
sub rcx, rax
test rcx, rcx
mov edx, 0
cmovl rcx, rdx
jmp 0x43f69f
xor edx, edx
mov rcx, 0xffffffffffffffff
cmp qword [0x00913c40], 0
cmovne rcx, rdx
mov rax, rcx
call fcn.00431820
mov qword [rsp + 0x60], rax
xor ecx, ecx
lea rdx, [0x008c0670]
xchg qword [rdx], rcx
mov rcx, qword [rsp + 0x58]
lea rdx, [0x008c0668]
xchg qword [rdx], rcx
cmp qword [0x00913c40], 0
je 0x43f6ef
cmp qword [rsp + 0x60], 0
jne 0x43f6ef
call fcn.0043e2c0
jmp 0x43f02e
nop
nop
lea rax, [0x008c0678]
call fcn.0040b680
mov rax, qword [rsp + 0x58]
call fcn.004463c0
mov qword [rsp + 0xc0], rax
nop
nop
lea rax, [0x008c0678]
call fcn.0040b8a0
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x43f9a9
call fcn.00444580
mov rcx, qword [rsp + 0x60]
nop dword [rax + rax]
test rcx, rcx
jne 0x43f939
movzx ecx, byte [rsp + 0x3f]
test cl, cl
je 0x43f77a
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rcx + 0x30]
mov byte [rdx + 0xe4], 1
mov edx, 1
lea rsi, [0x008c06bc]
lock xadd dword [rsi], edx
jmp 0x43f02e
mov rcx, qword [rsp + 0xc8]
jmp 0x43f02e
mov qword [rsp + 0xd0], rax
mov ebx, 4
mov ecx, 1
call fcn.0043c0a0
mov rax, qword [rsp + 0xd0]
xor ebx, ebx
call fcn.00457440
mov rax, qword [rsp + 0xd0]
xor ebx, ebx
mov ecx, 1
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
nop
ret
xor ecx, ecx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
nop
nop
mov qword [rsp + 0xd8], rax
nop dword [rax]
test rax, rax
je 0x43f811
mov rcx, qword [rax + 0xa0]
mov qword [rsp + 0x68], rcx
lea rax, [rsp + 0x68]
call fcn.00440440
mov rax, qword [rsp + 0xd8]
mov ebx, 4
mov ecx, 1
call fcn.0043c0a0
cmp byte [0x008c5cf0], 0
je 0x43f84a
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
call fcn.00457440
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
xor ecx, ecx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
xor ebx, ebx
mov ecx, 1
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xd0], rbx
call fcn.00444580
mov rcx, qword [rsp + 0xc8]
mov rcx, qword [rcx + 0x30]
mov byte [rcx + 0xe4], 1
mov ecx, 1
lea rdx, [0x008c06bc]
lock xadd dword [rdx], ecx
mov rcx, qword [rsp + 0xc0]
mov qword [rcx + 0x1230], 3
mov rax, qword [rsp + 0xd0]
mov ebx, 4
mov ecx, 1
call fcn.0043c0a0
cmp byte [0x008c5cf0], 0
je 0x43f91d
mov rax, qword [rsp + 0xd0]
xor ebx, ebx
call fcn.00457440
mov rax, qword [rsp + 0xd0]
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
nop
nop
mov qword [rsp + 0xd8], rcx
test rcx, rcx
je 0x43f954
mov rdx, qword [rcx + 0xa0]
mov qword [rsp + 0x60], rdx
lea rax, [rsp + 0x60]
call fcn.00440440
mov rax, qword [rsp + 0xd8]
mov ebx, 4
mov ecx, 1
call fcn.0043c0a0
cmp byte [0x008c5cf0], 0
je 0x43f98d
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
call fcn.00457440
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
lea rax, [rsp + 0x60]
call fcn.00440440
jmp 0x43f9ed
test rax, rax
je 0x43f9c7
mov edx, dword [0x00913b78]
test edx, edx
setne dl
jmp 0x43f9c9
xor edx, edx
test dl, dl
je 0x43f9ed
mov rdx, qword [0x008c0670]
test rdx, rdx
je 0x43f9de
cmp rdx, rax
jle 0x43f9ed
nop
call fcn.00431720
mov rcx, qword [rsp + 0xc8]
call fcn.0043e2c0
jmp 0x43f02e
xor ebx, ebx
call fcn.00445fe0
mov qword [rsp + 0xa8], rax
nop
nop
lea rax, [0x008c0678]
call fcn.0040b8a0
mov rax, qword [rsp + 0xa8]
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
lea rax, [0x006c2811]
mov ebx, 0x23
nop dword [rax]
call fcn.00437c00
lea rax, [0x006be7fc]
mov ebx, 0x1c
call fcn.00437c00
lea rax, [0x006c143e]
mov ebx, 0x21
call fcn.00437c00
lea rax, [0x006ba6e7]
mov ebx, 0x15
call fcn.00437c00
mov rax, qword [0x00913c68]
nop
test rax, rax
je 0x43fab1
mov rsi, rax
sar rax, 0x13
shl rax, 3
nop
mov r8, qword [rax]
mov rbx, rax
mov rax, rsi
lea r9, [0x00913c68]
lock cmpxchg qword [r9], r8
sete sil
test sil, sil
je 0x43fa78
jmp 0x43faba
lea r9, [0x00913c68]
xor ebx, ebx
test rbx, rbx
jne 0x43fad0
lea rax, [0x009149a0]
call fcn.00422580
jmp 0x43f3ed
mov qword [rdx + 0x1230], 3
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0xd8], rax
mov ebx, 4
mov ecx, 1
call fcn.0043c0a0
cmp byte [0x008c5cf0], 0
je 0x43fb0e
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
call fcn.00457440
mov rax, qword [rsp + 0xd8]
xor ebx, ebx
mov ecx, ebx
mov rbp, qword [rsp + 0xe0]
add rsp, 0xe8
ret
call fcn.004629a0
jmp fcn.0043f000