Function at 0x140074b6c
Capabilities:
Read file on windows

Disassembly:
push rdi
mov eax, 0x4660
call fcn.140001a50
sub rsp, rax
mov qword [rsp + 0x190], 0xfffffffffffffffe
mov qword [rsp + 0x4680], rbx
mov qword [rsp + 0x4688], rsi
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x4650], rax
mov qword [rsp + 0x48], rdx
mov rbx, rcx
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x120], rdx
mov byte [rcx + 0x99], 1
lea rdx, [rcx + 0x88]
or r9d, 0xffffffff
xor r8d, r8d
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
xor edi, edi
test eax, eax
je 0x140075485
dec eax
jne 0x14007548c
mov byte [rbx + 0x99], dil
cmp byte [rbx + 0x9a8], dil
je 0x140074de7
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x1b0]
call qword [sym.imp.msvcrt.dll_memset]
lea rsi, vtable.micro::utils::QString.0
mov qword [rsp + 0x130], rsi
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x138], rcx
test rcx, rcx
je 0x140074c4a
lock inc dword [rcx - 0xc]
lea r8, [0x140107520]
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x180]
call fcn.140008a10
mov qword [rsp + 0xb8], rsi
mov rcx, qword [rax + 8]
mov qword [rsp + 0xc0], rcx
test rcx, rcx
je 0x140074c83
lock inc dword [rcx - 0xc]
or qword [rsp + 0xc8], 0xffffffffffffffff
mov dword [rsp + 0xd0], reloc.SHELL32.dll_ILClone
mov qword [rsp + 0x180], rsi
lea rcx, [rsp + 0x180]
call fcn.1400e712c
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0xb8]
call fcn.1400edf64
test al, al
je 0x140074dbc
mov eax, dword [rsp + 0x1b0]
shr eax, 4
test al, 1
je 0x140074cac
mov qword [rsp + 0x150], rsi
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x158], rcx
test rcx, rcx
je 0x140074cf9
lock inc dword [rcx - 0xc]
lea r8, [rsp + 0x1dc]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x160]
call fcn.140008a10
mov rdx, rax
lea rcx, [rsp + 0xa8]
call fcn.1400ea694
nop
mov qword [rsp + 0x160], rsi
lea rcx, [rsp + 0x160]
call fcn.1400e712c
mov edx, 0x5c
lea rcx, [rsp + 0xa8]
call fcn.1400ea6c0
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x198]
call fcn.1400ea694
mov rdx, rax
mov rcx, rbx
call fcn.140074b6c
nop
mov qword [rsp + 0xa8], rsi
lea rcx, [rsp + 0xa8]
test al, al
jne 0x140074ca7
call fcn.1400e712c
nop
mov rcx, qword [rsp + 0xc8]
cmp rcx, 0xffffffffffffffff
je 0x140074da1
call qword [sym.imp.KERNEL32.DLL_FindClose]
mov qword [rsp + 0xb8], rsi
lea rcx, [rsp + 0xb8]
call fcn.1400e712c
nop
jmp 0x140075493
mov rcx, qword [rsp + 0xc8]
cmp rcx, 0xffffffffffffffff
je 0x140074dd0
call qword [sym.imp.KERNEL32.DLL_FindClose]
mov qword [rsp + 0xb8], rsi
lea rcx, [rsp + 0xb8]
call fcn.1400e712c
jmp 0x140074dee
lea rsi, vtable.micro::utils::QString.0
mov byte [rbx + 0x99], 1
lea rdx, [rbx + 0x88]
or r9d, 0xffffffff
xor r8d, r8d
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
test eax, eax
je 0x140075479
dec eax
jne 0x140074db7
mov byte [rbx + 0x99], dil
lea rdx, [0x14012da68]
mov rax, qword [rsp + 0x48]
cmp qword [rax + 8], rdi
cmovne rdx, qword [rax + 8]
lea rcx, [rbx + 0xb38]
mov rax, qword [rcx]
call qword [rax + 0x350]
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rdi
mov edx, edi
mov dword [rsp + 0x34], edx
mov rax, qword [rbx + 0x8e8]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140074e72
mov r8d, dword [rax - 8]
jmp 0x140074e75
mov r8d, edi
mov dword [rsp + 0x30], r8d
test r8d, r8d
jne 0x140074e83
mov eax, edi
jmp 0x140074ef7
mov ecx, edi
mov qword [rsp + 0x40], rcx
test edx, edx
jle 0x140074e9e
mov ecx, edx
mov qword [rsp + 0x40], rcx
lea rax, [rax + rcx*2]
mov qword [rsp + 0x68], rax
cmp ecx, r8d
jge 0x140074e7f
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.1400e7be0
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x40]
mov edx, dword [rsp + 0x30]
cmp word [rax], 0x3b
je 0x140074edd
cmp word [rax], di
je 0x140074edd
inc ecx
mov qword [rsp + 0x40], rcx
add rax, 2
cmp ecx, edx
jle 0x140074ec1
jmp 0x140074e7f
mov edx, ecx
sub edx, dword [rsp + 0x34]
lea rcx, [rsp + 0x98]
call fcn.1400e71c4
mov rax, qword [rsp + 0x40]
inc eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x34], eax
test eax, eax
jle 0x14007544b
xor edx, edx
mov r8d, 0x250
lea rcx, [rsp + 0x400]
call qword [sym.imp.msvcrt.dll_memset]
lea r8, [rsp + 0x98]
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x170]
call fcn.140011d2c
mov qword [rsp + 0xd8], rsi
mov rcx, qword [rax + 8]
mov qword [rsp + 0xe0], rcx
test rcx, rcx
je 0x140074f54
lock inc dword [rcx - 0xc]
or qword [rsp + 0xe8], 0xffffffffffffffff
mov dword [rsp + 0xf0], reloc.SHELL32.dll_ILClone
mov qword [rsp + 0x170], rsi
lea rcx, [rsp + 0x170]
call fcn.1400e712c
lea rdx, [rsp + 0x400]
lea rcx, [rsp + 0xd8]
call fcn.1400edf64
test al, al
je 0x140075419
mov byte [rbx + 0x99], 1
lea rdx, [rbx + 0x88]
or r9d, 0xffffffff
xor r8d, r8d
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
test eax, eax
je 0x1400753e7
dec eax
jne 0x1400753ee
mov byte [rbx + 0x99], dil
mov eax, dword [rsp + 0x400]
shr eax, 4
test al, 1
jne 0x140074f7d
mov qword [rsp + 0x140], rsi
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x148], rcx
test rcx, rcx
je 0x140075000
lock inc dword [rcx - 0xc]
lea r8, [rsp + 0x42c]
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x58]
call fcn.140008a10
nop
cmp byte [rbx + 0xa30], dil
je 0x1400753ad
mov rax, qword [rbx + 0x8f8]
test rax, rax
je 0x1400753ad
cmp dword [rax - 8], edi
je 0x1400753ad
lea rax, vtable.micro::files::QFile.0
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdi
lea rdx, [0x14012da68]
cmp qword [rsp + 0x60], rdi
cmovne rdx, qword [rsp + 0x60]
xor r8d, r8d
lea rcx, [rsp + 0xf8]
call fcn.1400e82c4
test al, al
jne 0x1400750af
lea rax, vtable.micro::files::QFile.0
mov qword [rsp + 0xf8], rax
lea rcx, [rsp + 0xf8]
call fcn.1400e8500
nop
mov qword [rsp + 0x58], rsi
lea rcx, [rsp + 0x58]
call fcn.1400e712c
jmp 0x140074f7d
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x54], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x54]
mov r8d, 0x4000
lea rdx, [rsp + 0x650]
mov rcx, qword [rsp + 0x100]
call qword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x14007534f
mov edx, dword [rsp + 0x54]
test edx, edx
je 0x14007534f
lea r8, [rsp + 0x650]
mov qword [rsp + 0x40], r8
inc qword [rsp + 0x68]
mov dword [rsp + 0x80], edi
lea rax, [rsp + 0x650]
mov rcx, r8
sub rcx, rax
mov eax, edx
cmp rcx, rax
jge 0x1400750b4
sub edx, r8d
lea edx, [rsp + rdx + 0x650]
cmp qword [rbx + 0xb8], rdi
je 0x1400750b4
mov rax, qword [rbx + 0xb8]
lea r10, [0x14010ea73]
test rax, rax
cmovne r10, rax
mov qword [rsp + 0x90], r10
mov eax, dword [rbx + 0xc0]
dec eax
mov dword [rsp + 0x70], eax
movsxd r9, eax
mov qword [rsp + 0x88], r9
lea rcx, [r8 + r9]
mov qword [rsp + 0x38], rcx
sub edx, eax
mov dword [rsp + 0x50], edx
js 0x14007528a
cmp byte [rbx + 0xc4], dil
je 0x140075202
mov al, byte [rcx]
cmp byte [r10 + r9], al
jne 0x1400751a8
mov rdx, rcx
sub rdx, r9
mov r8, r9
mov rcx, r10
call qword [sym.imp.msvcrt.dll_strncmp]
test eax, eax
je 0x1400751ed
mov rcx, qword [rsp + 0x38]
movsx ecx, byte [rcx]
call qword [sym.imp.msvcrt.dll_tolower]
movzx ecx, al
movsxd rax, dword [rbx + rcx*4 + 0xc8]
mov edx, dword [rsp + 0x50]
cmp edx, eax
jl 0x14007528a
sub edx, eax
mov dword [rsp + 0x50], edx
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov qword [rsp + 0x38], rcx
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x90]
jmp 0x140075185
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
sub ebx, ecx
sub ebx, dword [rsp + 0x70]
jmp 0x140075292
movsx ecx, byte [r10 + r9]
call qword [sym.imp.msvcrt.dll_tolower]
mov ebx, eax
mov rax, qword [rsp + 0x38]
movsx ecx, byte [rax]
call qword [sym.imp.msvcrt.dll_tolower]
cmp ebx, eax
mov rbx, qword [rsp + 0x38]
jne 0x140075246
mov rdx, rbx
mov r8, qword [rsp + 0x88]
sub rdx, r8
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.msvcrt.dll__strnicmp]
test eax, eax
je 0x1400751f2
movsx ecx, byte [rbx]
call qword [sym.imp.msvcrt.dll_tolower]
movzx ecx, al
mov rax, qword [rsp + 0x78]
movsxd rdx, dword [rax + rcx*4 + 0xc8]
mov eax, dword [rsp + 0x50]
cmp eax, edx
jl 0x14007528a
sub eax, edx
mov dword [rsp + 0x50], eax
add rbx, rdx
mov qword [rsp + 0x38], rbx
mov r9, qword [rsp + 0x88]
mov r10, qword [rsp + 0x90]
jmp 0x140075202
or ebx, 0xffffffff
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x38], rbx
test ebx, ebx
mov rbx, qword [rsp + 0x78]
js 0x1400750b4
cmp dword [rsp + 0x80], edi
jne 0x1400752b4
mov byte [rbx + 0x8c8], dil
mov byte [rbx + 0x8c8], 1
mov dword [rsp + 0x80], 1
mov rax, qword [rsp + 0x38]
movsxd rdx, eax
add rdx, rcx
xor r9d, r9d
lea r8d, [r9 + 0x14]
lea rcx, [rsp + 0x110]
call fcn.1400e707c
nop
lea r9, [0x14012da68]
cmp qword [rsp + 0x118], rdi
cmovne r9, qword [rsp + 0x118]
lea rdx, [0x14012da68]
cmp qword [rsp + 0x60], rdi
cmovne rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, rbx
call fcn.1400754cc
mov rax, qword [rsp + 0x38]
inc eax
movsxd rcx, eax
add qword [rsp + 0x40], rcx
mov qword [rsp + 0x110], rsi
lea rcx, [rsp + 0x110]
call fcn.1400e712c
mov edx, dword [rsp + 0x54]
mov r8, qword [rsp + 0x40]
jmp 0x14007510b
lea rax, vtable.micro::files::QFile.0
mov qword [rsp + 0xf8], rax
lea rcx, [rsp + 0xf8]
call fcn.1400e8500
nop
jmp 0x1400753d8
lea rdx, [0x14012da68]
cmp qword [rsp + 0x60], rdi
cmovne rdx, qword [rsp + 0x60]
lea r9, [0x14012da68]
xor r8d, r8d
mov rcx, rbx
call fcn.1400754cc
mov byte [rbx + 0x8c8], 1
mov qword [rsp + 0x58], rsi
lea rcx, [rsp + 0x58]
jmp 0x140074f78
mov byte [rbx + 0x98], dil
mov rcx, qword [rsp + 0xe8]
cmp rcx, 0xffffffffffffffff
je 0x140075402
call qword [sym.imp.KERNEL32.DLL_FindClose]
mov qword [rsp + 0xd8], rsi
lea rcx, [rsp + 0xd8]
call fcn.1400e712c
jmp 0x14007544e
mov rcx, qword [rsp + 0xe8]
cmp rcx, 0xffffffffffffffff
je 0x14007542d
call qword [sym.imp.KERNEL32.DLL_FindClose]
mov qword [rsp + 0xd8], rsi
lea rcx, [rsp + 0xd8]
call fcn.1400e712c
mov edx, dword [rsp + 0x34]
jmp 0x140074e5b
mov dil, 1
mov qword [rsp + 0x98], rsi
lea rcx, [rsp + 0x98]
call fcn.1400e712c
nop
mov rax, qword [rsp + 0x48]
mov qword [rax], rsi
mov rcx, rax
call fcn.1400e712c
mov al, dil
jmp 0x1400754a5
mov byte [rbx + 0x98], dil
jmp 0x140074db7
mov byte [rbx + 0x98], dil
lea rsi, vtable.micro::utils::QString.0
mov rax, qword [rsp + 0x48]
mov qword [rax], rsi
mov rcx, rax
call fcn.1400e712c
xor al, al
mov rcx, qword [rsp + 0x4650]
xor rcx, rsp
call fcn.140001010
lea r11, [rsp + 0x4660]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret