Function at 0x18001d160
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x180037020]
xor rax, rsp
mov qword [rsp + 0x38], rax
and byte [rcx + 0x4b], 0xf
mov r10, rcx
mov rdx, qword [rcx + 0xb0]
mov ecx, dword [rdx]
sar ecx, 1
shl cl, 4
not cl
and cl, 0x10
or cl, byte [r10 + 0x4b]
mov byte [r10 + 0x4b], cl
mov eax, dword [rdx]
sar eax, 3
shl al, 5
not al
and al, 0x20
or al, cl
mov byte [r10 + 0x4b], al
movzx ecx, byte [rdx]
shl cl, 6
not cl
and cl, 0x40
or cl, al
mov byte [r10 + 0x4b], cl
mov eax, dword [rdx]
sar eax, 2
shl al, 7
not al
and al, 0x80
or al, cl
mov byte [r10 + 0x4b], al
mov rax, qword [r10 + 0xc0]
cmp qword [rax], 0
je 0x18001d1fa
cmp qword [r10 + 0xc8], 0
jne 0x18001d1fa
movabs rax, qword [0x14cc5dea8]
add rax, 0x189c
mov qword [r10 + 0xc8], rax
mov rax, qword [r10 + 0xc8]
test rax, rax
je 0x18001d66e
movzx eax, byte [rax + 1]
mov byte [r10 + 0xab], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 2]
mov byte [r10 + 0xaa], al
movzx eax, byte [rcx + 3]
mov byte [r10 + 0xa9], al
movzx eax, byte [rcx + 4]
mov byte [r10 + 0xa8], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 5]
mov byte [r10 + 0xa7], al
movzx eax, byte [rcx + 6]
mov byte [r10 + 0xa6], al
movzx eax, byte [rcx + 7]
mov byte [r10 + 0xa5], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 8]
mov byte [r10 + 0xa4], al
movzx eax, byte [rcx + 9]
mov byte [r10 + 0xa3], al
movzx eax, byte [rcx + 0xa]
mov byte [r10 + 0xa2], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0xb]
mov byte [r10 + 0xa1], al
movzx eax, byte [rcx + 0xc]
mov byte [r10 + 0xa0], al
movzx eax, byte [rcx + 0xd]
mov byte [r10 + 0x9f], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0xe]
mov byte [r10 + 0x9e], al
movzx eax, byte [rcx + 0xf]
mov byte [r10 + 0x9d], al
movzx eax, byte [rcx + 0x10]
mov byte [r10 + 0x9c], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x11]
mov byte [r10 + 0x9b], al
movzx eax, byte [rcx + 0x12]
mov byte [r10 + 0x9a], al
movzx eax, byte [rcx + 0x13]
mov byte [r10 + 0x99], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x14]
mov byte [r10 + 0x98], al
movzx eax, byte [rcx + 0x15]
mov byte [r10 + 0x97], al
movzx eax, byte [rcx + 0x16]
mov byte [r10 + 0x96], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x17]
mov byte [r10 + 0x95], al
movzx eax, byte [rcx + 0x18]
mov byte [r10 + 0x94], al
movzx eax, byte [rcx + 0x19]
mov byte [r10 + 0x93], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x1a]
mov byte [r10 + 0x92], al
movzx eax, byte [rcx + 0x1b]
mov byte [r10 + 0x91], al
movzx eax, byte [rcx + 0x1c]
mov byte [r10 + 0x90], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x1d]
mov byte [r10 + 0x8f], al
movzx eax, byte [rcx + 0x1e]
mov byte [r10 + 0x8e], al
movzx eax, byte [rcx + 0x1f]
mov byte [r10 + 0x8d], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x20]
mov byte [r10 + 0x8c], al
movzx eax, byte [rcx + 0x21]
mov byte [r10 + 0x8b], al
movzx eax, byte [rcx + 0x22]
mov byte [r10 + 0x8a], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x23]
mov byte [r10 + 0x89], al
movzx eax, byte [rcx + 0x24]
mov byte [r10 + 0x88], al
movzx eax, byte [rcx + 0x25]
mov byte [r10 + 0x87], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x26]
mov byte [r10 + 0x86], al
movzx eax, byte [rcx + 0x27]
mov byte [r10 + 0x85], al
movzx eax, byte [rcx + 0x28]
mov byte [r10 + 0x84], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x29]
mov byte [r10 + 0x83], al
movzx eax, byte [rcx + 0x2a]
mov byte [r10 + 0x82], al
movzx eax, byte [rcx + 0x2b]
mov byte [r10 + 0x81], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x2c]
mov byte [r10 + 0x80], al
movzx eax, byte [rcx + 0x2d]
mov byte [r10 + 0x7f], al
movzx eax, byte [rcx + 0x2e]
mov byte [r10 + 0x7e], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x2f]
mov byte [r10 + 0x7d], al
movzx eax, byte [rcx + 0x30]
mov byte [r10 + 0x7c], al
movzx eax, byte [rcx + 0x31]
mov byte [r10 + 0x7b], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x32]
mov byte [r10 + 0x7a], al
movzx eax, byte [rcx + 0x33]
mov byte [r10 + 0x79], al
movzx eax, byte [rcx + 0x34]
mov byte [r10 + 0x78], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x35]
mov byte [r10 + 0x77], al
movzx eax, byte [rcx + 0x36]
mov byte [r10 + 0x76], al
movzx eax, byte [rcx + 0x37]
mov byte [r10 + 0x75], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x38]
mov byte [r10 + 0x74], al
movzx eax, byte [rcx + 0x39]
mov byte [r10 + 0x73], al
movzx eax, byte [rcx + 0x3a]
mov byte [r10 + 0x72], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x3b]
mov byte [r10 + 0x71], al
movzx eax, byte [rcx + 0x3c]
mov byte [r10 + 0x70], al
movzx eax, byte [rcx + 0x3d]
mov byte [r10 + 0x6f], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x3e]
mov byte [r10 + 0x6e], al
movzx eax, byte [rcx + 0x3f]
mov byte [r10 + 0x6d], al
movzx eax, byte [rcx + 0x40]
mov byte [r10 + 0x6c], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x41]
mov byte [r10 + 0x6b], al
movzx eax, byte [rcx + 0x42]
mov byte [r10 + 0x6a], al
movzx eax, byte [rcx + 0x43]
mov byte [r10 + 0x69], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x44]
mov byte [r10 + 0x68], al
movzx eax, byte [rcx + 0x45]
mov byte [r10 + 0x67], al
movzx eax, byte [rcx + 0x46]
mov byte [r10 + 0x66], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x47]
mov byte [r10 + 0x65], al
movzx eax, byte [rcx + 0x48]
mov byte [r10 + 0x64], al
movzx eax, byte [rcx + 0x49]
mov byte [r10 + 0x63], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x4a]
mov byte [r10 + 0x62], al
movzx eax, byte [rcx + 0x4b]
mov byte [r10 + 0x61], al
movzx eax, byte [rcx + 0x4c]
mov byte [r10 + 0x60], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x4d]
mov byte [r10 + 0x5f], al
movzx eax, byte [rcx + 0x4e]
mov byte [r10 + 0x5e], al
movzx eax, byte [rcx + 0x4f]
mov byte [r10 + 0x5d], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x50]
mov byte [r10 + 0x5c], al
movzx eax, byte [rcx + 0x51]
mov byte [r10 + 0x5b], al
movzx eax, byte [rcx + 0x52]
mov byte [r10 + 0x5a], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x53]
mov byte [r10 + 0x59], al
movzx eax, byte [rcx + 0x54]
mov byte [r10 + 0x58], al
movzx eax, byte [rcx + 0x55]
mov byte [r10 + 0x57], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x56]
mov byte [r10 + 0x56], al
movzx eax, byte [rcx + 0x57]
mov byte [r10 + 0x55], al
movzx eax, byte [rcx + 0x58]
mov byte [r10 + 0x54], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x59]
mov byte [r10 + 0x53], al
movzx eax, byte [rcx + 0x5a]
mov byte [r10 + 0x52], al
movzx eax, byte [rcx + 0x5b]
mov byte [r10 + 0x51], al
mov rcx, qword [r10 + 0xc8]
movzx eax, byte [rcx + 0x5c]
mov byte [r10 + 0x50], al
movzx eax, byte [rcx + 0x5d]
mov byte [r10 + 0x4f], al
movzx eax, byte [rcx + 0x5e]
mov byte [r10 + 0x4e], al
mov rdx, qword [r10 + 0xc8]
movzx eax, byte [rdx + 0x5f]
mov byte [r10 + 0x4d], al
movzx eax, byte [rdx + 0x60]
mov byte [r10 + 0x4c], al
mov rcx, qword [r10 + 0x38]
lea r8, [r10 + 0x48]
xor eax, eax
mov r9d, 0x64
mov qword [rsp + 0x28], rax
mov dl, 3
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WINUSB.DLL_WinUsb_WritePipe]
mov ebx, eax
test eax, eax
jne 0x18001d6d0
lea rcx, str._TLAC__Divaller::SetLED__:_WinUsb_WritePipe_failed._n
call fcn.1800042e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, eax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int____ptr64]
mov rcx, rax
lea rdx, [0x18001d810]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
test ebx, ebx
setne al
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.180021d70
add rsp, 0x40
pop rbx
ret