Function at 0x1400082d0
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x608], rbx
mov rax, qword [0x1402878c8]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov r14, r8
mov qword [rsp + 0x58], r8
mov r12, rcx
call fcn.140022e78
mov rcx, rax
test rax, rax
je 0x140008b53
mov rax, qword [rax]
call qword [rax + 0x18]
mov r13, rax
lea rcx, [rax + 0x18]
mov qword [rsp + 0x78], rcx
movups xmm0, xmmword [str.Thrustmaster_Firmware__.tmf_.tmfAll_Files__._.]
movups xmmword [rbp + 0x430], xmm0
movups xmm1, xmmword [0x1401e20f0]
movups xmmword [rbp + 0x440], xmm1
movups xmm0, xmmword [0x1401e2100]
movups xmmword [rbp + 0x450], xmm0
movups xmm1, xmmword [0x1401e2110]
movups xmmword [rbp + 0x460], xmm1
movups xmm0, xmmword [0x1401e2120]
movups xmmword [rbp + 0x470], xmm0
movups xmm1, xmmword [0x1401e2130]
movups xmmword [rbp + 0x480], xmm1
movups xmm0, xmmword [0x1401e2140]
movups xmmword [rbp + 0x490], xmm0
mov eax, dword [0x1401e2150]
mov dword [rbp + 0x4a0], eax
lea r8, [0x1401e0d78]
mov edx, 0x104
mov rcx, r14
call fcn.1401b25d8
mov ecx, 0x590
call fcn.1400216fc
mov qword [rsp + 0x60], rax
xor edi, edi
test rax, rax
je 0x140008412
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], rdi
lea rcx, [rbp + 0x430]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x1805
xor r9d, r9d
lea r8, [0x1401e2158]
lea edx, [rdi + 1]
mov rcx, rax
call fcn.140023cb4
mov rsi, rax
jmp 0x140008415
mov rsi, rdi
mov r15d, 0xffffffff
test rsi, rsi
je 0x140008b0a
mov rax, qword [r12]
test rax, rax
je 0x14000844c
mov rbx, qword [rax + 0x2c8]
test rbx, rbx
je 0x14000844c
add rbx, 0x208
mov rcx, rsi
call fcn.140024e08
mov qword [rax + 0x50], rbx
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x2e8]
cmp rax, 1
je 0x140008473
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov bl, 1
jmp 0x140008b0c
xor edx, edx
mov r8d, 0x4a8
lea rcx, [rbp - 0x80]
call fcn.1401af400
lea rdx, [rsp + 0x68]
mov rcx, rsi
call fcn.140024e10
mov r8, qword [rax]
mov edx, 0x104
lea rcx, [rbp + 0x188]
call fcn.1401b25d8
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400084c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.140024b70
mov r8, qword [rax]
mov edx, 0x104
lea rcx, [rbp - 0x80]
call fcn.1401b25d8
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140008501
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov edx, 1
mov rcx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov qword [rsp + 0x50], rdi
lea r8, [0x1401e1c7c]
lea rdx, [rbp + 0x188]
lea rcx, [rsp + 0x50]
call fcn.1401b77e4
mov rcx, qword [rsp + 0x50]
test rcx, rcx
jne 0x140008542
lea rdx, str.This_file_cannot_be_open.
jmp 0x140008af5
xor edx, edx
lea r8d, [rdx + 2]
call fcn.1401b7e98
mov rcx, qword [rsp + 0x50]
call fcn.1401b8408
mov dword [rbp + 0x398], eax
movsxd rcx, eax
call fcn.14002174c
mov qword [rbp + 0x390], rax
mov rcx, qword [rsp + 0x50]
test rax, rax
jne 0x140008587
call fcn.1401b78c0
lea rdx, str.ERROR:_Couldnt_load_the_file__Out_of_memory.
jmp 0x140008af5
xor r8d, r8d
xor edx, edx
call fcn.1401b7e98
movsxd r8, dword [rbp + 0x398]
mov r9, qword [rsp + 0x50]
mov edx, 1
mov rcx, qword [rbp + 0x390]
call fcn.1401b7bb8
mov rax, qword [rbp + 0x390]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x39c], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x3ac], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rbp + 0x3bc], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rbp + 0x3cc], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rbp + 0x3dc], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rbp + 0x3ec], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rbp + 0x3fc], xmm0
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rbp + 0x40c], xmm1
mov rcx, qword [rsp + 0x50]
call fcn.1401b78c0
mov r9d, dword [rbp + 0x400]
mov r10d, dword [rbp + 0x3e8]
cmp r10d, 2
jne 0x140008630
cmp r9d, 9
jmp 0x14000863a
cmp r10d, 4
jne 0x14000865e
cmp r9d, 0xd
jne 0x14000865e
movzx ecx, byte [rbp + 0x415]
movzx eax, byte [rbp + 0x414]
shl ecx, 8
or ecx, eax
mov word [rbp + 0x414], 0
mov dword [rbp + 0x404], ecx
mov ecx, edi
mov rsi, qword [r12]
test rsi, rsi
je 0x1400086c4
nop dword [rax]
test ecx, ecx
jne 0x1400086b6
mov rbx, qword [rsi + 0x2c8]
test rbx, rbx
je 0x1400086aa
test ecx, ecx
jne 0x1400086aa
lea rcx, [rbx + 0x208]
lea rdx, [rbp + 0x188]
call fcn.1401b6d68
mov ecx, edi
test eax, eax
sete cl
mov rbx, qword [rbx + 0x4a0]
test rbx, rbx
jne 0x140008680
mov rsi, qword [rsi + 0x2d8]
test rsi, rsi
jne 0x140008670
mov r9d, dword [rbp + 0x400]
mov r10d, dword [rbp + 0x3e8]
mov rsi, qword [r12]
test rsi, rsi
je 0x140008734
nop dword [rax]
test ecx, ecx
jne 0x140008738
mov rbx, qword [rsi + 0x2d0]
test rbx, rbx
je 0x14000871a
mov rbx, qword [rbx + 0x210]
test rbx, rbx
je 0x14000871a
nop dword [rax]
test ecx, ecx
jne 0x14000871a
lea rcx, [rbx + 0x208]
lea rdx, [rbp + 0x188]
call fcn.1401b6d68
mov ecx, edi
test eax, eax
sete cl
mov rbx, qword [rbx + 0x4a0]
test rbx, rbx
jne 0x1400086f0
mov rsi, qword [rsi + 0x2d8]
test rsi, rsi
jne 0x1400086d0
mov r9d, dword [rbp + 0x400]
mov r10d, dword [rbp + 0x3e8]
test ecx, ecx
je 0x14000876d
mov edx, 1
mov rcx, qword [rbp + 0x390]
call fcn.140006de0
mov r9d, 0x30
lea r8, str.Thrustmaster___Firmware_Updater
lea rdx, str.This_firmware_file_and_path_is_already_loaded.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, r14
jmp 0x140008992
mov ebx, edi
mov eax, dword [rbp + 0x398]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r14, eax
mov esi, edi
mov r8, qword [rbp + 0x390]
test eax, eax
jle 0x14000880b
cmp r14d, 8
jb 0x14000880b
xorps xmm1, xmm1
xorps xmm2, xmm2
mov ecx, r14d
and ecx, 0x80000007
jge 0x1400087ac
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, r14d
sub eax, ecx
movsxd rcx, eax
mov rax, rdi
nop word [rax + rax]
movdqu xmm0, xmmword [r8 + rax*4]
paddd xmm0, xmm1
movdqa xmm1, xmm0
movdqu xmm0, xmmword [r8 + rax*4 + 0x10]
paddd xmm0, xmm2
movdqa xmm2, xmm0
add esi, 8
add rax, 8
cmp rax, rcx
jl 0x1400087c0
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ebx, xmm1
mov edx, edi
mov r11d, edi
movsxd rcx, esi
cmp rcx, r14
jge 0x140008851
mov rax, r14
sub rax, rcx
cmp rax, 2
jl 0x140008842
lea rax, [r14 - 1]
nop dword [rax + rax]
add edx, dword [r8 + rcx*4]
add r11d, dword [r8 + rcx*4 + 4]
add rcx, 2
cmp rcx, rax
jl 0x140008830
cmp rcx, r14
jge 0x14000884b
add ebx, dword [r8 + rcx*4]
lea eax, [rdx + r11]
add ebx, eax
cmp dword [rbp + 0x3a4], 0
jne 0x140008ae1
cmp dword [rbp + 0x3a0], 0x80
jb 0x140008ae1
mov eax, dword [rbp + 0x39c]
cmp eax, 0x47465746
je 0x140008886
cmp eax, 0x47465a46
jne 0x140008ae1
test ebx, ebx
jne 0x140008ae1
mov rbx, qword [r12]
mov esi, 9
test rbx, rbx
je 0x1400089aa
test edi, edi
jne 0x14000897f
mov rax, qword [rbx + 0x2c8]
cmp dword [rax + 0x468], r10d
jne 0x14000896b
cmp dword [rax + 0x480], r9d
jne 0x14000896b
mov qword [rbp + 0x420], rax
mov ecx, 0x4a8
call fcn.1400216fc
mov qword [rbx + 0x2c8], rax
lea rcx, [rbp - 0x80]
mov rdx, rsi
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm1, xmmword [rcx + 0x70]
movups xmmword [rax - 0x10], xmm1
lea rcx, [rcx + 0x80]
sub rdx, 1
jne 0x1400088f0
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov rcx, qword [rcx + 0x20]
mov qword [rax + 0x20], rcx
lea edi, [rdx + 1]
mov r9d, dword [rbp + 0x400]
mov r10d, dword [rbp + 0x3e8]
jmp 0x140008972
mov rbx, qword [rbx + 0x2d8]
test rbx, rbx
jne 0x1400088a0
test edi, edi
je 0x1400089aa
xor r8d, r8d
mov rdx, rbx
mov rcx, r12
call fcn.140008f90
mov rcx, qword [rsp + 0x58]
mov edx, 0x104
lea r8, [rbp + 0x188]
call fcn.1401b25d8
mov bl, 1
jmp 0x140008b0c
mov rbx, qword [r12]
test rbx, rbx
je 0x140008ab2
mov rax, qword [rbx + 0x2d0]
test rax, rax
je 0x1400089d5
cmp dword [rax + 0x208], r10d
jne 0x1400089d5
cmp dword [rax + 0x20c], r9d
je 0x1400089de
mov rbx, qword [rbx + 0x2d8]
jmp 0x1400089ae
mov ecx, 0x4a8
call fcn.1400216fc
mov rdx, rax
mov rcx, rax
lea rax, [rbp - 0x80]
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rcx - 0x10], xmm1
lea rax, [rax + 0x80]
sub rsi, 1
jne 0x1400089f2
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx + 0x10], xmm1
mov rax, qword [rax + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [rbx + 0x2d0]
mov rcx, qword [rax + 0x210]
test rcx, rcx
jne 0x140008a80
mov qword [rax + 0x210], rdx
mov r8, qword [rbx + 0x2d0]
jmp 0x140008982
mov rax, qword [rcx + 0x4a0]
test rax, rax
je 0x140008a9f
nop dword [rax]
mov rcx, rax
mov rax, qword [rax + 0x4a0]
test rax, rax
jne 0x140008a90
mov qword [rcx + 0x4a0], rdx
mov r8, qword [rbx + 0x2d0]
jmp 0x140008982
mov r9d, 0x30
lea r8, str.Thrustmaster___Firmware_Updater
lea rdx, str.This_firmware_file_and_path_is_already_loaded.
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov edx, 1
mov rcx, qword [rbp + 0x390]
call fcn.140006de0
jmp 0x140008b0a
mov edx, 1
mov rcx, r8
call fcn.140006de0
lea rdx, str.This_file_is_not_a_valid_thrustmaster_firmware_file.
mov r9d, InitCommonControls
lea r8, str.Thrustmaster___Firmware_Updater
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
xor bl, bl
lock xadd dword [r13 + 0x10], r15d
sub r15d, 1
jg 0x140008b26
mov rcx, qword [r13]
mov r8, qword [rcx]
mov rdx, r13
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
movzx eax, bl
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.1401adf80
mov rbx, qword [rsp + 0x608]
add rsp, 0x5c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400060f0
int3