Function at 0x14003a280
Capabilities:
Create thread
Get disk information

Disassembly:
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x308
mov al, r9b
mov ebx, 1
mov rbp, rdx
and al, 0xf
mov rsi, rcx
mov dword [rsp + 0x50], ebx
mov byte [rsp + 0x330], al
call fcn.1400d2530
xor ecx, ecx
test byte [rsp + 0x348], 0xf0
lea edi, [rax + 0x20d]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x58], edi
jne 0x14003a2f7
cmp eax, 4
jle 0x14003a2f7
cdqe
lea rdx, [0x1400f2ab8]
lea rcx, [rsi + rax*2 - 8]
call fcn.1400d2754
xor ecx, ecx
mov dword [rsp + 0x60], ebx
cmp eax, ecx
je 0x14003a2fb
mov dword [rsp + 0x60], ecx
lea eax, [rdi + 0x325]
lea rcx, [rsp + 0x88]
movsxd rdx, eax
call fcn.1400571c8
mov rdi, qword [rsp + 0x88]
movsxd rax, dword [rsp + 0x58]
lea rcx, [rdi + rax*2]
mov r11d, 0x5c
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x48], rcx
cmp word [rsi], r11w
jne 0x14003a3b4
mov rdx, rcx
mov ecx, 0x324
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov rcx, qword [rsp + 0x48]
jmp 0x14003a3a8
mov r8, rcx
lea r9, [rsi + 2]
lea rdx, str._s_s
mov rcx, rdi
call fcn.140014c04
mov r9b, byte [rsp + 0x348]
mov r8, qword [rsp + 0x340]
xor eax, eax
mov rdx, rbp
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.14003a280
neg eax
sbb ecx, ecx
and ebx, ecx
mov rcx, qword [rsp + 0x48]
call fcn.1400d2530
mov rcx, qword [rsp + 0x48]
inc eax
lea rcx, [rcx + rax*2]
mov qword [rsp + 0x48], rcx
xor eax, eax
cmp word [rcx], ax
jne 0x14003a350
jmp 0x14003abdd
mov r10, qword [rsp + 0x70]
mov rdx, rsi
mov rcx, rdi
lea ebp, [r10 + 1]
movsxd r8, ebp
add r8, r8
call fcn.14001a9b0
mov rcx, qword [rsp + 0x338]
movzx eax, word [rcx + 0x54]
shl eax, 0x10
mov dword [rsp + 0x48], eax
xor eax, eax
lea r8d, [rax + 0x2e]
cmp dword [rsp + 0x60], eax
jne 0x14003a877
cmp byte [rsp + 0x330], al
jne 0x14003a41c
movsxd rax, r10d
lea rdx, str.INF.INF
mov r8d, 0x16
lea rcx, [rdi + rax*2]
call fcn.14001a9b0
lea ebp, [r10 + 5]
jmp 0x14003a873
mov rdx, qword [rsp + 0x350]
cmp rdx, rax
jne 0x14003a441
movsxd rax, r10d
lea rdx, str._________allinf_file_
lea rcx, [rdi + rax*2]
call fcn.14001a9b0
mov rdx, rdi
xor eax, eax
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x68]
mov r9d, 7
mov r8d, 0xc0000000
mov dword [rsp + 0x28], 3
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x20], rax
call fcn.140003590
mov rsi, rax
mov qword [rsp + 0xa0], rax
xor eax, eax
cmp rsi, rax
je 0x14003a858
lea rcx, [rsp + 0x330]
mov edx, 0x2800
call fcn.1400571c8
mov rcx, qword [rsp + 0x330]
lea r8, str.Found___s_
mov r9, rdi
mov edx, 0x27ff
call fcn.1400d32c8
mov rbx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x330]
mov rcx, qword [rbx + 8]
xor eax, eax
xor r8d, r8d
lea r9d, [rax + 0x11]
mov qword [rsp + 0x20], rax
call fcn.1400266c0
lea rcx, [rsp + 0x330]
call fcn.14004f564
mov rcx, rsi
call fcn.1400c12e8
xor r9d, r9d
mov rcx, rsi
lea r8d, [r9 + 8]
mov rdx, rax
mov rdi, rax
call fcn.1400bf510
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x98], rax
cmp rax, r8
jne 0x14003a533
cmp rsi, 0xffffffffffffffff
je 0x14003a529
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, 1
jmp 0x14003abdd
mov rax, rdi
lea rbp, [rcx + rdi]
mov rsi, rcx
cqo
and edx, 3
add rax, rdx
sar rax, 2
add rax, 0xffff
and rax, 0xffffffffffff0000
mov qword [rsp + 0xa8], rax
mov eax, dword [rcx]
and eax, 0xffffff
cmp eax, 0xbfbbef
jne 0x14003a5a6
lea rsi, [rcx + 3]
jmp 0x14003a5a6
cmp rsi, rbp
jae 0x14003a5ab
movsx eax, byte [rsi]
cmp ax, 0xa
je 0x14003a5a1
cmp ax, 0xd
je 0x14003a5a1
inc rsi
cmp rsi, rbp
jae 0x14003a5a6
jmp 0x14003a576
movsx eax, byte [rsi]
cmp ax, 0xa
je 0x14003a59e
cmp ax, 0xd
jne 0x14003a5a6
inc rsi
cmp rsi, rbp
jb 0x14003a58f
cmp byte [rsi], 0x23
je 0x14003a571
lea rcx, [rsp + 0x78]
mov edx, 0x28
mov qword [rsp + 0x68], r8
call fcn.140056f64
mov rcx, qword [rsp + 0x78]
call fcn.14004f518
mov rax, qword [rsp + 0x78]
xor r8d, r8d
dec rbp
lea edx, [r8 + 9]
mov qword [rsp + 0x80], rax
movsx ecx, byte [rbp]
mov rax, r8
mov qword [rsp + 0x48], rax
cmp dx, cx
ja 0x14003a5f7
cmp cx, 0xd
jbe 0x14003a65d
mov edx, 0x20
cmp dx, cx
je 0x14003a65d
cmp byte [rbp], 0x23
je 0x14003a65d
cmp rbp, rsi
jbe 0x14003a638
movsx eax, byte [rbp]
cmp ax, 0xa
je 0x14003a621
cmp ax, 0xd
je 0x14003a621
dec rbp
jmp 0x14003a607
lea rax, [rbp + 1]
cmp byte [rax], 0x23
jne 0x14003a638
mov byte [rbp], r8b
mov qword [rsp + 0x48], rax
cmp rax, r8
jne 0x14003a661
lea rdx, [rdi + 0x10]
lea rcx, [rsp + 0x68]
call fcn.140056fe0
mov rsi, qword [rsp + 0x68]
mov rax, qword [rsp + 0x48]
lea rbp, [rsi + rdi]
xor r8d, r8d
mov qword [rbp], r8
jmp 0x14003a661
mov byte [rbp], r8b
mov edi, r8d
mov dword [rsp + 0x348], r8d
mov qword [rsp + 0x60], r8
cmp rsi, rbp
jae 0x14003a6b4
mov rax, qword [rsp + 0xa8]
add rax, rsi
mov qword [rsp + 0x330], rax
cmp rax, rbp
jae 0x14003a6d6
lea rdx, str._n_INFFILE_
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_StrStrA]
xor ecx, ecx
cmp rax, rcx
je 0x14003a6ce
mov byte [rax], cl
inc rax
mov qword [rsp + 0x330], rax
jmp 0x14003a6d6
cmp rax, r8
je 0x14003a7b6
cmp byte [rax], 0x23
je 0x14003a7b6
mov rsi, rax
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x330], rbp
lea rcx, [rsp + 0x50]
mov edx, 0x28
call fcn.140056f64
mov rcx, qword [rsp + 0x50]
call fcn.14004f518
mov rdi, qword [rsp + 0x50]
movsxd rdx, dword [rsp + 0x58]
lea rcx, [rdi + 8]
mov qword [rdi], rbx
call fcn.140057254
mov r10, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rdi + 8]
lea r11d, [r10 + 0x17]
movsxd r8, r11d
add r8, r8
call fcn.14001a9b0
movsxd rcx, r10d
lea rax, [0x14010b958]
mov qword [rdi + 0x20], rcx
mov qword [rsp + 0x28], rax
lea r8, [0x140039ea4]
xor ecx, ecx
mov r9, rdi
mov edx, 0x20000
mov dword [rsp + 0x20], 0x10000
mov qword [rdi + 0x10], rsi
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x330]
mov qword [rdi + 0x18], rax
mov rax, qword [rsp + 0x60]
mov qword [rcx + rax*8], rdi
mov edi, dword [rsp + 0x348]
inc rax
mov qword [rsp + 0x60], rax
xor eax, eax
lea rcx, [rsp + 0x50]
inc edi
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x348], edi
call fcn.14004f564
mov rbx, qword [rsp + 0x338]
mov rax, qword [rsp + 0x48]
xor r8d, r8d
jmp 0x14003a671
mov rsi, qword [rsp + 0x60]
mov rbx, r8
cmp rsi, r8
jle 0x14003a7ee
mov rdi, qword [rsp + 0x80]
mov rcx, qword [rdi + rbx*8]
or edx, 0xffffffff
mov rcx, qword [rcx + 0x18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
inc rbx
cmp rbx, rsi
jl 0x14003a7cb
mov edi, dword [rsp + 0x348]
xor r8d, r8d
dec edi
movsxd rbx, edi
cmp rbx, r8
jl 0x14003a81f
mov rax, qword [rsp + 0x80]
lea rcx, [rsp + 0x338]
mov rax, qword [rax + rbx*8]
mov qword [rsp + 0x338], rax
call fcn.14004f564
sub rbx, 1
jns 0x14003a7f8
lea rcx, [rsp + 0x78]
call fcn.14004f564
lea rcx, [rsp + 0x68]
call fcn.14004f564
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov rcx, qword [rsp + 0xa0]
cmp rcx, 0xffffffffffffffff
je 0x14003a529
jmp 0x14003a523
movsxd rax, dword [rsp + 0x70]
lea rdx, str..INF
mov r8d, 0x16
lea rcx, [rdi + rax*2]
call fcn.14001a9b0
xor eax, eax
jmp 0x14003a89d
mov r8d, r11d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
mov rbp, rax
xor eax, eax
cmp rbp, rax
je 0x14003a89b
sub rbp, rsi
add rbp, 2
sar rbp, 1
jmp 0x14003a89d
mov ebp, eax
lea rcx, [rsp + 0xb4]
xor edx, edx
mov r8d, 0x24c
mov dword [rsp + 0xb0], eax
call fcn.1400d1fa0
xor eax, eax
lea r8, [rsp + 0xb0]
lea rcx, [rsp + 0x40]
mov rdx, rdi
mov qword [rsp + 0x40], rax
call fcn.1400d1568
mov rsi, qword [rsp + 0x338]
xor r11d, r11d
cmp qword [rsp + 0x40], r11
je 0x14003a9cf
lea rcx, [rsp + 0xdc]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, [rsp + 0xdc]
inc eax
movsxd r8, eax
movsxd rax, ebp
lea rcx, [rdi + rax*2]
add r8, r8
call fcn.14001a9b0
mov rax, qword [rsp + 0x340]
test rax, rax
je 0x14003a934
mov r8, rdi
mov rdx, rax
mov rcx, rsi
call fcn.140017164
test al, al
je 0x14003a997
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.14002d120
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x58], rax
cmp byte [rsi + 0x5f], r8b
jne 0x14003a97f
cmp rax, r8
je 0x14003a98d
mov eax, r8d
mov dword [rsp + 0x338], eax
cmp byte [rsi + 0x60], r8b
je 0x14003a9ef
mov r8d, dword [rsp + 0x48]
mov rdx, rdi
mov rcx, rsi
call fcn.14002d5c8
xor r8d, r8d
mov rax, qword [rsp + 0x58]
cmp rax, r8
je 0x14003a98d
mov word [rax], r8w
mov eax, dword [rsp + 0x50]
neg eax
sbb ecx, ecx
and ebx, ecx
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
xor r11d, r11d
cmp eax, r11d
jne 0x14003a8eb
mov rcx, qword [rsp + 0x40]
cmp rcx, r11
je 0x14003a9cf
cmp rcx, 0xffffffffffffffff
je 0x14003a9cf
call qword [sym.imp.KERNEL32.dll_FindClose]
xor r11d, r11d
cmp byte [rsp + 0x330], 1
mov qword [rsp + 0x40], r11
je 0x14003aabe
mov qword [rsp + 0x40], r11
mov ebx, r11d
jmp 0x14003abdd
cmp byte [rsi + 0x5c], 3
je 0x14003a9fb
cmp byte [rsi + 0x5e], r8b
je 0x14003aa6b
mov rdx, qword [rsp + 0x50]
cmp byte [rsi + 0x5e], r8b
je 0x14003aa22
mov r8, rcx
or r9d, 0xffffffff
mov rdx, rdi
mov rcx, rsi
call fcn.14002df54
mov rdx, rax
mov qword [rsp + 0x50], rax
jmp 0x14003aa41
cmp byte [rsi + 0x5c], 3
jne 0x14003aa50
mov r8, rcx
or r9d, 0xffffffff
mov rdx, rdi
mov rcx, rsi
call fcn.14002e0cc
mov edx, eax
mov qword [rsp + 0x50], rdx
mov rcx, qword [rsp + 0x58]
mov eax, dword [rsp + 0x338]
xor r8d, r8d
inc eax
cmp eax, 2
mov dword [rsp + 0x338], eax
jge 0x14003a97f
cmp edx, r8d
je 0x14003a97f
mov r9d, dword [rsp + 0x48]
mov qword [rsp + 0x28], r8
or dword [rsp + 0x20], 0xffffffff
mov rdx, rcx
mov r8, rdi
mov rcx, rsi
call fcn.14002d418
mov edx, eax
mov eax, dword [rsp + 0x338]
inc eax
mov qword [rsp + 0x50], rdx
cmp eax, 2
mov dword [rsp + 0x338], eax
jge 0x14003a97c
mov rcx, qword [rsp + 0x58]
xor r8d, r8d
cmp edx, r8d
jne 0x14003aa00
jmp 0x14003a97f
mov r10, qword [rsp + 0x70]
lea rdx, [0x1400f39b8]
mov r8d, 0xc
movsxd rax, r10d
lea rcx, [rdi + rax*2]
call fcn.14001a9b0
lea r8, [rsp + 0xb0]
lea rcx, [rsp + 0x40]
mov rdx, rdi
lea ebp, [r10 + 1]
mov word [rsp + 0xe0], r11w
call fcn.1400d1568
xor edx, edx
cmp qword [rsp + 0x40], rdx
jne 0x14003ab0e
mov ebx, edx
jmp 0x14003abd8
test byte [rsp + 0xb0], 0x10
je 0x14003aba3
mov ecx, 0x2e
cmp cx, word [rsp + 0xdc]
jne 0x14003ab47
movzx eax, word [rsp + 0xde]
cmp ax, dx
je 0x14003aba3
cmp cx, ax
jne 0x14003ab47
cmp word [rsp + 0xe0], dx
je 0x14003aba3
lea rcx, [rsp + 0xdc]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rdx, [rsp + 0xdc]
inc eax
movsxd r8, eax
movsxd rax, ebp
lea rcx, [rdi + rax*2]
add r8, r8
call fcn.14001a9b0
mov r9b, byte [rsp + 0x348]
mov r8, qword [rsp + 0x340]
xor eax, eax
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.14003a280
neg eax
sbb ecx, ecx
and ebx, ecx
xor eax, eax
mov word [rsp + 0xe0], ax
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
xor edx, edx
cmp eax, edx
jne 0x14003ab0e
mov rcx, qword [rsp + 0x40]
cmp rcx, rdx
je 0x14003abd8
cmp rcx, 0xffffffffffffffff
je 0x14003abd8
call qword [sym.imp.KERNEL32.dll_FindClose]
xor edx, edx
mov qword [rsp + 0x40], rdx
lea rcx, [rsp + 0x88]
call fcn.14004f564
mov eax, ebx
add rsp, 0x308
pop rdi
pop rsi
pop rbp
pop rbx
ret