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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x350
cmp qword [rcx], 0
mov r13, r9
mov r12d, r8d
mov ebp, edx
mov rdi, rcx
mov esi, 0x14
jne 0x140099779
mov rbx, qword [rcx + 0x20]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 8]
test r11, r11
je 0x140099741
lea r9d, [rsi + 4]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 0xf0000000
call r11
test eax, eax
jne 0x140099779
mov rbx, qword [rdi + 0x20]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 8]
test r11, r11
je 0x140099773
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 0xf0000000
call r11
test eax, eax
jne 0x140099779
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, esi
lea rcx, [rsp + 0x151]
mov r8d, 0xff
cmp r12d, ebx
mov byte [rsp + 0x150], 0
cmovb ebx, r12d
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0xff
mov byte [rsp + 0x50], 0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x251]
xor edx, edx
mov r8d, 0xff
mov byte [rsp + 0x250], 0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x150]
mov r8, rbx
mov rdx, r13
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0x50]
mov r8, rbx
mov rdx, r13
call sub.msvcrt.dll_memcpy
test r12d, r12d
je 0x140099817
xor eax, eax
mov rcx, r12
xor byte [rsp + rax + 0x150], 0x5c
xor byte [rsp + rax + 0x50], 0x36
add rax, 1
sub rcx, 1
jne 0x140099800
lea rax, [rsp + 0x250]
lea r8, [rsp + 0x50]
mov r9d, r12d
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x3a0]
mov edx, ebp
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x398]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.140098d50
cmp ebp, 0x8003
jne 0x14009985d
mov esi, InitCommonControls
jmp 0x14009988c
cmp ebp, 0x8002
jne 0x14009986c
mov esi, InitCommonControls
jmp 0x14009988c
cmp ebp, 0x8004
je 0x14009988c
cmp ebp, 0x8009
je 0x14009988c
xor esi, esi
mov eax, 0x40
cmp ebp, 0x800e
cmove esi, eax
cmp qword [rdi], 0
jne 0x1400998fc
mov rbx, qword [rdi + 0x20]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 8]
test r11, r11
je 0x1400998c4
mov r9d, 0x18
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 0xf0000000
call r11
test eax, eax
jne 0x1400998fc
mov rbx, qword [rdi + 0x20]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 8]
test r11, r11
je 0x1400998f6
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov dword [rsp + 0x20], 0xf0000000
call r11
test eax, eax
jne 0x1400998fc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rbx, qword [rdi + 0x20]
mov r13, qword [rdi]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 0x18]
test r11, r11
je 0x1400999d3
lea rax, [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov edx, ebp
mov rcx, r13
mov qword [rsp + 0x20], rax
call r11
test eax, eax
je 0x1400999d3
mov rbx, qword [rdi + 0x20]
mov rbp, qword [rsp + 0x40]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 0x28]
test r11, r11
je 0x1400999b3
lea rdx, [rsp + 0x150]
xor r9d, r9d
mov r8d, r12d
mov rcx, rbp
call r11
test eax, eax
je 0x1400999b3
mov rbx, qword [rdi + 0x20]
mov rbp, qword [rsp + 0x40]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 0x28]
test r11, r11
je 0x1400999b3
lea rdx, [rsp + 0x250]
xor r9d, r9d
mov r8d, esi
mov rcx, rbp
call r11
test eax, eax
je 0x1400999b3
mov rdx, qword [rsp + 0x3a8]
mov rcx, qword [rsp + 0x40]
mov eax, 1
mov qword [rdx], rcx
jmp 0x1400999d5
mov rbx, qword [rdi + 0x20]
mov rsi, qword [rsp + 0x40]
mov rcx, rbx
call fcn.14009d390
mov r11, qword [rbx + 0x30]
test r11, r11
je 0x1400999d3
mov rcx, rsi
call r11
xor eax, eax
lea r11, [rsp + 0x350]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rdi
ret