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

Disassembly:
lea r12, [rsp - 0x500]
cmp r12, qword [r14 + 0x10]
jbe 0x4354c0
sub rsp, 0x580
mov qword [rsp + 0x578], rbp
lea rbp, [rsp + 0x578]
cmp qword [r14 + 0x30], rax
je 0x4354ae
mov rcx, rax
xor eax, eax
mov edx, 1
lock cmpxchg dword [rcx + 0x330], edx
sete dl
test dl, dl
je 0x435435
mov qword [rsp + 0x570], rcx
lea rax, [rcx + 0x308]
mov qword [rsp + 0x568], rax
call fcn.0040b060
mov rcx, qword [rsp + 0x570]
cmp qword [rcx + 0x310], 0
jne 0x4350d8
mov rax, qword [rsp + 0x568]
call fcn.0040b280
xor ecx, ecx
mov rdx, qword [rsp + 0x570]
xchg dword [rdx + 0x330], ecx
mov ecx, 1
lock xadd dword [rdx + 0x300], ecx
mov rbp, qword [rsp + 0x578]
add rsp, 0x580
ret
mov qword [rsp + 0x48], 0
mov rax, qword [sym.imp.KERNEL32.DLL_DuplicateHandle]
mov rdx, qword [rcx + 0x310]
lea rbx, [rsp + 0x48]
mov qword [rsp], rax
mov qword [rsp + 8], 0xffffffffffffffff
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], 0xffffffffffffffff
mov qword [rsp + 0x20], rbx
movups xmmword [rsp + 0x28], xmm15
mov qword [rsp + 0x38], 2
call fcn.00434c20
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
cmp qword [rsp + 0x40], 0
je 0x435452
mov rax, qword [rsp + 0x568]
call fcn.0040b280
movups xmmword [rsp + 0x79], xmm15
lea rdi, [rsp + 0x88]
mov ecx, 0x9a
xor eax, eax
rep stosq qword [rdi], rax
lea rcx, [rsp + 0x88]
and rcx, 0xfffffffffffffff0
mov qword [rsp + 0x560], rcx
mov dword [rcx + 0x30], 0x100001
lea rax, [0x008381a8]
call fcn.0040b060
mov rcx, qword [rsp + 0x48]
mov rdx, qword [sym.imp.KERNEL32.DLL_SuspendThread]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
call fcn.00434860
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x10]
cmp ecx, 0xffffffff
je 0x4353ce
mov rax, qword [rsp + 0x48]
mov rcx, qword [sym.imp.KERNEL32.DLL_GetThreadContext]
mov rdx, qword [rsp + 0x560]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rdx
call fcn.00434900
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
lea rax, [0x008381a8]
call fcn.0040b280
mov rax, qword [rsp + 0x560]
nop
call fcn.004073c0
mov rbx, rax
mov rax, qword [rsp + 0x570]
call fcn.00434ee0
mov qword [rsp + 0x558], rax
nop dword [rax]
test rax, rax
jne 0x435249
xor ecx, ecx
jmp 0x435260
call fcn.00437ee0
mov ecx, eax
mov rax, qword [rsp + 0x558]
nop dword [rax + rax]
test cl, cl
je 0x435345
mov rax, qword [rsp + 0x560]
call fcn.004073a0
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x560]
call fcn.004073c0
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x560]
call fcn.004073e0
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
mov rdi, rax
mov rax, qword [rsp + 0x558]
call fcn.00437f80
test al, al
je 0x435345
mov qword [rsp + 0x58], rbx
lea rcx, [0x00462640]
mov qword [rsp + 0x50], rcx
mov rax, qword [rsp + 0x560]
call fcn.004073c0
lea rbx, [rax - 8]
mov rcx, rbx
mov rdx, qword [rsp + 0x58]
mov qword [rbx], rdx
mov rax, qword [rsp + 0x560]
mov rbx, rcx
call fcn.00407420
mov rax, qword [rsp + 0x560]
mov rbx, qword [rsp + 0x50]
call fcn.00407400
mov rcx, qword [rsp + 0x48]
mov rdx, qword [sym.imp.KERNEL32.DLL_SetThreadContext]
mov rbx, qword [rsp + 0x560]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
call fcn.00434900
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
xor eax, eax
mov rcx, qword [rsp + 0x570]
xchg dword [rcx + 0x330], eax
mov eax, 1
lock xadd dword [rcx + 0x300], eax
mov rax, qword [rsp + 0x48]
mov rcx, qword [sym.imp.KERNEL32.DLL_ResumeThread]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00434860
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rax, qword [rsp + 0x48]
mov rcx, qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
call fcn.00434860
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov rbp, qword [rsp + 0x578]
add rsp, 0x580
ret
lea rax, [0x008381a8]
call fcn.0040b280
mov rcx, qword [rsp + 0x48]
mov rdx, qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
call fcn.00434860
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
xor ecx, ecx
mov rdx, qword [rsp + 0x570]
xchg dword [rdx + 0x330], ecx
mov ecx, 1
lock xadd dword [rdx + 0x300], ecx
mov rbp, qword [rsp + 0x578]
add rsp, 0x580
ret
mov eax, 1
lock xadd dword [rcx + 0x300], eax
mov rbp, qword [rsp + 0x578]
add rsp, 0x580
ret
call fcn.00462ac0
xorps xmm15, xmm15
mov r14, qword gs:[0x28]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x60], rax
call fcn.00438460
lea rax, [0x00655b68]
mov ebx, 0x30
call fcn.00438d00
mov rax, qword [rsp + 0x60]
call fcn.00438a40
call fcn.004386a0
call fcn.004384e0
lea rax, [0x00653767]
mov ebx, 0x28
call fcn.00436d80
lea rax, [0x00646be5]
mov ebx, 0xc
call fcn.00436d80
nop
mov qword [rsp + 8], rax
call fcn.0045f280
mov rax, qword [rsp + 8]
jmp fcn.00435020