joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140112240
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x14011224d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x14011225d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x140112245
lea eax, [rcx + 1]
jmp 0x14011226b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x14011227e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x140112264
sub eax, 3
jb 0x14011229e
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x1401122ed
sar eax, 1
movsxd rbp, eax
jb 0x1401122d4
jmp 0x1401122ac
add ebx, ebx
jne 0x1401122aa
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x1401122d4
inc ecx
add ebx, ebx
jne 0x1401122ba
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x1401122d4
call r11
adc ecx, ecx
add ebx, ebx
jne 0x1401122cd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x1401122bc
add ecx, 2
jmp 0x1401122d9
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.140112202
jmp 0x14011224d
pop rsi
pop rdi
pop rax
mov dword [rdi], eax
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x71800
mov dl, 0x11
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x14011233d
cmp rsi, rcx
jae 0x140112345
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x140112324
cmp al, 0x8f
ja 0x140112324
cmp byte [rsi - 2], 0xf
je 0x14011232a
sub al, 0xe8
cmp al, 1
ja 0x14011230e
cmp rsi, rcx
jae 0x140112345
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x140112314
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x140112345
lodsb al, byte [rsi]
jmp 0x140112324
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x10f000]
mov eax, dword [rdi]
or eax, eax
je 0x1401123ae
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x1289c8]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x140112352
jns 0x140112387
movzx rdx, word [rdi]
add rdi, 2
jmp 0x140112391
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x1401123a8
mov qword [rbx], rax
add rbx, 8
jmp 0x140112372
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x1401123e8
cmp al, 0xef
ja 0x1401123da
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x1401123ba
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x1401123c9
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x23f]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x14011243c
sub rsp, 0xffffffffffffff80
jmp 0x14002f098
Function at 0x140046cf0
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0x140046cfd
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x140046d0d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x140046cf5
lea eax, [rcx + 1]
jmp 0x140046d1b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x140046d2e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x140046d14
sub eax, 3
jb 0x140046d4e
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x140046d9d
sar eax, 1
movsxd rbp, eax
jb 0x140046d84
jmp 0x140046d5c
add ebx, ebx
jne 0x140046d5a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x140046d84
inc ecx
add ebx, ebx
jne 0x140046d6a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x140046d84
call r11
adc ecx, ecx
add ebx, ebx
jne 0x140046d7d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x140046d6c
add ecx, 2
jmp 0x140046d89
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.140046cb2
jmp 0x140046cfd
pop rsi
pop rdi
pop rax
mov dword [rdi], eax
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x2ac00
mov dl, 7
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x140046ded
cmp rsi, rcx
jae 0x140046df5
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x140046dd4
cmp al, 0x8f
ja 0x140046dd4
cmp byte [rsi - 2], 0xf
je 0x140046dda
sub al, 0xe8
cmp al, 1
ja 0x140046dbe
cmp rsi, rcx
jae 0x140046df5
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x140046dc4
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x140046df5
lodsb al, byte [rsi]
jmp 0x140046dd4
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x44000]
mov eax, dword [rdi]
or eax, eax
je 0x140046e52
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x46228]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x140046e02
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x140046e4c
mov qword [rbx], rax
add rbx, 8
jmp 0x140046e22
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x140046e8c
cmp al, 0xef
ja 0x140046e7e
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x140046e5e
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x140046e6d
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x1af]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
mov byte [fcn.140046f0b], 0xfc
lea rcx, [rsi - 0x1000]
push 1
pop rdx
xor r8, r8
push rax
call fcn.140046f0b
pop rax
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x140046efb
sub rsp, 0xffffffffffffff80
jmp 0x140001125
Function at 0x100d23c
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rsp + 0x58], rsi
mov rsi, rcx
mov rcx, rdx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x100d39f
lea rdx, [0x010034f0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x268], rax
test rax, rax
jne 0x100d2a2
and dword [rsp + 0x20], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x20]
call fcn.010341f8
lea rdx, [0x01003500]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x270], rax
test rax, rax
jne 0x100d2d3
and dword [rsp + 0x24], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x24]
call fcn.010341f8
lea rdx, [0x01003510]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x278], rax
test rax, rax
jne 0x100d304
and dword [rsp + 0x28], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x28]
call fcn.010341f8
lea rdx, [0x01003520]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x280], rax
test rax, rax
jne 0x100d335
and dword [rsp + 0x2c], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x2c]
call fcn.010341f8
lea rdx, [0x01003530]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x288], rax
test rax, rax
jne 0x100d366
and dword [rsp + 0x30], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x30]
call fcn.010341f8
lea rdx, [0x01003548]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsi + 0x290], rax
test rax, rax
jne 0x100d398
and dword [rsp + 0x34], eax
lea rdx, [0x010401d0]
lea rcx, [rsp + 0x34]
call fcn.010341f8
nop
mov rax, rdi
jmp 0x100d39f
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret

Function at 0x100d714
Capabilities:
Read .ini file

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
sub rsp, 0x40
mov rax, qword [0x01043880]
lea rcx, [r11 - 0x18]
mov rbp, r8
mov qword [r11 - 0x18], rax
mov rbx, rdx
call fcn.0100d95c
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x100d7a3
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
cmp rcx, 1
je 0x100d7a3
mov edi, 0x104
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.0100df30
lea r8, [0x010033f0]
lea rdx, [0x01003460]
mov rcx, rbp
mov r9, rax
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x30]
or edx, 0xffffffff
call fcn.0100dfa0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.0100d7ec
lea rcx, [rsp + 0x30]
call fcn.0100d9e0
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rax, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret
Function at 0x100e9dc
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 0x10], rdx
push rdi
sub rsp, 0x20
mov rax, qword [0x01043850]
lea rsi, [0x01003570]
xor ebp, ebp
mov qword [rcx], rax
mov rax, rsi
mov rdi, rcx
shr rax, 0x10
cmp ax, bp
jne 0x100ea5e
movzx ebx, si
xor r8d, r8d
mov edx, ebx
call fcn.0100f254
cmp eax, ebp
jne 0x100ea87
mov rax, qword [0x01043850]
lea rdx, [0x01003578]
lea rcx, [rsp + 0x38]
mov r8d, ebx
mov qword [rsp + 0x38], rax
call fcn.0100f158
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, [rsp + 0x38]
call fcn.0100e934
jmp 0x100ea87
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, ebp
je 0x100ea87
movsxd rbx, eax
mov rcx, rdi
mov rdx, rbx
call fcn.0100e7c8
mov rcx, qword [rdi]
mov r8, rbx
mov rdx, rsi
call fcn.010273c0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rax, rdi
add rsp, 0x20
pop rdi
ret

Function at 0x100f350
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rdi, r9
mov esi, r8d
mov rbp, rdx
mov rbx, rcx
test r8d, r8d
je 0x100f418
test r9, r9
je 0x100f418
call fcn.0100f518
test eax, eax
je 0x100f418
and qword [rsp + 0x40], 0
xor r9d, r9d
lea r8, [rsp + 0x40]
lea edx, [r9 + 1]
lea rcx, [0x010035b0]
call sub.ADVAPI32.dll_ConvertStringSecurityDescriptorToSecurityDescriptorW
mov r8, qword [rsp + 0x40]
mov rcx, qword [rbx + 0x10]
mov edx, 4
call qword [sym.imp.ADVAPI32.dll_SetFileSecurityW]
cmp qword [rsp + 0x40], 0
je 0x100f3df
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, qword [rsp + 0x40]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rsp + 0x30], 0
mov rcx, qword [rbx + 0x10]
xor r9d, r9d
lea r8d, [r9 + 1]
mov edx, 0x40000000
mov dword [rsp + 0x28], 0x100
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rbx], rax
cmp rax, 0xffffffffffffffff
jne 0x100f42f
and qword [rbx], 0
xor eax, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
and qword [rsp + 0x20], 0
mov r9, rdi
mov r8d, esi
mov rdx, rbp
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, eax
test eax, eax
jne 0x100f455
mov rcx, rbx
call fcn.0100f498
mov rcx, rbx
call fcn.0100f468
mov eax, edi
jmp 0x100f41a

Function at 0x100f498
Capabilities:
Delete file

Disassembly:
push rbx
sub rsp, 0x280
mov rax, qword [0x01042480]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rbx, rcx
call fcn.0100f468
test eax, eax
jne 0x100f4c3
xor eax, eax
jmp 0x100f4f9
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x100f4f4
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x100f4f4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x100f4bf
mov eax, 1
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.01026f20
add rsp, 0x280
pop rbx
ret
Function at 0x100f518
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x20
xor r13d, r13d
mov rbx, rcx
cmp qword [rcx + 0x28], r13
je 0x100f54c
cmp dword [rcx + 0x30], r13d
je 0x100f54c
call fcn.0100f680
jmp 0x100f5d3
call fcn.0100f468
mov rcx, rbx
call fcn.0100f7b8
lea rdx, [rsp + 0x40]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov r12d, eax
cmp eax, r13d
je 0x100f5d1
mov rdi, r12
add rdi, rdi
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
cmp rax, r13
je 0x100f5d1
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapSize]
mov rdx, rsi
shr rax, 1
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, r13d
jne 0x100f5ec
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret
mov ebp, r13d
lea edi, [r12 + r12 + 0x208]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx + 0x10], rax
cmp rax, r13
je 0x100f651
lea rdx, [0x01003630]
mov r9, rax
xor r8d, r8d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
cmp eax, r13d
jbe 0x100f651
mov rdi, qword [rbx + 0x10]
cmp r13w, word [rdi]
je 0x100f651
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
lea ebp, [rax + 1]
not rcx
dec rcx
mov dword [rbx + 8], ecx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebp, r13d
jne 0x100f672
mov rcx, rbx
call fcn.0100f7b8
mov eax, ebp
jmp 0x100f5d3
Function at 0x100f680
Capabilities:
Create directory
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov rbp, rcx
call fcn.0100f468
mov rcx, rbp
call fcn.0100f7b8
mov r8d, dword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
lea rcx, [rsp + 0x38]
call fcn.0101f68c
mov rdi, qword [rsp + 0x38]
xor esi, esi
cmp qword [rdi - 0x10], rsi
je 0x100f794
mov rax, qword [0x01043880]
lea rdx, [0x01003638]
lea rcx, [rsp + 0x30]
mov r8, rdi
mov qword [rsp + 0x30], rax
call fcn.0100e6e8
mov rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [0x01003650]
lea rcx, [rsp + 0x30]
mov r8, rdi
call fcn.0100e6e8
mov rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rdi, qword [rsp + 0x30]
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasw ax, word [rdi]
not rcx
lea edi, [rcx + rcx + 0x206]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea edx, [rsi + 8]
mov rcx, rax
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbp + 0x10], rax
cmp rax, rsi
je 0x100f782
mov rcx, qword [rsp + 0x30]
lea rdx, [0x01003630]
mov r9, rax
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
cmp eax, esi
jbe 0x100f782
mov rdi, qword [rbp + 0x10]
cmp si, word [rdi]
je 0x100f782
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
lea esi, [rax + 1]
not rcx
dec rcx
mov dword [rbp + 8], ecx
jmp 0x100f78a
mov rcx, rbp
call fcn.0100f7b8
lea rcx, [rsp + 0x30]
call fcn.0100d9e0
lea rcx, [rsp + 0x38]
call fcn.0100d9e0
mov rbp, qword [rsp + 0x40]
mov eax, esi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x100f8e0
Capabilities:
Check mutex on windows
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x80
xor ebx, ebx
mov ebp, r9d
mov r12, r8
mov r13, rcx
cmp rdx, rbx
je 0x100f913
or eax, 0xffffffff
jmp 0x100fb15
lea r8, [0x01003670]
lea rcx, [rsp + 0x30]
xor r9d, r9d
mov rdx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x20019
mov dword [0x01044b6c], ebx
mov dword [rsp + 0x20], ebx
call fcn.0101f9e4
cmp dword [rsp + 0x40], ebx
je 0x100f964
lea rdx, [0x01003698]
lea rcx, [rsp + 0x30]
call fcn.0101ffd0
mov ecx, ebx
cmp eax, ebx
setne cl
mov dword [0x01044b6c], ecx
lea rdi, [0x01044b90]
xor edx, edx
mov r8d, 0x222
mov rcx, rdi
call fcn.010328a0
mov esi, 0x111
mov rdx, rdi
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, ebx
je 0x100f9a3
lea r8, [0x010036a8]
mov rdx, rsi
mov rcx, rdi
call fcn.0100f814
jmp 0x100f9db
lea rcx, [0x010036c8]
sub rcx, rdi
lea rax, [rsi + 0x7ffffeed]
cmp rax, rbx
je 0x100f9cf
movzx eax, word [rcx + rdi]
cmp ax, bx
je 0x100f9cf
mov word [rdi], ax
add rdi, 2
sub rsi, 1
jne 0x100f9ad
cmp rsi, rbx
jne 0x100f9d8
sub rdi, 2
mov word [rdi], bx
lea rcx, [0x010036e8]
call fcn.0100fdd0
lea rdx, [0x01003710]
lea rcx, [0x01003720]
call fcn.0100fdd0
lea r8, [0x010037f0]
mov edx, 1
xor ecx, ecx
mov qword [0x01044db8], r13
mov qword [0x01044b78], r12
mov dword [0x01044b80], ebx
mov dword [0x01044b84], ebx
mov dword [0x01044db4], ebx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [0x01044b70], rax
cmp rax, rbx
je 0x100fa4f
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [0x01044b68], ebx
cmp eax, ebx
je 0x100fa59
mov dword [0x01044b68], 1
mov ecx, ebp
call fcn.0100fb38
cmp rax, rbx
jne 0x100faab
mov rcx, qword [0x01044b88]
cmp rcx, rbx
je 0x100fa82
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [0x01044b88], rbx
lea rcx, [0x01003750]
call fcn.0100fdd0
jmp 0x100fafd
cmp eax, 0xffffffff
je 0x100fac4
lea rcx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_DispatchMessageW]
lea rcx, [rsp + 0x48]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, ebx
jne 0x100fa90
jmp 0x100fad0
lea rcx, [0x010037a0]
call fcn.0100fdd0
mov rcx, qword [0x01044b88]
cmp rcx, rbx
je 0x100faed
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov qword [0x01044b88], rbx
lea rcx, [0x010037c8]
call fcn.0100fdd0
mov ebx, dword [rsp + 0x58]
lea rax, [0x0100b9c0]
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
call fcn.0101fb88
mov eax, ebx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rdi
ret
Function at 0x100fdd0
Capabilities:
Get file size
Write file on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rcx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x20], r9
push rbx
push rbp
sub rsp, 0x68
cmp dword [0x01044b6c], 0
je 0x100fef7
mov eax, 0x30
lea rbp, [r11 + 0x10]
cmp ax, word [0x01044b90]
je 0x100fef7
and qword [r11 - 0x48], 0
lea r8d, [rax - 0x2f]
lea rcx, [0x01044b90]
xor r9d, r9d
mov edx, 0xc0000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x100fef7
and dword [rsp + 0x44], 0
and dword [rsp + 0x48], 0
lea rdx, [rsp + 0x48]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
jne 0x100fe8a
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
lea r8d, [rax + 2]
lea rdx, [rsp + 0x40]
mov rcx, rbx
mov byte [rsp + 0x40], 0xff
mov byte [rsp + 0x41], 0xfe
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x100feee
mov rax, qword [0x01043880]
mov rdx, qword [rsp + 0x80]
lea rcx, [rsp + 0x50]
mov r8, rbp
mov qword [rsp + 0x50], rax
call fcn.0100e2b8
mov rdx, qword [rsp + 0x50]
and qword [rsp + 0x20], 0
mov r8d, dword [rdx - 0x10]
lea r9, [rsp + 0x44]
mov rcx, rbx
add r8d, r8d
call qword [sym.imp.KERNEL32.dll_WriteFile]
lea rcx, [rsp + 0x50]
call fcn.0100d9e0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsp, 0x68
pop rbp
pop rbx
ret
Function at 0x100ff04
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r14
sub rsp, 0x150
mov rax, qword [0x01042480]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov r12d, ecx
mov rbp, rdx
mov ebx, 0x114
lea rcx, [rsp + 0x20]
xor edx, edx
mov r8, rbx
xor edi, edi
call fcn.010328a0
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], ebx
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, edi
je 0x1010101
cmp dword [rsp + 0x30], 2
jne 0x1010101
cmp dword [rsp + 0x24], 5
jb 0x1010101
lea r14d, [rbx - 0x2c]
mov rbx, qword [0x01044dd0]
mov esi, edi
cmp r12d, 1
jne 0x100fffe
cmp rbx, rdi
jne 0x100ffc2
mov rcx, r14
call fcn.010270b8
cmp rax, rdi
je 0x100ffb3
mov rcx, rax
call fcn.01025270
mov rbx, rax
mov qword [0x01044dd0], rax
jmp 0x100ffbd
mov rbx, rdi
mov qword [0x01044dd0], rbx
cmp rbx, rdi
je 0x100fffe
cmp rbp, rdi
je 0x100fffe
mov rcx, rbx
call fcn.010253c8
cmp eax, 1
jne 0x100fff7
lea rcx, [rbx + 0x80]
mov rdx, rbp
call fcn.01025c30
mov esi, eax
cmp eax, 1
jne 0x100fff7
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0102567c
mov esi, eax
mov rbx, qword [0x01044dd0]
cmp r12d, 2
jne 0x1010077
cmp rbx, rdi
jne 0x1010034
mov rcx, r14
call fcn.010270b8
cmp rax, rdi
je 0x101002a
mov rcx, rax
call fcn.01025270
mov rbx, rax
mov qword [0x01044dd0], rax
jmp 0x1010034
mov rbx, rdi
mov qword [0x01044dd0], rbx
mov esi, edi
cmp rbx, rdi
je 0x1010077
cmp rbp, rdi
je 0x1010077
mov rcx, rbx
call fcn.010253c8
cmp eax, 1
jne 0x1010070
lea rcx, [rbx + 0x80]
mov rdx, rbp
call fcn.01025d28
mov esi, eax
cmp eax, 1
jne 0x1010070
lea rcx, [rbx + 8]
xor edx, edx
call fcn.01025704
mov esi, eax
mov rbx, qword [0x01044dd0]
cmp r12d, 3
jne 0x10100e9
cmp rbx, rdi
jne 0x10100ad
mov rcx, r14
call fcn.010270b8
cmp rax, rdi
je 0x10100a3
mov rcx, rax
call fcn.01025270
mov rbx, rax
mov qword [0x01044dd0], rax
jmp 0x10100ad
mov rbx, rdi
mov qword [0x01044dd0], rbx
mov esi, edi
cmp rbx, rdi
je 0x10100e9
cmp rbp, rdi
je 0x10100e9
mov rcx, rbx
call fcn.010253c8
cmp eax, 1
jne 0x10100e9
lea rcx, [rbx + 0x80]
mov rdx, rbp
call fcn.01025e20
mov esi, eax
cmp eax, 1
jne 0x10100e9
lea rcx, [rbx + 8]
xor edx, edx
call fcn.0102567c
mov esi, eax
cmp esi, edi
je 0x10100fe
mov dword [0x01044dc4], 1
mov edi, 1
jmp 0x1010101
or edi, 0xffffffff
mov eax, edi
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.01026f20
lea r11, [rsp + 0x150]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r12
pop rdi
ret
Function at 0x1010778
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0xe0
lea rcx, [0x010038c0]
mov edi, r8d
mov rbx, rdx
call fcn.0100fdd0
xor edx, edx
lea rcx, [rsp + 0x70]
lea r8d, [rdx + 0x68]
call fcn.010328a0
mov eax, 1
xor r9d, r9d
mov word [rsp + 0xb0], ax
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x70]
mov rdx, rbx
mov qword [rsp + 0x40], rax
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
xor ecx, ecx
mov dword [rsp + 0x70], 0x68
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
mov ebx, eax
test eax, eax
jne 0x101080b
lea rcx, [0x010038f0]
call fcn.0100fdd0
jmp 0x1010867
lea rcx, [0x01003960]
call fcn.0100fdd0
test edi, edi
je 0x1010851
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x010039d0]
mov edx, eax
call fcn.0100fdd0
mov rcx, qword [rsp + 0x50]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x01003a40]
mov edx, eax
call fcn.0100fdd0
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rbx, qword [rsp + 0xf0]
add rsp, 0xe0
pop rdi
ret