joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400b35d0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
mov eax, 0x40
call fcn.1400c0180
sub rsp, rax
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
test r8, r8
jne 0x1400b3608
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
test rcx, rcx
je 0x1400b369f
test rdx, rdx
je 0x1400b3663
mov rcx, qword [rcx + 0x10]
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x28], r8
call fcn.1400648c0
test rax, rax
jne 0x1400b368b
lea rdx, [0x140199b18]
sub rdx, rbx
nop dword [rax]
movzx ecx, byte [rbx]
movzx eax, byte [rbx + rdx]
sub ecx, eax
jne 0x1400b3652
inc rbx
test eax, eax
jne 0x1400b3640
test ecx, ecx
jne 0x1400b3663
mov rcx, rdi
call fcn.1400c087c
test rax, rax
jne 0x1400b36a7
mov rcx, qword [rsi + 0x10]
lea rax, str.default
lea rdx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rdi
call fcn.1400648c0
test rax, rax
je 0x1400b35f6
mov rax, qword [rax + 0x10]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
mov rcx, r8
call fcn.1400c087c
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x1400c1208
Capabilities:
Terminate process

Disassembly:
xor r8d, r8d
xor edx, edx
jmp fcn.1400c1070
Function at 0x1400e3440
Capabilities:
Encode data using xor

Disassembly:
xor eax, dword [r15]
xor ebx, dword [r15 + 4]
xor ecx, dword [r15 + 8]
xor edx, dword [r15 + 0xc]
mov r13d, dword [r15 + 0xf0]
sub r13d, 1
jmp 0x1400e3460
movzx esi, al
movzx edi, bl
movzx ebp, cl
mov r10d, dword [r14 + rsi*8]
mov r11d, dword [r14 + rdi*8]
mov r12d, dword [r14 + rbp*8]
movzx esi, bh
movzx edi, ch
movzx ebp, dl
xor r10d, dword [r14 + rsi*8 + 3]
xor r11d, dword [r14 + rdi*8 + 3]
mov r8d, dword [r14 + rbp*8]
movzx esi, dh
shr ecx, 0x10
movzx ebp, ah
xor r12d, dword [r14 + rsi*8 + 3]
shr edx, 0x10
xor r8d, dword [r14 + rbp*8 + 3]
shr ebx, 0x10
lea r15, [r15 + 0x10]
shr eax, 0x10
movzx esi, cl
movzx edi, dl
movzx ebp, al
xor r10d, dword [r14 + rsi*8 + 2]
xor r11d, dword [r14 + rdi*8 + 2]
xor r12d, dword [r14 + rbp*8 + 2]
movzx esi, dh
movzx edi, ah
movzx ebp, bl
xor r10d, dword [r14 + rsi*8 + 1]
xor r11d, dword [r14 + rdi*8 + 1]
xor r8d, dword [r14 + rbp*8 + 2]
mov edx, dword [r15 + 0xc]
movzx edi, bh
movzx ebp, ch
mov eax, dword [r15]
xor r12d, dword [r14 + rdi*8 + 1]
xor r8d, dword [r14 + rbp*8 + 1]
mov ebx, dword [r15 + 4]
mov ecx, dword [r15 + 8]
xor eax, r10d
xor ebx, r11d
xor ecx, r12d
xor edx, r8d
sub r13d, 1
jne 0x1400e3460
movzx esi, al
movzx edi, bl
movzx ebp, cl
movzx r10d, byte [r14 + rsi*8 + 2]
movzx r11d, byte [r14 + rdi*8 + 2]
movzx r12d, byte [r14 + rbp*8 + 2]
movzx esi, dl
movzx edi, bh
movzx ebp, ch
movzx r8d, byte [r14 + rsi*8 + 2]
mov edi, dword [r14 + rdi*8]
mov ebp, dword [r14 + rbp*8]
and edi, 0xff00
and ebp, 0xff00
xor r10d, edi
xor r11d, ebp
shr ecx, 0x10
movzx esi, dh
movzx edi, ah
shr edx, 0x10
mov esi, dword [r14 + rsi*8]
mov edi, dword [r14 + rdi*8]
and esi, 0xff00
and edi, 0xff00
shr ebx, 0x10
xor r12d, esi
xor r8d, edi
shr eax, 0x10
movzx esi, cl
movzx edi, dl
movzx ebp, al
mov esi, dword [r14 + rsi*8]
mov edi, dword [r14 + rdi*8]
mov ebp, dword [r14 + rbp*8]
and esi, 0xff0000
and edi, 0xff0000
and ebp, 0xff0000
xor r10d, esi
xor r11d, edi
xor r12d, ebp
movzx esi, bl
movzx edi, dh
movzx ebp, ah
mov esi, dword [r14 + rsi*8]
mov edi, dword [r14 + rdi*8 + 2]
mov ebp, dword [r14 + rbp*8 + 2]
and esi, 0xff0000
and edi, 0xff000000
and ebp, 0xff000000
xor r8d, esi
xor r10d, edi
xor r11d, ebp
movzx esi, bh
movzx edi, ch
mov edx, dword [r15 + 0x1c]
mov esi, dword [r14 + rsi*8 + 2]
mov edi, dword [r14 + rdi*8 + 2]
mov eax, dword [r15 + 0x10]
and esi, 0xff000000
and edi, 0xff000000
xor r12d, esi
xor r8d, edi
mov ebx, dword [r15 + 0x14]
mov ecx, dword [r15 + 0x18]
xor eax, r10d
xor ebx, r11d
xor ecx, r12d
xor edx, r8d
repz ret
Function at 0x1400e38a0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r10, rsp
lea rcx, [rdx - 0x3f]
and rsp, 0xffffffffffffffc0
sub rcx, rsp
neg rcx
and rcx, 0x3c0
sub rsp, rcx
sub rsp, 0x20
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r10
mov r15, rdx
mov r13d, dword [r15 + 0xf0]
mov eax, dword [rdi]
mov ebx, dword [rdi + 4]
mov ecx, dword [rdi + 8]
mov edx, dword [rdi + 0xc]
shl r13d, 4
lea rbp, [r15 + r13]
mov qword [rsp], r15
mov qword [rsp + 8], rbp
lea r14, [0x1400e5240]
lea rbp, [rsp + 0x300]
sub rbp, r14
and rbp, 0x300
lea r14, [r14 + rbp]
call fcn.1400e3630
mov r9, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
mov r15, qword [rsi]
mov r14, qword [rsi + 8]
mov r13, qword [rsi + 0x10]
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
lea rsp, [rsi + 0x30]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret

Function at 0x1400e38ad
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r10, rsp
lea rcx, [rdx - 0x3f]
and rsp, 0xffffffffffffffc0
sub rcx, rsp
neg rcx
and rcx, 0x3c0
sub rsp, rcx
sub rsp, 0x20
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r10
mov r15, rdx
mov r13d, dword [r15 + 0xf0]
mov eax, dword [rdi]
mov ebx, dword [rdi + 4]
mov ecx, dword [rdi + 8]
mov edx, dword [rdi + 0xc]
shl r13d, 4
lea rbp, [r15 + r13]
mov qword [rsp], r15
mov qword [rsp + 8], rbp
lea r14, [0x1400e5240]
lea rbp, [rsp + 0x300]
sub rbp, r14
and rbp, 0x300
lea r14, [r14 + rbp]
call fcn.1400e3630
mov r9, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov dword [r9], eax
mov dword [r9 + 4], ebx
mov dword [r9 + 8], ecx
mov dword [r9 + 0xc], edx
mov r15, qword [rsi]
mov r14, qword [rsi + 8]
mov r13, qword [rsi + 0x10]
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
lea rsp, [rsi + 0x30]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
Function at 0x1400e3980
Capabilities:
Encode data using xor

Disassembly:
xor eax, dword [r15]
xor ebx, dword [r15 + 4]
xor ecx, dword [r15 + 8]
xor edx, dword [r15 + 0xc]
mov r13d, dword [r15 + 0xf0]
sub r13d, 1
jmp 0x1400e39a0
movzx esi, al
movzx edi, bl
movzx ebp, cl
mov r10d, dword [r14 + rsi*8]
mov r11d, dword [r14 + rdi*8]
mov r12d, dword [r14 + rbp*8]
movzx esi, dh
movzx edi, ah
movzx ebp, dl
xor r10d, dword [r14 + rsi*8 + 3]
xor r11d, dword [r14 + rdi*8 + 3]
mov r8d, dword [r14 + rbp*8]
movzx esi, bh
shr eax, 0x10
movzx ebp, ch
xor r12d, dword [r14 + rsi*8 + 3]
shr edx, 0x10
xor r8d, dword [r14 + rbp*8 + 3]
shr ebx, 0x10
lea r15, [r15 + 0x10]
shr ecx, 0x10
movzx esi, cl
movzx edi, dl
movzx ebp, al
xor r10d, dword [r14 + rsi*8 + 2]
xor r11d, dword [r14 + rdi*8 + 2]
xor r12d, dword [r14 + rbp*8 + 2]
movzx esi, bh
movzx edi, ch
movzx ebp, bl
xor r10d, dword [r14 + rsi*8 + 1]
xor r11d, dword [r14 + rdi*8 + 1]
xor r8d, dword [r14 + rbp*8 + 2]
movzx esi, dh
mov edx, dword [r15 + 0xc]
movzx ebp, ah
xor r12d, dword [r14 + rsi*8 + 1]
mov eax, dword [r15]
xor r8d, dword [r14 + rbp*8 + 1]
xor eax, r10d
mov ebx, dword [r15 + 4]
mov ecx, dword [r15 + 8]
xor ecx, r12d
xor ebx, r11d
xor edx, r8d
sub r13d, 1
jne 0x1400e39a0
lea r14, [r14 + 0x800]
movzx esi, al
movzx edi, bl
movzx ebp, cl
movzx r10d, byte [r14 + rsi]
movzx r11d, byte [r14 + rdi]
movzx r12d, byte [r14 + rbp]
movzx esi, dl
movzx edi, dh
movzx ebp, ah
movzx r8d, byte [r14 + rsi]
movzx edi, byte [r14 + rdi]
movzx ebp, byte [r14 + rbp]
shl edi, 8
shl ebp, 8
xor r10d, edi
xor r11d, ebp
shr edx, 0x10
movzx esi, bh
movzx edi, ch
shr eax, 0x10
movzx esi, byte [r14 + rsi]
movzx edi, byte [r14 + rdi]
shl esi, 8
shl edi, 8
shr ebx, 0x10
xor r12d, esi
xor r8d, edi
shr ecx, 0x10
movzx esi, cl
movzx edi, dl
movzx ebp, al
movzx esi, byte [r14 + rsi]
movzx edi, byte [r14 + rdi]
movzx ebp, byte [r14 + rbp]
shl esi, 0x10
shl edi, 0x10
shl ebp, 0x10
xor r10d, esi
xor r11d, edi
xor r12d, ebp
movzx esi, bl
movzx edi, bh
movzx ebp, ch
movzx esi, byte [r14 + rsi]
movzx edi, byte [r14 + rdi]
movzx ebp, byte [r14 + rbp]
shl esi, 0x10
shl edi, 0x18
shl ebp, 0x18
xor r8d, esi
xor r10d, edi
xor r11d, ebp
movzx esi, dh
movzx edi, ah
mov edx, dword [r15 + 0x1c]
movzx esi, byte [r14 + rsi]
movzx edi, byte [r14 + rdi]
mov eax, dword [r15 + 0x10]
shl esi, 0x18
shl edi, 0x18
xor r12d, esi
xor r8d, edi
mov ebx, dword [r15 + 0x14]
mov ecx, dword [r15 + 0x18]
lea r14, [r14 - 0x800]
xor eax, r10d
xor ebx, r11d
xor ecx, r12d
xor edx, r8d
repz ret
Function at 0x140002b54
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140002b9e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140002b9e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140002b9e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140002b9e
cmp dword [rcx + 0x84], 0xe
jbe 0x140002b9e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140002ba0
xor al, al
add rsp, 0x28
ret
Function at 0x14000b9ac
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.api_ms_win_core_debug_l1_1_0.dll_IsDebuggerPresent]
mov ecx, 1
mov dword [0x140016950], eax
call fcn.14000b730
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_UnhandledExceptionFilter]
cmp dword [0x140016950], 0
jne case.default.0x14000ba02
mov ecx, 1
call fcn.14000b730
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000409
add rsp, 0x20
pop rbx
jmp qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_TerminateProcess]
or ebx, dword [rdx - 0x6f]
sub ch, ch
pop rcx
jmp 0x10381d1b3
Function at 0x1400017a0
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov byte [rsp + 0x50], 0xe6
mov byte [rsp + 0x51], 0xe9
mov byte [rsp + 0x52], 0x2a
mov byte [rsp + 0x53], 0x82
mov byte [rsp + 0x54], 0x10
mov byte [rsp + 0x55], 0xfd
mov byte [rsp + 0x56], 0xef
mov byte [rsp + 0x57], 0x87
mov byte [rsp + 0x58], 0xef
mov byte [rsp + 0x59], 0xaf
mov dword [rsp + 0x24], 0xb93add78
mov dword [rsp + 0x20], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
movsxd rax, dword [rsp + 0x20]
cmp rax, 0xa
jae 0x14000183d
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
sub eax, dword [rsp + 0x24]
movzx ecx, byte [rsp + 0x24]
rol al, cl
movsxd rcx, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rcx], al
mov eax, dword [rsp + 0x24]
rol eax, 0x15
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
jmp 0x1400017f5
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x14000185c
xor eax, eax
jmp 0x140001993
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x14000187c
xor eax, eax
jmp 0x140001993
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
cmp dword [rax], 0x4550
je 0x1400018a9
xor eax, eax
jmp 0x140001993
mov eax, 8
imul rax, rax, 0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
jne 0x1400018dd
xor eax, eax
jmp 0x140001993
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
mov ecx, dword [rcx + 0x18]
mov dword [rax + 0x18], ecx
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x20]
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x1c]
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x70]
mov qword [rcx], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x24]
mov rcx, qword [rsp + 0x28]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x70]
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x70]
cmp qword [rax + 0x20], 0
je 0x140001988
mov rax, qword [rsp + 0x70]
cmp dword [rax + 0x18], 0
je 0x140001988
mov rax, qword [rsp + 0x70]
cmp qword [rax + 8], 0
je 0x140001988
mov rax, qword [rsp + 0x70]
cmp qword [rax], 0
je 0x140001988
mov rax, qword [rsp + 0x70]
cmp qword [rax + 0x10], 0
jne 0x14000198e
xor eax, eax
jmp 0x140001993
mov eax, 1
add rsp, 0x68
ret
Function at 0x1401639d0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140163a1a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140163a1a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140163a1a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140163a1a
cmp dword [rcx + 0x84], 0xe
jbe 0x140163a1a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140163a1c
xor al, al
add rsp, 0x28
ret

Function at 0x140166e7c
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x140166eeb
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140166eeb
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140166eeb
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140166eeb
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140166eeb
cmp dword [rcx + 0x84], 0xe
jbe 0x140166eeb
cmp dword [rcx + 0xf8], 0
je 0x140166eeb
mov ecx, ebx
call fcn.140166f9c
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140166d78
nop
cmp dword [rbp + 0x20], 0
je 0x140166f39
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140166f44
int3
xor edx, edx
xor ecx, ecx
lea r8d, [rdx + 1]
jmp 0x140166e7c

Function at 0x140167080
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140166e7c
Function at 0x14016a134
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x14016a164
xor eax, eax
jmp 0x14016a227
mov rbp, rbx
cmp word [rax], si
je 0x14016a189
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x14016a170
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x14016a16c
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.14016a054
movsxd r14, eax
test eax, eax
jne 0x14016a1c7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x14016a15d
mov rcx, r14
call fcn.14016abc8
mov rdi, rax
test rax, rax
jne 0x14016a1e0
xor ecx, ecx
call fcn.14016868c
jmp 0x14016a1bc
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.14016a054
test eax, eax
jne 0x14016a211
mov rcx, rdi
call fcn.14016868c
jmp 0x14016a21b
xor ecx, ecx
call fcn.14016868c
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret
Function at 0x14016f990
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14016f9b8
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x14016f9b8
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x14000291c
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x60
mov rax, qword gs:[0x30]
mov rcx, qword [rax + 0x60]
cmp dword [rcx + 0x118], 6
jae 0x140002a5e
xor edi, edi
cmp qword [0x1411ff240], rdi
jne 0x140002a55
bt qword [0x14000c3e8], 0
lea rdx, [0x14000cba0]
lea rcx, [0x1411ff058]
call fcn.140002f0c
mov rbx, rax
test rax, rax
jne 0x140002987
xor r9d, r9d
lea edx, [rdi + 1]
xor r8d, r8d
mov ecx, 0xc0000264
call qword [sym.imp.KERNEL32.dll_RaiseException]
or rcx, 0xffffffffffffffff
lea r9, [0x14000cd80]
mov rax, r9
mov rdx, rdi
lea r8d, [rcx + 3]
cmp word [rax], di
je 0x1400029ad
inc rdx
add rax, r8
sub rcx, 1
jne 0x14000299c
lea rcx, [rdx + rdx]
mov qword [rsp + 0x28], r9
mov edx, 0xffff
mov dword [rsp + 0x30], 0x30
cmp rcx, rdx
mov qword [rsp + 0x38], rdi
movzx eax, cx
cmova ax, dx
mov word [rsp + 0x20], ax
lea rax, [rcx + 2]
add cx, r8w
lea r8, [rsp + 0x30]
cmp rax, rdx
lea rax, [rsp + 0x20]
mov qword [rsp + 0x40], rax
cmova cx, dx
xor eax, eax
mov word [rsp + 0x22], cx
mov edx, 0x2000000
movaps xmm0, xmmword [rsp + 0x20]
lea rcx, [rsp + 0x70]
movdqa xmmword [rsp + 0x20], xmm0
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rax
call rbx
test eax, eax
jns 0x140002a39
xor r9d, r9d
xor r8d, r8d
mov ecx, 0xc0000264
lea edx, [r9 + 1]
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rcx, qword [rsp + 0x70]
xor eax, eax
lock cmpxchg qword [0x1411ff240], rcx
je 0x140002a55
mov rcx, qword [rsp + 0x70]
call fcn.140001e7c
mov rax, qword [0x1411ff240]
jmp 0x140002a60
xor eax, eax
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
Function at 0x140002fd8
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x168]
sub rsp, 0x240
xor r12d, r12d
mov r15d, r8d
xor eax, eax
mov rbx, rdx
mov rsi, rcx
lock cmpxchg qword [rcx], r12
je 0x14000303f
or rdi, 0xffffffffffffffff
cmp rax, rdi
jne 0x14000301e
xor eax, eax
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
or rdi, 0xffffffffffffffff
mov qword [rbp + 0x188], r12
test r15b, 1
je 0x14000305e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
jmp 0x1400031a3
bt qword [0x14000c420], 0
lea rdx, [0x14000cd00]
lea rcx, [0x1411ff090]
call fcn.140002f0c
mov r14, rax
test rax, rax
je 0x14000301c
mov r13d, 2
test r13b, r15b
je 0x140003095
mov r8d, r13d
jmp 0x14000319b
test r15b, 4
je 0x1400030a3
xor r8d, r8d
jmp 0x14000319b
bt qword [0x14000c408], 0
lea rdx, [0x14000cc78]
lea rcx, [0x1411ff078]
call fcn.140002f0c
test rax, rax
jne 0x140003195
bt qword [0x14000c400], 0
lea rdx, [0x14000cc30]
lea rcx, [0x1411ff070]
call fcn.140002f0c
mov r15, rax
test rax, rax
je 0x14000301c
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x208
call sub.msvcrt.dll_memset
mov edx, 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
dec eax
cmp eax, 0x102
ja 0x14000309b
mov rdx, rdi
mov rax, rbx
mov rcx, r12
test rbx, rbx
je 0x14000313b
cmp word [rax], r12w
je 0x14000313b
inc rcx
add rax, r13
sub rdx, 1
jne 0x140003129
add rcx, rcx
mov qword [rsp + 0x28], rbx
movzx eax, cx
lea r9, [rbp + 0x188]
mov edx, 0xffff
lea r8, [rsp + 0x20]
cmp rcx, rdx
cmova ax, dx
mov word [rsp + 0x20], ax
lea rax, [rcx + 2]
add cx, r13w
cmp rax, rdx
cmova cx, dx
xor edx, edx
mov word [rsp + 0x22], cx
lea rcx, [rsp + 0x30]
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call r15
mov rax, qword [rbp + 0x188]
jmp 0x1400031aa
mov r8d, 0x800
xor edx, edx
mov rcx, rbx
call r14
mov qword [rbp + 0x188], rax
test rax, rax
jne 0x1400031b7
xchg qword [rsi], rdi
jmp 0x14000301c
xchg qword [rsi], rax
test rax, rax
je 0x1400031cc
mov rcx, qword [rbp + 0x188]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, qword [rbp + 0x188]
jmp 0x14000301e
Function at 0x1400046c0
Capabilities:
Parse pe header

Disassembly:
push rbx
sub rsp, 0x40
mov ebx, ecx
mov dword [rsp + 0x60], 0
xor ecx, ecx
mov dword [rsp + 0x68], 2
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140004722
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140004722
movsxd rdx, dword [rax + 0x3c]
add rdx, rax
cmp dword [rdx], 0x4550
jne 0x140004722
mov eax, 0x20b
cmp word [rdx + 0x18], ax
jne 0x140004722
cmp dword [rdx + 0x84], 0xe
jbe 0x140004722
cmp dword [rdx + 0xf8], 0
je 0x140004722
mov ecx, ebx
call fcn.140004580
lea rax, [rsp + 0x68]
mov byte [rsp + 0x58], 0
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rcx, [0x1411ff8a0]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
call fcn.1400043f0
cmp dword [rsp + 0x60], 0
jne 0x140004765
mov ecx, ebx
call fcn.140004530
int3
add rsp, 0x40
pop rbx
ret

Function at 0x1400047b0
Capabilities:
Parse pe header

Disassembly:
push rbx
sub rsp, 0x40
xor eax, eax
mov ebx, ecx
xor ecx, ecx
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x68], eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14000480c
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14000480c
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14000480c
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14000480c
cmp dword [rcx + 0x84], 0xe
jbe 0x14000480c
cmp dword [rcx + 0xf8], 0
je 0x14000480c
mov ecx, ebx
call fcn.140004580
lea rax, [rsp + 0x68]
mov byte [rsp + 0x58], 0
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
lea rcx, [0x1411ff8a0]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
call fcn.1400043f0
cmp dword [rsp + 0x60], 0
jne 0x14000484f
mov ecx, ebx
call fcn.140004530
int3
add rsp, 0x40
pop rbx
ret