Function at 0x180055b40
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x1b8]
sub rsp, 0x290
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
mov rax, qword [0x1804e4010]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov r9, rdx
mov r14, rcx
mov qword [rcx + 8], rdx
mov rax, qword [rdx]
lea r8, [rcx + 0x28]
lea rdx, [0x1804d9318]
mov rcx, r9
call qword [rax + 0x38]
mov rcx, qword [r14 + 0x28]
mov rax, qword [rcx]
lea rdx, [r14 + 0x18]
call qword [rax + 0x140]
mov rcx, qword [r14 + 8]
mov rax, qword [rcx]
lea rdx, [rbp + 0x40]
call qword [rax + 0x60]
mov rcx, qword [rbp + 0x70]
mov qword [r14 + 0x20], rcx
lea rdx, [rbp + 0xa0]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp + 0xa8]
sub eax, dword [rbp + 0xa0]
mov dword [0x1804e60a4], eax
mov eax, dword [rbp + 0xac]
sub eax, dword [rbp + 0xa4]
mov dword [0x1804e60a0], eax
mov rdi, qword [0x1804e5ad0]
test rdi, rdi
je 0x180055c0c
inc dword [rdi + 0xf4]
mov ecx, 0x5dd0
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp + 0x90], rax
lea rcx, [rsp + 0x30]
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0x28], rax
xor r12d, r12d
test rax, rax
je 0x180055c42
xor edx, edx
mov rcx, rax
call fcn.18001fa70
jmp 0x180055c45
mov rax, r12
mov qword [0x1804e5ad0], rax
call fcn.180023590
test rdi, rdi
je 0x180055c5f
mov qword [0x1804e5ad0], rdi
jmp 0x180055c66
mov rdi, qword [0x1804e5ad0]
mov r15, qword [r14 + 0x18]
mov rsi, qword [r14 + 0x28]
test rdi, rdi
je 0x180055c79
inc dword [rdi + 0xf4]
mov ecx, 0x78
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x180055cba
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
mov dword [rax + 0x70], 0x1388
mov dword [rax + 0x74], 0x2710
jmp 0x180055cbd
mov rbx, r12
mov qword [rdi + 0xa0], rbx
lea rax, str.imgui_impl_dx11
mov qword [rdi + 0x90], rax
or dword [rdi + 0xc], 8
mov qword [rbp + 0x30], r12
mov qword [rbp + 0x38], r12
mov qword [rbp + 0x28], r12
mov rax, qword [rsi]
lea r8, [rbp + 0x30]
lea rdx, [0x1804d8b48]
mov rcx, rsi
call qword [rax]
test eax, eax
jne 0x180055d3a
mov rcx, qword [rbp + 0x30]
mov rax, qword [rcx]
lea r8, [rbp + 0x38]
lea rdx, [0x1804d8b58]
call qword [rax + 0x30]
test eax, eax
jne 0x180055d3a
mov rcx, qword [rbp + 0x38]
mov rax, qword [rcx]
lea r8, [rbp + 0x28]
lea rdx, [0x1804d8b68]
call qword [rax + 0x30]
test eax, eax
jne 0x180055d3a
mov qword [rbx], rsi
mov qword [rbx + 8], r15
mov rax, qword [rbp + 0x28]
mov qword [rbx + 0x10], rax
mov rcx, qword [rbp + 0x30]
test rcx, rcx
je 0x180055d49
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 0x38]
test rcx, rcx
je 0x180055d58
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rbx + 8]
mov rax, qword [rcx]
call qword [rax + 8]
mov rsi, qword [r14 + 0x20]
mov rdi, qword [0x1804e5ad0]
lea rcx, [rbp + 0x98]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x180055eba
lea rcx, [rbp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x180055eba
mov rax, qword [0x1804e5ad0]
test rax, rax
je 0x180055db2
inc dword [rax + 0xf4]
mov ecx, 0x48
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbx, rax
test rax, rax
je 0x180055ddf
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x40], rax
jmp 0x180055de2
mov rbx, r12
mov qword [rdi + 0x98], rbx
lea rax, [0x1804d8b78]
mov qword [rdi + 0x88], rax
or dword [rdi + 0xc], 6
mov qword [rbx], rsi
mov rax, qword [rbp + 0x98]
mov qword [rbx + 0x20], rax
mov rax, qword [rbp + 0x90]
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x28], 9
mov rax, qword [0x1804e5ad0]
mov rcx, qword [rax + 0x4878]
mov rax, qword [rcx]
mov qword [rax + 0x28], rsi
mov byte [rbx + 0x2d], 1
lea rax, str.xinput1_4.dll
mov qword [rbp], rax
lea rax, str.xinput1_3.dll
mov qword [rbp + 8], rax
lea rax, str.xinput9_1_0.dll
mov qword [rbp + 0x10], rax
lea rax, str.xinput1_2.dll
mov qword [rbp + 0x18], rax
lea rax, str.xinput1_1.dll
mov qword [rbp + 0x20], rax
mov rdi, r12
nop
mov rcx, qword [rbp + rdi*8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
test rax, rax
jne 0x180055e8e
inc rdi
cmp rdi, 5
jl 0x180055e70
jmp 0x180055eba
mov qword [rbx + 0x30], rsi
lea rdx, str.XInputGetCapabilities
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x38], rax
lea rdx, str.XInputGetState
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x40], rax
mov rax, qword [0x1804e5ad0]
mov qword [rax + 0x28], r12
mov qword [rax + 0x20], r12
mov rdi, qword [rax + 0x58]
movups xmm0, xmmword [str.u_rdnSUXRIL]
movups xmmword [rsp + 0x38], xmm0
movsd xmm0, qword [0x1804d9348]
movsd qword [rsp + 0x48], xmm0
mov eax, dword [0x1804d9350]
mov dword [rsp + 0x50], eax
movzx eax, word [0x1804d9354]
mov word [rsp + 0x54], ax
cmp byte [0x1804d9355], 0
je 0x1800560a0
mov r8d, r12d
cmp dword [0x1804e4018], 2
jl 0x180056063
movdqa xmm5, xmmword [0x1804d95c0]
movdqa xmm4, xmmword [0x1804d97d0]
mov eax, 4
movd xmm6, eax
movdqa xmm7, xmmword [str.111166668888::::]
mov eax, 0x1f
movd xmm8, eax
movdqa xmm0, xmmword [0x1804d96c0]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x3c]
mov edx, dword [rsp + 0x60]
nop dword [rax]
movd xmm2, r8d
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm4
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1804d96a0]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 4]
xorps xmm2, xmm0
movd dword [rcx - 4], xmm2
lea eax, [r8 + 4]
movd xmm3, eax
pshufd xmm3, xmm3, 0
paddd xmm3, xmm5
movdqa xmm1, xmm3
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1804d96a0]
packuswb xmm2, xmm2
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx]
xorps xmm2, xmm0
movd dword [rcx], xmm2
add r8d, 8
lea rcx, [rcx + 8]
cmp r8d, 0x18
jl 0x180055f60
cmp r8d, 0x1e
jge 0x1800560a0
movsxd rax, r8d
lea r9, [rsp + 0x38]
add r9, rax
nop
mov eax, 0x5397829d
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x31
movzx eax, r8b
sub al, cl
add al, 0x36
xor byte [r9], al
inc r8d
lea r9, [r9 + 1]
cmp r8d, 0x1e
jl 0x180056070
mov qword [rbp + 0x28], r12
lea r8, [rbp + 0x28]
lea rcx, [rsp + 0x38]
call fcn.1800212d0
mov rbx, rax
test rax, rax
jne 0x1800560c2
mov rax, r12
jmp 0x180056287
xorps xmm2, xmm2
xor eax, eax
movups xmmword [rsp + 0x70], xmm2
movups xmmword [rbp - 0x80], xmm2
movups xmmword [rbp - 0x50], xmm2
movups xmmword [rbp - 0x40], xmm2
mov qword [rbp - 0x10], rax
mov byte [rsp + 0x7c], 1
mov dword [rbp - 0x78], 3
mov dword [rbp - 0x74], 1
mov dword [rbp - 0x4c], 0x7f7fffff
mov dword [rbp - 0x40], 0x3f800000
mov eax, 0xffff
mov word [rbp - 0x3c], ax
movups xmm3, xmmword [rsp + 0x70]
movups xmmword [rbp + 0xb0], xmm3
movups xmm4, xmmword [rbp - 0x80]
movups xmmword [rbp + 0xc0], xmm4
movups xmmword [rbp + 0xd0], xmm2
xorps xmm5, xmm5
movups xmmword [rbp + 0xe0], xmm5
movups xmm6, xmmword [rbp - 0x50]
movups xmmword [rbp + 0xf0], xmm6
movups xmm1, xmmword [rbp - 0x40]
movups xmmword [rbp + 0x100], xmm1
xorps xmm7, xmm7
movups xmmword [rbp + 0x110], xmm7
xorps xmm8, xmm8
movups xmmword [rbp + 0x120], xmm8
movsd xmm9, qword [rbp - 0x10]
movsd qword [rbp + 0x130], xmm9
movdqa xmm0, xmm1
psrldq xmm0, 6
movd eax, xmm0
test al, al
jne 0x180056234
lea rcx, [rsp + 0x38]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x180056190
lea r9, [rsp + 0x38]
add r9, rax
lea rax, [rsp + 0x38]
cmp r9, rax
jbe 0x1800561cc
nop dword [rax + rax]
lea rcx, [r9 - 1]
movzx eax, byte [rcx]
cmp al, 0x2f
je 0x1800561cc
cmp al, 0x5c
je 0x1800561cc
mov r9, rcx
lea rax, [rsp + 0x38]
cmp rcx, rax
ja 0x1800561b0
movsd xmm0, qword [0x1804d9450]
movsd qword [rsp + 0x20], xmm0
lea r8, str._s___.0fpx
mov edx, 0x28
lea rcx, [rbp + 0x106]
call fcn.180020fb0
movsd xmm9, qword [rbp + 0x130]
movups xmm8, xmmword [rbp + 0x120]
movups xmm7, xmmword [rbp + 0x110]
movups xmm1, xmmword [rbp + 0x100]
movups xmm6, xmmword [rbp + 0xf0]
movups xmm5, xmmword [rbp + 0xe0]
movups xmm2, xmmword [rbp + 0xd0]
movups xmm4, xmmword [rbp + 0xc0]
movups xmm3, xmmword [rbp + 0xb0]
movups xmmword [rsp + 0x70], xmm3
movups xmmword [rbp - 0x80], xmm4
movups xmmword [rbp - 0x70], xmm2
movups xmmword [rbp - 0x60], xmm5
movups xmmword [rbp - 0x50], xmm6
movups xmmword [rbp - 0x40], xmm1
movups xmmword [rbp - 0x30], xmm7
movups xmmword [rbp - 0x20], xmm8
movsd qword [rbp - 0x10], xmm9
mov qword [rsp + 0x70], rbx
mov eax, dword [rbp + 0x28]
mov dword [rsp + 0x78], eax
mov dword [rbp - 0x7c], 0x41700000
lea rax, [0x1804d8660]
mov qword [rbp - 0x58], rax
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.180042ff0
mov qword [0x1804e5ae8], rax
mov rbx, qword [0x1804e5ad0]
xor ecx, ecx
call fcn.18003e9c0
movaps xmm9, xmmword [0x1804d9710]
movaps xmm6, xmmword [0x1804d9740]
movaps xmm3, xmmword [0x1804d9750]
movaps xmm4, xmmword [0x1804d9760]
movaps xmm5, xmmword [0x1804d9730]
movaps xmm8, xmmword [0x1804d9780]
movaps xmm7, xmm8
movaps xmm1, xmmword [0x1804d96e0]
movaps xmm0, xmmword [0x1804d9770]
movaps xmm2, xmmword [0x1804d9720]
mov dword [rbx + 0x38a8], 0x3f800000
mov dword [rbx + 0x38ac], 0x3f800000
mov dword [rbx + 0x38b0], 0x3f800000
mov dword [rbx + 0x38b4], 0x3f800000
movups xmmword [rbx + 0x38b8], xmm0
mov dword [rbx + 0x3b98], 0x3f028283
mov dword [rbx + 0x3b9c], 0x3f028283
mov dword [rbx + 0x3ba0], 0x3f078788
mov dword [rbx + 0x3ba4], 0x3ec8c8c9
movups xmmword [rbx + 0x38c8], xmm9
movups xmmword [rbx + 0x38e8], xmm9
movups xmmword [rbx + 0x38f8], xmm2
movups xmmword [rbx + 0x3908], xmm2
movups xmmword [rbx + 0x3918], xmm5
movups xmmword [rbx + 0x3928], xmm3
movups xmmword [rbx + 0x3938], xmm4
movups xmmword [rbx + 0x3948], xmm9
movups xmmword [rbx + 0x3958], xmm9
movups xmmword [rbx + 0x3968], xmm9
movups xmmword [rbx + 0x3978], xmm5
movups xmmword [rbx + 0x3988], xmm5
movups xmmword [rbx + 0x3998], xmm6
movups xmmword [rbx + 0x39a8], xmm3
movups xmmword [rbx + 0x39b8], xmm3
movups xmmword [rbx + 0x39c8], xmm7
movups xmmword [rbx + 0x39d8], xmm1
movups xmmword [rbx + 0x39e8], xmm1
movups xmmword [rbx + 0x39f8], xmm5
movups xmmword [rbx + 0x3a08], xmm4
movups xmmword [rbx + 0x3a18], xmm4
movups xmmword [rbx + 0x3a28], xmm5
movups xmmword [rbx + 0x3a38], xmm3
movups xmmword [rbx + 0x3a48], xmm4
movups xmmword [rbx + 0x3a58], xmm2
movups xmmword [rbx + 0x3a68], xmm2
movups xmmword [rbx + 0x3a78], xmm2
movups xmmword [rbx + 0x3a88], xmm9
movups xmmword [rbx + 0x3a98], xmm5
movups xmmword [rbx + 0x3aa8], xmm6
movups xmmword [rbx + 0x3b08], xmm7
movups xmmword [rbx + 0x3b18], xmm8
movups xmmword [rbx + 0x3b28], xmm7
movups xmmword [rbx + 0x3b38], xmm8
movups xmmword [rbx + 0x3ba8], xmm9
movups xmmword [rbx + 0x3bb8], xmm9
movups xmmword [rbx + 0x3ab8], xmm9
movups xmmword [rbx + 0x3ad8], xmm7
movups xmmword [rbx + 0x3ae8], xmm9
movups xmmword [rbx + 0x3af8], xmm7
movups xmmword [rbx + 0x3ac8], xmm8
mov dword [rbx + 0x3880], 0x3f000000
mov dword [rbx + 0x3884], 0x3f000000
mov dword [rbx + 0x37e8], 0x41000000
mov qword [rbx + 0x37ec], 0x40a00000
mov dword [rbx + 0x3824], 0x40000000
mov dword [rbx + 0x3860], 0x40000000
mov dword [rbx + 0x3858], 0x40000000
mov dword [rbx + 0x3854], 0x420c0000
mov dword [rbx + 0x3800], 0x3f000000
mov dword [rbx + 0x3804], 0x3f000000
mov rcx, r14
call fcn.180056530
lea r8, [0x180055ab0]
mov edx, 0xfffffffc
mov rcx, qword [r14 + 0x20]
call qword [sym.imp.USER32.dll_SetWindowLongPtrA]
mov qword [0x1804e5af0], rax
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.180056ae0
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret