Function at 0x140003a80
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0xca0]
sub rsp, 0xda0
mov rax, qword [0x1402878c8]
xor rax, rsp
mov qword [rbp + 0xc90], rax
movups xmm0, xmmword [str.eSwap_PRO_Controller]
movzx eax, word [0x1401e1040]
mov rbx, rcx
movups xmm1, xmmword [0x1401e1028]
xor edx, edx
mov r8d, LoadRegTypeLib
movups xmmword [rbp - 0x4c], xmm0
lea rcx, [rbp - 0x22]
mov dword [rbp - 0x50], 0xd00e044f
movsd xmm0, qword [0x1401e1038]
movsd qword [rbp - 0x2c], xmm0
movups xmmword [rbp - 0x3c], xmm1
mov word [rbp - 0x24], ax
call fcn.1401af400
movups xmm0, xmmword [str.eSwap_PRO_OLED_Controller]
mov eax, dword [reloc.OLEAUT32.dll_VarBstrFromDisp]
xor edx, edx
movups xmm1, xmmword [0x1401e1058]
mov r8d, 0x94
lea rcx, [rbp + 0xb6]
movups xmmword [rbp + 0x82], xmm0
mov byte [rbp + 0x7c], 0
movups xmm0, xmmword [0x1401e1068]
mov dword [rbp + 0x7e], 0xd00f044f
movups xmmword [rbp + 0x92], xmm1
mov dword [rbp + 0xb2], eax
movups xmmword [rbp + 0xa2], xmm0
call fcn.1401af400
movups xmm0, xmmword [str.eSwap_X_PRO_Controller]
mov eax, dword [0x1401e10a8]
lea rcx, [rbp + 0x17e]
movups xmm1, xmmword [0x1401e1090]
xor edx, edx
mov dword [rbp + 0x178], eax
movaps xmmword [rbp + 0x150], xmm0
mov r8d, 0x9a
movsd xmm0, qword [0x1401e10a0]
movzx eax, word [0x1401e10ac]
movsd qword [rbp + 0x170], xmm0
mov byte [rbp + 0x14a], 0
mov dword [rbp + 0x14c], 0xd012044f
movaps xmmword [rbp + 0x160], xmm1
mov word [rbp + 0x17c], ax
call fcn.1401af400
movups xmm0, xmmword [str.T_LCM_Pedals__main_]
xor edx, edx
mov r8d, LoadRegTypeLib
movups xmm1, xmmword [0x1401e10c0]
lea rcx, [rbp + 0x246]
mov byte [rbp + 0x218], 0
movups xmmword [rbp + 0x21e], xmm0
mov dword [rbp + 0x21a], 0xb371044f
movsd xmm0, qword [0x1401e10d0]
movsd qword [rbp + 0x23e], xmm0
movups xmmword [rbp + 0x22e], xmm1
call fcn.1401af400
movsd xmm0, qword [str.T80P]
lea rcx, [rbp + 0x2f6]
movzx eax, word [0x1401e10e0]
xor edx, edx
mov r8d, 0xbe
movsd qword [rbp + 0x2ec], xmm0
mov word [rbp + 0x2f4], ax
mov byte [rbp + 0x2e6], 0
mov dword [rbp + 0x2e8], 0xb668044f
call fcn.1401af400
movups xmm0, xmmword [str.TA320_Joystick]
movzx edi, word [0x1401e1104]
lea rcx, [rbp + 0x3d8]
mov esi, dword [0x1401e1100]
xor edx, edx
movups xmmword [rbp + 0x3ba], xmm0
mov r8d, 0xaa
mov byte [rbp + 0x3b4], 1
movsd xmm0, qword [0x1401e10f8]
movsd qword [rbp + 0x3ca], xmm0
mov dword [rbp + 0x3b6], 0x405044f
mov dword [rbp + 0x3d2], esi
mov word [rbp + 0x3d6], di
call fcn.1401af400
mov byte [rbp + 0x482], 0
movups xmm0, xmmword [str.TA320_Joystick]
xor edx, edx
mov dword [rbp + 0x484], 0x406044f
mov r8d, 0xaa
mov dword [rbp + 0x4a0], esi
movups xmmword [rbp + 0x488], xmm0
lea rcx, [rbp + 0x4a6]
mov word [rbp + 0x4a4], di
movsd xmm0, qword [0x1401e10f8]
movsd qword [rbp + 0x498], xmm0
call fcn.1401af400
movups xmm0, xmmword [str.TA320_Quadrant]
movzx edi, word [0x1401e1124]
lea rcx, [rbp + 0x574]
mov esi, dword [0x1401e1120]
xor edx, edx
movups xmmword [rbp + 0x556], xmm0
mov r8d, 0xaa
mov byte [rbp + 0x550], 0
movsd xmm0, qword [0x1401e1118]
movsd qword [rbp + 0x566], xmm0
mov dword [rbp + 0x552], 0x407044f
mov dword [rbp + 0x56e], esi
mov word [rbp + 0x572], di
call fcn.1401af400
movups xmm0, xmmword [str.TA320_Quadrant]
xor edx, edx
mov byte [rbp + 0x61e], 0
mov r8d, 0xaa
mov dword [rbp + 0x620], 0x408044f
movups xmmword [rbp + 0x624], xmm0
lea rcx, [rbp + 0x642]
mov dword [rbp + 0x63c], esi
movsd xmm0, qword [0x1401e1118]
movsd qword [rbp + 0x634], xmm0
mov word [rbp + 0x640], di
call fcn.1401af400
movups xmm0, xmmword [str.T.16000M]
movzx eax, word [0x1401e1138]
lea rcx, [rbp + 0x704]
xor edx, edx
mov byte [rbp + 0x6ec], 0
mov r8d, VariantTimeToSystemTime
mov dword [rbp + 0x6ee], 0xb10a044f
movups xmmword [rbp + 0x6f2], xmm0
mov word [rbp + 0x702], ax
call fcn.1401af400
mov eax, dword [0x1401e1148]
lea rcx, [rbp + 0x7ce]
movsd xmm0, qword [str.T248PS]
xor edx, edx
mov dword [rbp + 0x7c8], eax
mov r8d, 0xba
movzx eax, word [0x1401e114c]
mov word [rbp + 0x7cc], ax
mov byte [rbp + 0x7ba], 0
mov dword [rbp + 0x7bc], 0xb69b044f
movsd qword [rbp + 0x7c0], xmm0
call fcn.1401af400
movsd xmm0, qword [str.T248X]
lea rcx, [rbp + 0x89a]
mov eax, dword [0x1401e1158]
xor edx, edx
mov r8d, 0xbc
movsd qword [rbp + 0x88e], xmm0
mov byte [rbp + 0x888], 0
mov dword [rbp + 0x88a], 0xb69a044f
mov dword [rbp + 0x896], eax
call fcn.1401af400
mov eax, dword [0x1401e1168]
lea rcx, [rbp + 0x96a]
movsd xmm0, qword [str.SF1000]
xor edx, edx
mov dword [rbp + 0x964], eax
mov r8d, 0xba
movzx eax, word [0x1401e116c]
mov word [rbp + 0x968], ax
mov byte [rbp + 0x956], 0
mov dword [rbp + 0x958], 0x1002044f
movsd qword [rbp + 0x95c], xmm0
call fcn.1401af400
movups xmm0, xmmword [str.TCA_Yoke_Boeing]
xor edx, edx
mov r8d, 0xa8
movups xmm1, xmmword [0x1401e1180]
lea rcx, [rbp + 0xa4a]
mov byte [rbp + 0xa24], 0
movups xmmword [rbp + 0xa2a], xmm0
mov dword [rbp + 0xa26], 0x409044f
movups xmmword [rbp + 0xa3a], xmm1
call fcn.1401af400
movups xmm0, xmmword [str.TCA_Quadrant_Boeing]
xor edx, edx
mov byte [rbp + 0xaf2], 0
mov r8d, LoadRegTypeLib
mov dword [rbp + 0xaf4], 0x40a044f
movups xmmword [rbp + 0xaf8], xmm0
lea rcx, [rbp + 0xb20]
movups xmm0, xmmword [0x1401e11a0]
movups xmmword [rbp + 0xb08], xmm0
movsd xmm0, qword [0x1401e11b0]
movsd qword [rbp + 0xb18], xmm0
call fcn.1401af400
movups xmm0, xmmword [str.TCA_Quadrant_Boeing]
xor edx, edx
mov byte [rbp + 0xbc0], 0
mov r8d, LoadRegTypeLib
mov dword [rbp + 0xbc2], 0x40b044f
movups xmmword [rbp + 0xbc6], xmm0
lea rcx, [rbp + 0xbee]
movups xmm0, xmmword [0x1401e11a0]
movups xmmword [rbp + 0xbd6], xmm0
movsd xmm0, qword [0x1401e11b0]
movsd qword [rbp + 0xbe6], xmm0
call fcn.1401af400
xor edi, edi
mov byte [rbp + 0xc8e], 0
mov r15d, edi
mov dword [rsp + 0x54], edi
call qword [sym.imp.WINMM.dll_timeGetTime]
cmp qword [rbx + 0x90], rdi
jne 0x140003fcc
xor eax, eax
jmp 0x1400046f5
movups xmm0, xmmword [0x1401e0d68]
mov qword [rsp + 0xdd8], r12
lea rcx, [rbp - 0x60]
mov r9d, 0x12
mov qword [rsp + 0xde0], r13
xor r8d, r8d
xor edx, edx
movups xmmword [rbp - 0x60], xmm0
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
xor r9d, r9d
mov dword [rsp + 0x64], edi
mov rsi, rax
mov qword [rsp + 0x78], rax
xor eax, eax
mov dword [rbx + 0xb0], edi
mov qword [rbp - 0x80], rax
lea r8, [rbp - 0x60]
mov qword [rbp - 0x78], rax
xor edx, edx
mov qword [rbp - 0x70], rax
mov rcx, rsi
mov qword [rbp - 0x68], rax
mov r14d, edi
lea rax, [rbp - 0x80]
mov dword [rbp - 0x80], 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
je 0x1400046d9
mov r12d, 0xffffffff
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rbp - 0x80]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
mov ecx, dword [rsp + 0x58]
call fcn.14002174c
mov qword [rsp + 0x28], rdi
lea rdx, [rbp - 0x80]
mov r8, rax
mov qword [rsp + 0x70], rax
mov rcx, rsi
mov qword [rsp + 0x20], rdi
mov dword [rax], 8
mov r13, rax
mov r9d, dword [rsp + 0x58]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailW]
test eax, eax
je 0x14000471b
mov dword [rsp + 0x48], r12d
lea rax, [rsp + 0x40]
mov dword [rsp + 0x5c], r12d
lea r9, [rsp + 0x68]
mov qword [rsp + 0x30], rdi
lea r12, [r13 + 4]
mov rcx, r12
mov qword [rsp + 0x28], rdi
lea r8, [rsp + 0x44]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x4c]
call qword [rbx + InitCommonControls]
mov rdi, rax
xor eax, eax
cmp dword [rsp + 0x40], 0x1001
mov qword [rsp + 0x68], rax
jne 0x140004680
cmp dword [rsp + 0x4c], 0x483
jne 0x14000431e
cmp dword [rsp + 0x44], 0xdf11
jne 0x14000431e
xor r9d, r9d
mov dword [rsp + 0x50], eax
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [rbx + 0x80]
mov ecx, dword [rsp + 0x50]
test eax, eax
mov eax, 0xffffffff
cmove ecx, eax
xor r8d, r8d
mov dword [rsp + 0x50], ecx
xor edx, edx
mov rcx, rdi
call qword [rbx + 0x18]
xor edi, edi
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x50], edi
je 0x140004682
movsxd rax, dword [rbx + 0xb0]
inc r15d
mov rcx, qword [rbx + 0xa8]
mov r8, r12
imul rdx, rax, 0x334
movzx eax, word [rsp + 0x4c]
mov dword [rsp + 0x54], r15d
mov word [rdx + rcx], ax
movsxd rax, dword [rbx + 0xb0]
mov rcx, qword [rbx + 0xa8]
imul rdx, rax, 0x334
movzx eax, word [rsp + 0x44]
mov word [rdx + rcx + 2], ax
mov edx, 0x104
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov dword [rcx + rax + 0x324], 0xffffffff
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov dword [rcx + rax + 0x328], edi
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
add rax, 0x54
add rcx, rax
call fcn.1401b25d8
movsxd rax, dword [rbx + 0xb0]
lea r8, str.UNKNOWN_DFU_BOOT_READ_PROTECT_ON
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
lea edx, [rdi + 0x64]
add rax, 0x25c
add rcx, rax
call fcn.1401b25d8
movsxd rax, dword [rbx + 0xb0]
lea rcx, [rbp - 0x4e]
imul rdx, rax, 0x334
mov r14d, edi
add rdx, qword [rbx + 0xa8]
movzx r8d, word [rdx]
cmp word [rcx - 2], r8w
jne 0x140004271
movzx eax, word [rdx + 2]
cmp word [rcx], ax
je 0x140004281
inc r14d
add rcx, 0xce
cmp r14d, 0x10
jb 0x140004261
cmp r14d, 0x10
jae 0x1400042a9
movsxd rax, r14d
lea r8, [rbp - 0x4c]
imul rcx, rax, 0xce
add r8, rcx
lea rcx, [rdx + 0x25c]
mov edx, 0x64
call fcn.1401b25d8
movsxd rax, dword [rbx + 0xb0]
lea r8, [0x1401e0d78]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov edx, 0x28
add rax, 4
add rcx, rax
call fcn.1401b25d8
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov byte [rcx + rax + 0x32c], 1
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov dword [rcx + rax + 0x330], 1
inc dword [rbx + 0xb0]
jmp 0x140004682
xor r9d, r9d
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x40]
mov rcx, rdi
lea rdx, [rsp + 0x48]
call qword [rbx + 0x20]
xor r9d, r9d
mov qword [rsp + 0x20], 0
lea r8, [rsp + 0x40]
mov rcx, rdi
lea rdx, [rsp + 0x5c]
call qword [rbx + 0x28]
xor r9d, r9d
lea rdx, [rsp + 0x60]
xor r8d, r8d
mov rcx, rdi
call qword [rbx + 0x30]
cmp dword [rsp + 0x4c], 0x44f
mov dword [rsp + 0x40], eax
jne 0x140004388
mov eax, dword [rsp + 0x44]
add eax, 0xffff4966
cmp eax, 1
ja 0x140004388
movzx eax, word [rsp + 0x48]
mov dword [rsp + 0x48], eax
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [rbx + 0x18]
mov ecx, dword [rsp + 0x44]
xor edi, edi
mov r15d, edi
mov edx, dword [rsp + 0x4c]
mov dword [rsp + 0x40], eax
cmp dword [rsp + 0x48], edi
jne 0x1400043be
cmp edx, 0x44f
jne 0x1400043be
cmp ecx, 0xb10a
je 0x140004679
mov r13d, 0x40a
lea rsi, [rbp - 0x50]
lea r14d, [r13 - 5]
nop dword [rax]
cmp byte [rsi + 0xcc], 0
je 0x1400043f1
cmp byte [0x14028d1e8], 0
je 0x140004656
cmp dword [rsp + 0x60], 1
je 0x140004656
movzx eax, word [rsi]
cmp eax, edx
jne 0x140004656
movzx eax, word [rsi + 2]
cmp eax, ecx
jne 0x140004656
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov word [rcx + rax], dx
mov edx, dword [rsp + 0x44]
movsxd rax, dword [rbx + 0xb0]
mov r8, qword [rbx + 0xa8]
cmp edx, 0x406
jne 0x140004457
imul rcx, rax, 0x334
mov word [rcx + r8 + 2], r14w
lea rcx, str.DFU_PID_switch_from_0x406_to_0x0405__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400044aa
cmp edx, 0x408
jne 0x140004480
imul rcx, rax, 0x334
mov eax, 0x407
mov word [rcx + r8 + 2], ax
lea rcx, str.DFU_PID_switch_from_0x408_to_0x0407__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400044aa
imul rax, rax, 0x334
cmp edx, 0x40b
jne 0x1400044a4
lea rcx, str.DFU_PID_switch_from_0x40B_to_0x040A__n
mov word [rax + r8 + 2], r13w
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400044aa
mov word [rax + r8 + 2], dx
movsxd rax, dword [rbx + 0xb0]
mov r8, r12
mov rcx, qword [rbx + 0xa8]
imul rdx, rax, 0x334
mov eax, dword [rsp + 0x48]
mov dword [rdx + rcx + 0x324], eax
movsxd rax, dword [rbx + 0xb0]
mov rcx, qword [rbx + 0xa8]
imul rdx, rax, 0x334
mov eax, dword [rsp + 0x5c]
mov dword [rdx + rcx + 0x328], eax
mov edx, 0x104
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
add rax, 0x54
add rcx, rax
call fcn.1401b25d8
movsxd rax, r15d
lea r8, [rbp - 0x4c]
imul rcx, rax, 0xce
movsxd rax, dword [rbx + 0xb0]
mov edx, 0x64
add r8, rcx
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
add rax, 0x25c
add rcx, rax
call fcn.1401b25d8
cmp dword [rsp + 0x60], 2
movsxd rax, dword [rbx + 0xb0]
sete dl
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov byte [rcx + rax + 0x32c], dl
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov dword [rcx + rax + 0x330], edi
mov eax, 0xcccccccd
mov rdi, qword [rsp + 0x68]
mov ecx, edi
mov r11, rdi
shr r11, 0x20
mul r11d
mov eax, 0x4f8b588f
mov r10d, edx
mul edi
shr r10d, 3
mov eax, 0x2f684bdb
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x10
mul ecx
mov r8d, ecx
mov r9d, ecx
sub r8d, edx
shr r8d, 1
add r8d, edx
shr r8d, 5
imul eax, r8d, 0x36
sub r9d, eax
lea eax, [r10 + r10*4]
add eax, eax
sub r11d, eax
mov eax, 0x431bde83
mul r10d
shr edx, 0x12
imul eax, edx, 0xf4240
sub r10d, eax
imul eax, ecx, 0x186a0
sub edi, eax
mov eax, 0x51eb851f
mul r8d
shr edx, 5
imul eax, edx, 0x64
sub r8d, eax
movsxd rax, dword [rbx + 0xb0]
imul rcx, rax, 0x334
mov rax, qword [rbx + 0xa8]
mov dword [rsp + 0x30], r11d
lea rdx, str._.2d__.2d__.5d__.6d__.1d
add rax, 4
mov dword [rsp + 0x28], r10d
add rcx, rax
mov dword [rsp + 0x20], edi
call fcn.1400023e0
inc dword [rbx + 0xb0]
mov ecx, dword [rsp + 0x44]
xor edi, edi
mov edx, dword [rsp + 0x4c]
inc r15d
add rsi, 0xce
cmp r15d, 0x10
jb 0x1400043d0
mov r14d, dword [rsp + 0x64]
mov r13, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
mov r15d, dword [rsp + 0x54]
jmp 0x140004682
xor edi, edi
mov edx, 8
mov rcx, r13
call fcn.140006de0
xor eax, eax
lea r8, [rbp - 0x60]
mov qword [rbp - 0x80], rax
inc r14d
mov qword [rbp - 0x78], rax
mov r9d, r14d
mov qword [rbp - 0x70], rax
xor edx, edx
mov qword [rbp - 0x68], rax
mov rcx, rsi
lea rax, [rbp - 0x80]
mov dword [rsp + 0x64], r14d
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x80], 0x20
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
mov r12d, 0xffffffff
test eax, eax
jne 0x140004053
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov r12, qword [rsp + 0xdd8]
mov eax, r15d
mov r13, qword [rsp + 0xde0]
mov rcx, qword [rbp + 0xc90]
xor rcx, rsp
call fcn.1401adf80
mov rbx, qword [rsp + 0xde8]
add rsp, 0xda0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
mov edx, 8
mov rcx, r13
call fcn.140006de0
jmp 0x1400046e2