joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18011e480
Capabilities:
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [0x180247c30]
xorps xmm0, xmm0
add rcx, 1
mov rbx, qword [0x180247c58]
js 0x18011e4a4
cvtsi2ss xmm0, rcx
jmp 0x18011e4b9
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x180247c20]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
movss xmm1, dword [0x180232588]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x18011e4eb
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x18011e4eb
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rbx, rcx
jae 0x18011e51d
cmp rbx, 0x200
jae 0x18011e51a
lea rbx, [rbx*8]
cmp rbx, rcx
jae 0x18011e51d
mov rbx, rcx
mov rdx, rbx
add rsp, 0x20
pop rbx
jmp 0x18011e530
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x18011e561
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x180247c28]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x180247c38]
lea rdx, [rdi + rdi]
call fcn.18002f8d0
mov rcx, qword [0x180247c28]
lea rax, [rdi - 1]
mov qword [0x180247c50], rax
mov qword [0x180247c58], rdi
mov rcx, qword [rcx]
mov rdx, rcx
cmp rcx, rbx
je 0x18011e6b2
mov qword [rsp + 0x40], rsi
movabs rdi, 0xcbf29ce484222325
movabs rsi, 0x100000001b3
movzx r9d, byte [rcx + 0x10]
mov rdx, qword [rdx]
mov r11d, r9d
xor r11, rdi
imul r11, rsi
and r11, rax
shl r11, 4
add r11, qword [0x180247c38]
mov r8, qword [r11]
cmp r8, rbx
jne 0x18011e602
mov qword [r11], rcx
mov qword [r11 + 8], rcx
jmp 0x18011e673
mov rax, qword [r11 + 8]
cmp r9b, byte [rax + 0x10]
jne 0x18011e63b
mov r8, qword [rax]
cmp r8, rcx
je 0x18011e635
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rax, qword [r8 + 8]
mov qword [rax], rcx
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], rax
mov qword [r11 + 8], rcx
jmp 0x18011e673
cmp r8, rax
je 0x18011e64f
mov rax, qword [rax + 8]
cmp r9b, byte [rax + 0x10]
je 0x18011e687
cmp r8, rax
jne 0x18011e640
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rax
mov r8, qword [rax + 8]
mov qword [r8], rcx
mov qword [rax + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], r8
mov qword [r11], rcx
mov rcx, rdx
cmp rdx, rbx
je 0x18011e6ad
mov rax, qword [0x180247c50]
jmp 0x18011e5d1
mov r10, qword [rax]
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
jmp 0x18011e673
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18011e530
Capabilities:
Hash data using fnv

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [0x180247c30]
xorps xmm0, xmm0
add rcx, 1
mov rbx, qword [0x180247c58]
js 0x18011e4a4
cvtsi2ss xmm0, rcx
jmp 0x18011e4b9
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x180247c20]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
movss xmm1, dword [0x180232588]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x18011e4eb
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x18011e4eb
movabs rax, 0x8000000000000000
mov rcx, rax
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rbx, rcx
jae 0x18011e51d
cmp rbx, 0x200
jae 0x18011e51a
lea rbx, [rbx*8]
cmp rbx, rcx
jae 0x18011e51d
mov rbx, rcx
mov rdx, rbx
add rsp, 0x20
pop rbx
jmp 0x18011e530
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x18011e561
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x180247c28]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x180247c38]
lea rdx, [rdi + rdi]
call fcn.18002f8d0
mov rcx, qword [0x180247c28]
lea rax, [rdi - 1]
mov qword [0x180247c50], rax
mov qword [0x180247c58], rdi
mov rcx, qword [rcx]
mov rdx, rcx
cmp rcx, rbx
je 0x18011e6b2
mov qword [rsp + 0x40], rsi
movabs rdi, 0xcbf29ce484222325
movabs rsi, 0x100000001b3
movzx r9d, byte [rcx + 0x10]
mov rdx, qword [rdx]
mov r11d, r9d
xor r11, rdi
imul r11, rsi
and r11, rax
shl r11, 4
add r11, qword [0x180247c38]
mov r8, qword [r11]
cmp r8, rbx
jne 0x18011e602
mov qword [r11], rcx
mov qword [r11 + 8], rcx
jmp 0x18011e673
mov rax, qword [r11 + 8]
cmp r9b, byte [rax + 0x10]
jne 0x18011e63b
mov r8, qword [rax]
cmp r8, rcx
je 0x18011e635
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rax, qword [r8 + 8]
mov qword [rax], rcx
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], rax
mov qword [r11 + 8], rcx
jmp 0x18011e673
cmp r8, rax
je 0x18011e64f
mov rax, qword [rax + 8]
cmp r9b, byte [rax + 0x10]
je 0x18011e687
cmp r8, rax
jne 0x18011e640
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], rax
mov r8, qword [rax + 8]
mov qword [r8], rcx
mov qword [rax + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], r8
mov qword [r11], rcx
mov rcx, rdx
cmp rdx, rbx
je 0x18011e6ad
mov rax, qword [0x180247c50]
jmp 0x18011e5d1
mov r10, qword [rax]
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
jmp 0x18011e673
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18011e6c0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x30
movzx ecx, byte [r8]
mov rdi, rdx
mov rdx, qword [0x180247c50]
movabs rax, 0xcbf29ce484222325
mov rsi, qword [0x180247c28]
mov ebp, ecx
xor rbp, rax
mov r14, r8
mov r8, qword [0x180247c38]
movabs rax, 0x100000001b3
imul rbp, rax
and rdx, rbp
add rdx, rdx
mov rax, qword [r8 + rdx*8 + 8]
cmp rax, rsi
je 0x18011e74b
mov rdx, qword [r8 + rdx*8]
cmp cl, byte [rax + 0x10]
je 0x18011e730
cmp rax, rdx
je 0x18011e748
mov rax, qword [rax + 8]
cmp cl, byte [rax + 0x10]
jne 0x18011e722
mov qword [rdi], rax
mov rax, rdi
mov byte [rdi + 8], 0
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
mov rsi, rax
movabs rax, 0x492492492492492
cmp qword [0x180247c30], rax
jne 0x18011e76c
lea rcx, str.unordered_map_set_too_long
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
mov ecx, 0x38
mov qword [rsp + 0x50], rbx
call fcn.180129e10
mov rbx, rax
lea rdx, [r14 + 8]
movzx eax, byte [r14]
lea rcx, [rbx + 0x18]
mov byte [rbx + 0x10], al
call fcn.18002d8a0
mov rdx, qword [0x180247c30]
xorps xmm0, xmm0
lea rcx, [rdx + 1]
test rcx, rcx
js 0x18011e7ac
cvtsi2ss xmm0, rcx
jmp 0x18011e7c1
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mov rcx, qword [0x180247c58]
xorps xmm1, xmm1
test rcx, rcx
js 0x18011e7d7
cvtsi2ss xmm1, rcx
jmp 0x18011e7ec
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [0x180247c20]
jbe 0x18011e872
call fcn.18011e480
mov rax, qword [0x180247c50]
mov r8, qword [0x180247c38]
and rax, rbp
mov rdx, qword [0x180247c28]
add rax, rax
mov rcx, qword [r8 + rax*8 + 8]
cmp rcx, rdx
jne 0x18011e833
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x28], 0
jmp 0x18011e85b
mov rdx, qword [r8 + rax*8]
movzx eax, byte [rbx + 0x10]
cmp al, byte [rcx + 0x10]
je 0x18011e84e
cmp rcx, rdx
je 0x18011e8b5
mov rcx, qword [rcx + 8]
cmp al, byte [rcx + 0x10]
jne 0x18011e840
mov rax, qword [rcx]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
movaps xmm0, xmmword [rsp + 0x20]
mov rdx, qword [0x180247c30]
movdqa xmmword [rsp + 0x20], xmm0
mov rsi, qword [rsp + 0x20]
mov r8, qword [rsi + 8]
inc rdx
mov qword [0x180247c30], rdx
mov qword [rbx], rsi
mov qword [rbx + 8], r8
mov qword [r8], rbx
mov qword [rsi + 8], rbx
mov rax, qword [0x180247c50]
mov rcx, qword [0x180247c38]
and rax, rbp
add rax, rax
mov rdx, qword [rcx + rax*8]
cmp rdx, qword [0x180247c28]
jne 0x18011e8c5
mov qword [rcx + rax*8], rbx
jmp 0x18011e8f2
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], 0
jmp 0x18011e85b
cmp rdx, rsi
jne 0x18011e8eb
mov qword [rcx + rax*8], rbx
mov rax, rdi
mov qword [rdi], rbx
mov rbx, qword [rsp + 0x50]
mov byte [rdi + 8], 1
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
cmp qword [rcx + rax*8 + 8], r8
jne 0x18011e8f7
mov qword [rcx + rax*8 + 8], rbx
mov rbp, qword [rsp + 0x68]
mov rax, rdi
mov qword [rdi], rbx
mov rbx, qword [rsp + 0x50]
mov byte [rdi + 8], 1
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x180120ef0
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
jne 0x180120f18
xor eax, eax
lea r8, [0x180120ed0]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret
Function at 0x180126920
Capabilities:
Suspend thread

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
mov qword [rax], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], 0
mov rcx, qword [rsp + 0x40]
call fcn.180126710
mov rax, qword [rsp + 0x40]
cmp qword [rax], 0
je 0x1801269f7
mov dword [rsp + 0x20], 0
jmp 0x180126994
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0xc]
cmp dword [rsp + 0x20], eax
jae 0x1801269f7
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
mov r8d, dword [rcx + rax*4]
xor edx, edx
mov ecx, 0x5a
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x1801269f5
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
call fcn.1801264f0
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18012698a
add rsp, 0x30
pop rdi
ret

Function at 0x180126a10
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x30
mov rdi, rsp
mov ecx, 0xc
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x40]
cmp qword [rax], 0
je 0x180126ab4
mov dword [rsp + 0x20], 0
jmp 0x180126a4d
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0xc]
cmp dword [rsp + 0x20], eax
jae 0x180126a9d
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx]
mov r8d, dword [rcx + rax*4]
xor edx, edx
mov ecx, 0x5a
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x180126a9b
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180126a43
mov rax, qword [rsp + 0x40]
mov r8, qword [rax]
xor edx, edx
mov rcx, qword [0x180246958]
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x30
pop rdi
ret
Function at 0x180126ac0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
push rdi
sub rsp, 0x70
mov rdi, rsp
mov ecx, 0x1c
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov ecx, dword [rsp + 0x80]
mov eax, dword [rsp + 0x80]
imul rax, rax, 0x38
mov rcx, qword [0x180249740]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], 5
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x20]
movzx eax, byte [rax + 0x20]
and al, 1
movzx eax, al
test eax, eax
je 0x180126b44
mov rax, qword [rsp + 0x50]
sub rax, 5
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x48]
add rax, 2
mov qword [rsp + 0x48], rax
lea r9, [rsp + 0x34]
mov r8d, 0x40
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180126b6d
mov eax, 0xa
jmp 0x180126ca7
cmp dword [rsp + 0x88], 0
je 0x180126bdb
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x58]
mov byte [rax], 0xe9
mov rax, qword [rsp + 0x50]
add rax, 5
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 8]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 1], eax
mov rax, qword [rsp + 0x20]
movzx eax, byte [rax + 0x20]
and al, 1
movzx eax, al
test eax, eax
je 0x180126bd9
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov byte [rax], 0xeb
mov rax, qword [rsp + 0x60]
mov byte [rax + 1], 0xf9
jmp 0x180126c27
mov rax, qword [rsp + 0x20]
movzx eax, byte [rax + 0x20]
and al, 1
movzx eax, al
test eax, eax
je 0x180126c0b
mov rax, qword [rsp + 0x20]
add rax, 0x18
mov r8d, 7
mov rdx, rax
mov rcx, qword [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcpy
jmp 0x180126c27
mov rax, qword [rsp + 0x20]
add rax, 0x18
mov r8d, 5
mov rdx, rax
mov rcx, qword [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcpy
lea r9, [rsp + 0x34]
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movzx eax, byte [rsp + 0x88]
and al, 1
shl al, 1
mov rcx, qword [rsp + 0x20]
movzx ecx, byte [rcx + 0x20]
and cl, 0xfd
or cl, al
movzx eax, cl
mov rcx, qword [rsp + 0x20]
mov byte [rcx + 0x20], al
movzx eax, byte [rsp + 0x88]
and al, 1
shl al, 2
mov rcx, qword [rsp + 0x20]
movzx ecx, byte [rcx + 0x20]
and cl, 0xfb
or cl, al
movzx eax, cl
mov rcx, qword [rsp + 0x20]
mov byte [rcx + 0x20], al
xor eax, eax
mov rdi, rax
mov rcx, rsp
lea rdx, [0x18012ee70]
call fcn.18012ac08
mov rax, rdi
add rsp, 0x70
pop rdi
ret
Function at 0x180128190
Capabilities:
Check for software breakpoints

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x10
mov rdi, rsp
mov ecx, 4
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x20]
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1801281fe
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
cmp eax, 0x90
je 0x1801281fe
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
cmp eax, 0xcc
je 0x1801281fe
xor eax, eax
jmp 0x180128245
mov dword [rsp], 1
jmp 0x18012820f
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
mov eax, dword [rsp + 0x28]
cmp dword [rsp], eax
jae 0x180128240
mov eax, dword [rsp]
mov rcx, qword [rsp + 0x20]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x20]
movzx ecx, byte [rdx + rcx]
cmp eax, ecx
je 0x18012823e
xor eax, eax
jmp 0x180128245
jmp 0x180128207
mov eax, 1
add rsp, 0x10
pop rdi
ret
Function at 0xb1ce70
Capabilities:
Terminate process

Disassembly:
cld
pop r11
jmp 0xb1ce7d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0xb1ce8d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0xb1ce75
lea eax, [rcx + 1]
jmp 0xb1ce9b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0xb1ceae
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0xb1ce94
sub eax, 3
jb 0xb1cece
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0xb1cf1d
sar eax, 1
movsxd rbp, eax
jb 0xb1cf04
jmp 0xb1cedc
add ebx, ebx
jne 0xb1ceda
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0xb1cf04
inc ecx
add ebx, ebx
jne 0xb1ceea
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0xb1cf04
call r11
adc ecx, ecx
add ebx, ebx
jne 0xb1cefd
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0xb1ceec
add ecx, 2
jmp 0xb1cf09
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.00b1ce32
jmp 0xb1ce7d
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x337e00
mov dl, 0x26
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0xb1cf69
cmp rsi, rcx
jae 0xb1cf71
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0xb1cf50
cmp al, 0x8f
ja 0xb1cf50
cmp byte [rsi - 2], 0xf
je 0xb1cf56
sub al, 0xe8
cmp al, 1
ja 0xb1cf3a
cmp rsi, rcx
jae 0xb1cf71
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0xb1cf40
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0xb1cf71
lodsb al, byte [rsi]
jmp 0xb1cf50
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x713000]
mov eax, dword [rdi]
or eax, eax
je 0xb1cfce
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x71d000]
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 0xb1cf7e
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 0xb1cfc8
mov qword [rbx], rax
add rbx, 8
jmp 0xb1cf9e
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 0xb1d012
cmp al, 0xef
ja 0xb1cffa
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0xb1cfda
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
or eax, eax
jne 0xb1cfe9
mov eax, dword [rdi]
add rdi, 4
jmp 0xb1cfe9
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
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0xb1d066
sub rsp, 0xffffffffffffff80
jmp 0x477ec0
Function at 0x140002f40
Capabilities:
Print debug messages

Disassembly:
sub rsp, 0x68
mov rax, qword [0x14005f180]
xor rax, rsp
mov qword [rsp + 0x58], rax
call qword [sym.imp.MSVCR120.dll___iob_func]
lea rcx, [rax + 0x60]
call qword [sym.imp.MSVCR120.dll__fileno]
lea rdx, [rsp + 0x28]
mov ecx, eax
call qword [sym.imp.MSVCR120.dll__fstat64i32]
test eax, eax
jne 0x140002fd0
mov eax, 0x1000
cmp word [rsp + 0x2e], ax
jne 0x140002fd0
call qword [sym.imp.MSVCR120.dll___iob_func]
xor r9d, r9d
xor edx, edx
lea rcx, [rax + 0x60]
lea r8d, [r9 + 4]
call qword [sym.imp.MSVCR120.dll_setvbuf]
lea rcx, [0x140042880]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [sym.imp.liblocal.dll_Debug]
cmp dword [rax], 3
jge 0x140002fc7
mov rax, qword [sym.imp.liblocal.dll_LgTrace]
mov ecx, dword [rax]
test ecx, ecx
je 0x14000300a
shr ecx, 2
and ecx, 1
je 0x14000300a
lea rcx, str.Turned_off_file_buffering_for_stderr_n
jmp 0x140003005
lea rcx, [0x140042900]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [sym.imp.liblocal.dll_Debug]
cmp dword [rax], 3
jge 0x140002ffe
mov rax, qword [sym.imp.liblocal.dll_LgTrace]
mov ecx, dword [rax]
test ecx, ecx
je 0x14000300a
shr ecx, 2
and ecx, 1
je 0x14000300a
lea rcx, str.Unable_to_turn_off_file_buffering_for_stderr_n
call sub.liblocal.dll_debugprintf
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1400403f0
add rsp, 0x68
ret
Function at 0x14000ca80
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
mov eax, 0xd050
call fcn.1400406f0
sub rsp, rax
mov rax, qword [0x14005f180]
xor rax, rsp
mov qword [rsp + 0xd040], rax
mov ebp, ecx
mov esi, r8d
mov rbx, rdx
lea rcx, [rsp + 0x3441]
xor edx, edx
mov r8d, 0x33ff
mov edi, r9d
mov byte [rsp + 0x3440], 0
call sub.MSVCR120.dll_memset
lea rcx, [rsp + 0x41]
xor edx, edx
mov r8d, 0x33ff
mov byte [rsp + 0x40], 0
call sub.MSVCR120.dll_memset
test rbx, rbx
jne 0x14000cb22
mov rax, qword [sym.imp.liblocal.dll_Debug]
cmp dword [rax], 5
jge 0x14000cb0c
mov rax, qword [sym.imp.liblocal.dll_LgTrace]
mov ecx, dword [rax]
test ecx, ecx
je 0x14000cb18
shr ecx, 4
and ecx, 1
je 0x14000cb18
lea rcx, str.select_files_for_restore:_vss_filedesc_s_parameter_is_NULL_n
call sub.liblocal.dll_debugprintf
mov eax, 1
jmp 0x14000cbe1
mov qword [rsp + 0xd080], r14
xor r14d, r14d
nop dword [rax]
lea rcx, [rsp + 0x6842]
xor edx, edx
mov r8d, 0x67fe
mov word [rsp + 0x6840], r14w
call sub.MSVCR120.dll_memset
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14000cbca
cmp qword [rbx + 0x28], r14
je 0x14000cbca
lea rdx, [rsp + 0x6840]
mov r8d, 0x3400
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea rdx, [rsp + 0x6840]
lea rcx, [rsp + 0x3440]
xor r9d, r9d
mov r8d, 0x3400
call sub.liblocal.dll_lg_wcs_to_utf8s
mov rdx, qword [rbx + 0x28]
lea rcx, [rsp + 0x40]
xor r9d, r9d
mov r8d, 0x3400
call sub.liblocal.dll_lg_wcs_to_utf8s
mov r9d, dword [rbx + 8]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x3440]
mov ecx, ebp
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], esi
call fcn.14000c6d0
test eax, eax
je 0x14000cc04
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14000cb30
lea eax, [rbx + 1]
mov r14, qword [rsp + 0xd080]
mov rcx, qword [rsp + 0xd040]
xor rcx, rsp
call fcn.1400403f0
mov rbx, qword [rsp + 0xd088]
add rsp, 0xd050
pop rdi
pop rsi
pop rbp
ret
xor eax, eax
jmp 0x14000cbd9
Function at 0x14000db90
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
mov eax, 0x9c60
call fcn.1400406f0
sub rsp, rax
mov rax, qword [0x14005f180]
xor rax, rsp
mov qword [rsp + 0x9c50], rax
mov rbx, rcx
lea rcx, [rsp + 0x3452]
xor edi, edi
xor edx, edx
mov r8d, 0x67fe
mov word [rsp + 0x3450], di
call sub.MSVCR120.dll_memset
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x33ff
mov byte [rsp + 0x50], dil
call sub.MSVCR120.dll_memset
mov rcx, rbx
mov dword [rsp + 0x30], 0x6800
call fcn.14002a780
test eax, eax
je 0x14000dd24
lea rax, [rsp + 0x38]
lea rdx, str.SYSTEMCurrentControlSetServicesufad_p2v
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14000dc4f
mov edx, 2
lea r9, str.Failed_to_find_VMware_Converter_install_directory._n
mov ecx, 0x11084
mov r8d, edx
call sub.liblocal.dll_msg_print
jmp 0x14000dd24
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x3450]
lea rdx, str.ImagePath
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x14000dca2
mov edx, 2
lea r9, str.Failed_to_find_VMware_Converter_Services_from_Registry._n
mov ecx, 0x11085
mov r8d, edx
call sub.liblocal.dll_msg_print
jmp 0x14000dd24
lea rdx, [rsp + 0x3450]
lea rcx, [rsp + 0x50]
xor r9d, r9d
mov r8d, 0x3400
call sub.liblocal.dll_lg_wcs_to_utf8s
lea rdx, str.vmware_ufad.exe
lea rcx, [rsp + 0x50]
call qword [sym.imp.MSVCR120.dll_strstr]
test rax, rax
je 0x14000dcd7
mov byte [rax], dil
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rbx
call fcn.14002a3b0
test eax, eax
je 0x14000dd24
cmp qword [rbx + 0x40], rdi
je 0x14000dcfc
mov rcx, rbx
call fcn.140029a00
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14000cfd0
test eax, eax
je 0x14000dd24
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.14000cc10
mov ecx, 1
test eax, eax
cmovne edi, ecx
mov rcx, rbx
call fcn.14002ad10
mov eax, edi
mov rcx, qword [rsp + 0x9c50]
xor rcx, rsp
call fcn.1400403f0
mov rbx, qword [rsp + 0x9c78]
add rsp, 0x9c60
pop rdi
ret