joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180040200
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ecx, dword [0x1800fbf64]
mov rdi, r8
mov rbx, rdx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rbx, rbx
jne 0x180040225
mov rbx, qword [rax + 8]
mov rcx, qword gs:[0x20]
mov qword [rax + 0x18], rdi
mov dword [rax + 0x20], 0
mov qword [rax + 0x10], rcx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov ecx, dword [0x1800fbf64]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r8, qword [rax + 0x18]
test r8, r8
je 0x180040265
mov edx, dword [rax + 0x20]
mov rcx, qword [rax + 0x10]
call r8
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x180043300
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, r9
test r9, r9
jne 0x180043319
mov eax, 0x80070057
add rsp, 0x20
pop rbx
ret
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x180043331
add rsp, 0x20
pop rbx
jmp fcn.1800030e0
test al, 0x10
je 0x180043343
mov dword [rbx], 8
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov eax, 0xe00e1001
add rsp, 0x20
pop rbx
ret

Function at 0x180043630
Capabilities:
Check if file exists
Enumerate files on windows
Get file attributes

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x20
mov rbx, rdx
mov rsi, rcx
test rdx, rdx
je 0x1800436ad
cmp word [rdx], 0
je 0x1800436ad
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x180043668
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
jmp fcn.1800030e0
test al, 0x10
je 0x1800436ad
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x30], rdi
xor eax, eax
mov rdi, rbx
mov rdx, rbx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsi + 0x18]
call fcn.180002750
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
mov rdi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
jmp fcn.180043ab0
mov eax, 0xe00e1001
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
Function at 0x180049930
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x30
mov edi, r9d
mov rsi, r8
mov rbx, rcx
test r8, r8
jne 0x180049953
mov eax, 0x80070057
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rcx + 0x18]
cmp rcx, 0xffffffffffffffff
jne 0x18004996a
mov eax, 0x80004005
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
test rdx, rdx
je 0x18004998f
mov rdx, qword [rdx]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x18004998f
call fcn.1800030e0
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
mov rcx, qword [rbx + 0x18]
mov qword [rsp + 0x50], rbp
lea r9, [rsp + 0x60]
mov qword [rsp + 0x58], r12
xor r12d, r12d
mov r8d, edi
mov rdx, rsi
mov dword [rsp + 0x60], r12d
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180049a87
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6f8
je 0x1800499ec
cmp eax, 0x3e6
je 0x1800499ec
test eax, eax
jle 0x180049a99
movzx eax, ax
or eax, 0x80070000
jmp 0x180049a99
cmp dword [rbx + 0x450], edi
jae 0x180049a3b
mov rcx, qword [rbx + 0x448]
test rcx, rcx
je 0x180049a13
call fcn.1800626bc
mov qword [rbx + 0x448], r12
mov dword [rbx + 0x450], r12d
lea rdx, [0x1800fee28]
mov rcx, rdi
call fcn.1800626b4
mov qword [rbx + 0x448], rax
test rax, rax
jne 0x180049a35
mov eax, 0x8007000e
jmp 0x180049a99
mov dword [rbx + 0x450], edi
mov rcx, qword [rbx + 0x448]
mov r8, rdi
xor edx, edx
call fcn.1800644c0
mov rdx, qword [rbx + 0x448]
mov rcx, qword [rbx + 0x18]
lea r9, [rsp + 0x60]
mov r8d, edi
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180049a75
call fcn.1800030e0
jmp 0x180049a99
mov rdx, qword [rbx + 0x448]
mov r8, rdi
mov rcx, rsi
call fcn.180063290
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x180049a97
mov eax, dword [rsp + 0x60]
mov dword [rcx], eax
xor eax, eax
mov rbp, qword [rsp + 0x50]
mov r12, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
pop rsi
pop rbx
ret
Function at 0x18004ab40
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r14
sub rsp, 0x30
mov r14, r9
mov rdi, r8
mov rsi, rdx
mov rbp, rcx
test rdx, rdx
je 0x18004acb4
mov r12d, dword [rdx + 8]
test r12d, r12d
je 0x18004ab73
test r8, r8
je 0x18004acb4
test r12d, r12d
jne 0x18004ab86
xor eax, eax
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp qword [rcx + 0x18], 0xffffffffffffffff
jne 0x18004ab9e
mov eax, 0x80004005
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [rcx + 0x20], 0x990
je 0x18004abb8
mov eax, 0x80004001
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
imul r12d, r12d, 0x990
mov qword [rsp + 0x70], r13
mov edx, r12d
call fcn.18004e8b0
mov r13, rax
test rax, rax
jne 0x18004abea
mov eax, 0x8007000e
mov r13, qword [rsp + 0x70]
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, dword [rbp + 0x20]
mov rax, qword [rsi]
xor r9d, r9d
cqo
xor r8d, r8d
and edx, 0x7ff
add rdx, rax
sar rdx, 0xb
imul rdx, rcx
mov ecx, dword [rbp + 0x2c]
add rdx, rcx
mov rcx, qword [rbp + 0x18]
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x18004ac33
call fcn.1800030e0
mov r13, qword [rsp + 0x70]
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [rbp + 0x18]
mov qword [rsp + 0x60], rbx
xor ebx, ebx
lea r9, [rsp + 0x68]
mov r8d, r12d
mov rdx, r13
mov dword [rsp + 0x68], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18004ac77
call fcn.1800030e0
mov rbx, qword [rsp + 0x60]
mov r13, qword [rsp + 0x70]
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [rsi + 8], ebx
jbe 0x18004aca5
nop dword [rax]
mov edx, dword [rbp + 0x20]
mov rcx, rdi
mov r8d, 0x930
imul edx, ebx
add rdx, r13
call fcn.180063290
inc ebx
add rdi, 0x930
cmp ebx, dword [rsi + 8]
jb 0x18004ac80
test r14, r14
je 0x18004acb0
mov eax, dword [rsi + 8]
mov dword [r14], eax
xor eax, eax
jmp 0x18004ac61
mov eax, 0x80070057
add rsp, 0x30
pop r14
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x18004b670
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push rdi
push r13
sub rsp, 0x160
mov rax, qword [0x1800f7050]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rdi, r9
mov rbx, r8
mov r13, rdx
test rdx, rdx
je 0x18004b865
test rbx, rbx
je 0x18004b865
test r9, r9
je 0x18004b865
mov rcx, rbx
mov qword [rsp + 0x150], rsi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov esi, dword [rsp + 0x1a0]
add rsi, rdi
cmp dword [rsp + 0x1a8], 0
je 0x18004b7b2
mov ecx, dword [rsi]
lea rdx, [0x1800dcd10]
add rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x18004b7cc
xor edx, edx
mov rcx, rbx
mov qword [rsp + 0x158], rbp
lea r8d, [rdx + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
mov rbp, rax
test rax, rax
je 0x18004b854
add rbp, 2
cmp dword [rsp + 0x1a8], 0
je 0x18004b7e9
mov edx, dword [rsi]
mov rcx, rbp
add rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x18004b85e
mov rdx, r13
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
lea rdx, [0x1800dcd00]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x18004b85e
mov eax, 0xe0032009
mov rbp, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.180062100
add rsp, 0x160
pop r13
pop rdi
pop rbx
ret
mov ecx, dword [rsi]
lea rdx, str..mdf
add rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x18004b6f5
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
lea rdx, [0x1800dcd00]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor eax, eax
jmp 0x18004b78e
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x30], 0
call fcn.1800644c0
mov edx, dword [rsi]
lea rcx, [rsp + 0x30]
add rdx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x30]
mov r11, rbx
lea r8, [rsp + 0x30]
repne scasb al, byte [rdi]
sub r11, rbp
xor edx, edx
not rcx
add r11, 0x208
sar r11, 1
mov r9d, ecx
xor ecx, ecx
mov dword [rsp + 0x28], r11d
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jne 0x18004b738
mov eax, 0x80004005
jmp 0x18004b786
xor eax, eax
jmp 0x18004b786
mov eax, 0x80070057
jmp 0x18004b796
Function at 0x18004e590
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rbx, qword [rcx + 0x3e8]
xor r14d, r14d
mov rdi, rcx
mov r12, r14
mov r13d, r14d
cmp rbx, qword [rcx + 0x3f0]
jbe 0x18004e5cf
call fcn.18006265c
mov rbp, qword [rdi + 0x3d0]
nop word [rax + rax]
mov rsi, qword [rdi + 0x3f0]
cmp qword [rdi + 0x3e8], rsi
jbe 0x18004e5f5
call fcn.18006265c
test rbp, rbp
je 0x18004e603
cmp rbp, qword [rdi + 0x3d0]
je 0x18004e608
call fcn.18006265c
mov rcx, rdi
cmp rbx, rsi
je 0x18004e702
mov r8, r12
mov edx, r13d
call fcn.18004c220
xor r11d, r11d
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x48], r11
test rbp, rbp
jne 0x18004e63b
call fcn.18006265c
mov r11, r14
jmp 0x18004e63f
mov r11, qword [rbp]
cmp rbx, qword [r11 + 0x20]
jb 0x18004e64a
call fcn.18006265c
cmp qword [rbx + 0x20], 8
lea rcx, [rbx + 8]
jb 0x18004e658
mov rcx, qword [rcx]
xor r9d, r9d
mov qword [rsp + 0x30], r14
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x18004e6fb
lea rdx, [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x18004e6e5
mov rax, qword [rsp + 0x40]
lea rcx, [rdi + 0x3a0]
lea rdx, [rsp + 0x40]
sub rax, 0x2c
inc r13d
mov qword [rsp + 0x40], rax
add r12, rax
call fcn.18004ef70
test rbp, rbp
jne 0x18004e6cd
call fcn.18006265c
mov r11, r14
jmp 0x18004e6d1
mov r11, qword [rbp]
cmp rbx, qword [r11 + 0x20]
jb 0x18004e6dc
call fcn.18006265c
add rbx, 0x28
jmp 0x18004e5e0
call fcn.1800030e0
mov rcx, qword [rsp + 0x48]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
jmp 0x18004e713
call fcn.1800030e0
jmp 0x18004e713
mov rdx, r12
call fcn.18004c160
mov qword [rdi + 0x368], r12
xor eax, eax
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret
Function at 0x18004e740
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
sub rsp, 0x30
mov rax, qword [rcx + 0x3c0]
mov ebx, edx
mov esi, r9d
sub rax, qword [rcx + 0x3b8]
mov r12d, r8d
mov rdi, rcx
sar rax, 4
cmp rbx, rax
jb 0x18004e782
mov eax, 0x80004005
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret
mov rax, qword [rcx + 0x3c0]
mov qword [rsp + 0x50], rbp
sub rax, qword [rcx + 0x3b8]
sar rax, 4
cmp rbx, rax
jb 0x18004e7a3
call fcn.18006265c
mov rbp, qword [rdi + 0x3b8]
add rbx, rbx
mov rcx, qword [rbp + rbx*8 + 8]
test rcx, rcx
je 0x18004e895
cmp rcx, 0xffffffffffffffff
je 0x18004e895
lea edx, [r12 + 0x2c]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x18004e86c
mov r12, qword [rsp + 0x70]
mov dword [rsp + 0x58], 0
mov rcx, qword [rbp + rbx*8 + 8]
lea r9, [rsp + 0x58]
mov rdx, r12
mov r8d, esi
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18004e881
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6f8
je 0x18004e830
cmp eax, 0x3e6
je 0x18004e830
test eax, eax
jle 0x18004e89a
movzx eax, ax
or eax, 0x80070000
jmp 0x18004e89a
mov edx, esi
mov rcx, rdi
call fcn.18004e8b0
mov rdi, rax
test rax, rax
jne 0x18004e849
mov eax, 0x8007000e
jmp 0x18004e89a
mov rcx, qword [rbp + rbx*8 + 8]
lea r9, [rsp + 0x58]
mov r8d, esi
mov rdx, rax
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18004e873
call fcn.1800030e0
jmp 0x18004e89a
mov r8, rsi
mov rdx, rdi
mov rcx, r12
call fcn.180063290
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x18004e891
mov eax, dword [rsp + 0x58]
mov dword [rcx], eax
xor eax, eax
jmp 0x18004e89a
mov eax, 0x80004005
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret

Function at 0x18004f610
Capabilities:
Read file on windows

Disassembly:
mov dword [rsp + 0x10], edx
push rbx
sub rsp, 0x30
mov rax, r9
mov rdx, rcx
lea r9, [rsp + 0x48]
mov rcx, rax
mov ebx, r8d
mov qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x48]
cmp eax, ebx
jne 0x18004f643
mov eax, ebx
add rsp, 0x30
pop rbx
ret
Function at 0x1800511a0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push rsi
push rdi
push r12
sub rsp, 0x248
mov rax, qword [0x1800f7050]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rsi, r9
mov r12, r8
mov rdi, rdx
nop dword [rax + rax]
movzx eax, word [rdi]
cmp ax, 0x20
je 0x1800511df
cmp ax, 9
jne 0x1800511e5
add rdi, 2
jmp 0x1800511d0
cmp word [rdi], 0x22
mov qword [rsp + 0x240], rbp
jne 0x18005120b
add rdi, 2
mov edx, 0x22
lea rcx, [rdi + 2]
call qword [sym.imp.SHLWAPI.dll_StrChrW]
mov rbx, rax
jmp 0x180051245
lea rcx, [rdi + 2]
mov edx, 0x20
call qword [sym.imp.SHLWAPI.dll_StrChrW]
lea rcx, [rdi + 2]
mov edx, 9
mov rbp, rax
call qword [sym.imp.SHLWAPI.dll_StrChrW]
mov rbx, rax
test rbp, rbp
je 0x180051245
test rax, rax
jne 0x18005123e
mov rbx, rbp
jmp 0x180051245
cmp rbp, rax
cmovb rbx, rbp
test rbx, rbx
jne 0x180051254
mov eax, 0xe0032002
jmp 0x180051359
sub rbx, rdi
sar rbx, 1
cmp rbx, 0x104
jge 0x18005124a
mov edx, 0x5c
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_StrChrW]
test rax, rax
je 0x18005128f
add rbx, rbx
mov rdx, rdi
mov rcx, rsi
mov r8, rbx
call fcn.180063290
xor edi, edi
mov word [rbx + rsi], di
jmp 0x1800512d5
mov rdx, r12
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x5c]
call qword [sym.imp.SHLWAPI.dll_StrRChrW]
mov rbp, rax
test rax, rax
jne 0x1800512bc
mov eax, 0x80004005
jmp 0x180051359
add rbx, rbx
lea rcx, [rax + 2]
mov rdx, rdi
mov r8, rbx
call fcn.180063290
xor edi, edi
mov word [rbx + rbp + 2], di
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x180051357
lea rcx, [rsp + 0x22]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x20], di
call fcn.1800644c0
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp word [rax], 0
je 0x180051317
lea rcx, [rsp + 0x20]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rdx, r12
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp word [rsp + 0x20], 0
je 0x180051342
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x180051357
mov eax, 0xe0032001
jmp 0x180051359
xor eax, eax
mov rbp, qword [rsp + 0x240]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.180062100
add rsp, 0x248
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x180051500
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x78
mov rax, qword [0x1800f7050]
xor rax, rsp
mov qword [rsp + 0x68], rax
cmp word [rcx], 0
mov rsi, r8
mov rdi, rdx
jne 0x18005152c
mov eax, 0x80070057
jmp 0x180051700
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x70], rbp
xor ebp, ebp
mov qword [rsp + 0x30], rbp
lea r8d, [rbp + 1]
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x180051571
call fcn.1800030e0
jmp 0x1800516f3
xor eax, eax
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x48]
lea r8d, [rax + 0x10]
mov rcx, rbx
mov dword [rsp + 0x40], ebp
mov byte [rsp + 0x48], bpl
mov qword [rsp + 0x49], rax
mov dword [rsp + 0x51], eax
mov word [rsp + 0x55], ax
mov byte [rsp + 0x57], al
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1800516ac
mov ecx, dword [rsp + 0x48]
cmp ecx, dword [str.MAC]
jne 0x1800515c9
mov dword [rdi], 5
jmp 0x1800516e2
cmp ecx, dword [str.fLaC]
jne 0x1800515dc
mov dword [rdi], 6
jmp 0x1800516e2
cmp ecx, dword [str.wvpk]
jne 0x1800515ef
mov dword [rdi], 7
jmp 0x1800516e2
cmp ecx, dword [str.IsZ_]
jne 0x180051602
mov dword [rdi], 0xa
jmp 0x1800516e2
cmp ecx, dword [str.RIFF]
jne 0x180051623
mov rax, qword [rsp + 0x50]
cmp rax, qword [str.WAVEfmt]
jne 0x180051623
mov dword [rdi], 8
jmp 0x1800516e2
lea rax, [rsp + 0x48]
lea rcx, str.MEDIA_DESCRIPTOR
mov rdx, qword [rax]
cmp rdx, qword [rcx]
jne 0x180051645
mov rdx, qword [rax + 8]
cmp rdx, qword [rcx + 8]
jne 0x180051645
mov eax, ebp
jmp 0x18005164a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x180051659
mov dword [rdi], 2
jmp 0x1800516e2
xor eax, eax
xor r8d, r8d
mov rcx, rbx
lea r9d, [rax + 2]
lea rdx, [rax - 0x10]
mov byte [rsp + 0x58], bpl
mov qword [rsp + 0x59], rax
mov dword [rsp + 0x61], eax
mov word [rsp + 0x65], ax
mov byte [rsp + 0x67], al
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1800516c0
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x58]
mov r8d, 0x10
mov rcx, rbx
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1800516c0
call fcn.1800030e0
mov rcx, rbx
mov edi, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x1800516f3
mov eax, dword [rsp + 0x5c]
cmp eax, dword [str.NER5]
je 0x1800516dc
mov eax, dword [rsp + 0x60]
cmp eax, dword [str.NERO]
je 0x1800516dc
mov dword [rsi], ebp
jmp 0x1800516e8
mov dword [rdi], 1
mov dword [rsi], 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rbx, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.180062100
add rsp, 0x78
pop rdi
pop rsi
ret
Function at 0x1800521f0
Capabilities:
Get disk information via ioctl
Get disk size

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x20], rsi
push rdi
sub rsp, 0xa0
mov rax, qword [0x1800f7050]
xor rax, rsp
mov qword [rsp + 0x90], rax
xor eax, eax
mov rdi, rdx
xor esi, esi
mov qword [r11 - 0x70], rsi
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x38], rax
mov qword [r11 - 0x30], rax
mov qword [r11 - 0x28], rax
mov qword [r11 - 0x20], rax
lea rax, [r11 - 0x68]
mov rbx, r8
xor r9d, r9d
mov qword [r11 - 0x78], rax
lea rax, [r11 - 0x40]
mov edx, 0x24050
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], esi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180052292
cmp dword [rsp + 0x40], esi
je 0x180052292
cmp dword [rsp + 0x7c], 0x800
jne 0x180052346
mov rax, qword [rsp + 0x80]
mov qword [rbx], rax
xor eax, eax
jmp 0x18005234b
xor eax, eax
mov qword [rsp + 0x38], rsi
xor r9d, r9d
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x40]
xor r8d, r8d
mov edx, 0x2404c
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
mov rcx, rdi
mov dword [rsp + 0x28], 0x18
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180052346
cmp dword [rsp + 0x40], esi
je 0x180052346
cmp dword [rsp + 0x64], 0x800
jne 0x180052346
xor eax, eax
mov qword [rsp + 0x38], rsi
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x48]
mov edx, 0x7405c
mov rcx, rdi
mov dword [rsp + 0x28], 8
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x180052346
cmp dword [rsp + 0x40], esi
je 0x180052346
mov rax, qword [rsp + 0x48]
mov qword [rbx], rax
xor eax, eax
jmp 0x18005234b
mov eax, 0xe003200c
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.180062100
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1800524b0
Capabilities:
Get disk information

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x90
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x1800f7050]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rbp, r9
movzx r12d, r8w
movzx ebx, dx
mov rsi, rcx
xor eax, eax
mov qword [rsp + 0x5a], rax
mov qword [rsp + 0x62], rax
mov word [rsp + 0x6a], ax
mov word [rsp + 0x58], dx
lea rdx, [0x1800dd178]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 5
je 0x180052528
mov eax, 0xe003200c
jmp 0x180052636
xor edi, edi
mov word [rsp + 0x70], di
xor eax, eax
mov qword [rsp + 0x72], rax
mov qword [rsp + 0x7a], rax
mov word [rsp + 0x82], ax
movzx r8d, bx
lea rdx, str.._c:
lea rcx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rdi + 1]
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
jne 0x18005259a
call fcn.1800030e0
nop
jmp 0x180052636
mov qword [rsp + 0x40], rdi
lea r8, [rsp + 0x40]
mov rdx, rax
mov rcx, rsi
call fcn.1800521f0
mov edi, eax
test eax, eax
js 0x18005262b
cmp eax, 1
je 0x18005262b
mov rax, qword [rbp]
mov rdx, qword [rsp + 0x40]
mov rcx, rbp
call qword [rax + 0x70]
mov edi, eax
test eax, eax
js 0x18005261e
cmp eax, 1
je 0x18005261e
test r12w, r12w
je 0x180052601
movzx r8d, r12w
mov rdx, rbx
mov rcx, rsi
call fcn.180052370
mov edi, eax
test eax, eax
js 0x1800525f4
cmp eax, 1
jne 0x180052601
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x180052636
mov r8, rbp
mov rdx, rbx
mov rcx, rsi
call fcn.180052660
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x180052636
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x180052636
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.180062100
add rsp, 0x90
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x180059de0
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
mov rsi, rcx
lea rcx, [0x180104920]
xor edx, edx
mov r8d, 0x800
call fcn.1800644c0
mov edi, 0x10
xor ebp, ebp
nop word [rax + rax]
mov rbx, qword [rsi + 0x20]
inc dword [rbx + 0x20]
mov edx, dword [rbx + 0x20]
cmp dword [rbx + 0x10], ebp
jne 0x180059eae
mov eax, dword [rbx + 0x28]
test eax, eax
js 0x180059eae
cmp eax, 1
je 0x180059eae
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x180059e6d
mov eax, dword [rbx + 0x24]
cmp edx, eax
cmovb eax, edx
lea rdx, [rsp + 0x48]
shl rax, 0xb
mov qword [rsp + 0x48], rax
mov rax, qword [rcx]
call qword [rax + 0x78]
test eax, eax
je 0x180059e6d
mov dword [rbx + 0x28], 0x80004004
jmp 0x180059eae
mov rcx, rbx
call fcn.18005c8d0
mov rcx, qword [rbx + 8]
lea r9, [rsp + 0x48]
lea rdx, [0x180104920]
mov r8d, 0x800
mov dword [rsp + 0x48], ebp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180059ea6
call fcn.1800030e0
mov dword [rbx + 0x28], eax
mov rcx, rbx
call fcn.18005c950
sub rdi, 1
jne 0x180059e20
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret