joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140022750
Capabilities:
Read file via mapping

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov r14, r9
mov rdi, r8
mov ebx, edx
mov rsi, rcx
call fcn.1400222f0
test rdi, rdi
je 0x140021e34
test al, al
je 0x140021e34
movsxd rax, ebx
mov rdx, rax
sar rdx, 0x3f
add rax, rdi
adc rdx, 0
mov ecx, edx
and ecx, 1
neg rcx
xor rdx, rcx
jne 0x140021e34
test rcx, rcx
js 0x140021e34
cmp qword [rsi + 0x10], rax
jb 0x140021e34
mov rcx, rsi
mov edx, ebx
mov r8, rdi
mov r9, r14
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x140022750
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, r9
mov r15, r8
mov ebp, edx
mov rsi, rcx
mov r13, qword [0x1400f7448]
mov rax, qword [r13]
xor rax, rsp
mov qword [rsp + 0x60], rax
xor eax, eax
cmp dword [rcx + 8], 0
setne al
lea r12d, [rax + rax]
add r12d, 4
mov edi, edx
sar edi, 0x1f
mov rcx, qword [rcx]
mov qword [rsp + 0x20], r8
mov edx, r12d
mov r8d, edi
mov r9d, ebp
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [r14], rax
test rax, rax
jne 0x1400227d8
mov rcx, qword [rsi]
mov qword [rsp + 0x20], r15
mov edx, r12d
mov r8d, edi
mov r9d, ebp
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [r14], rax
test rax, rax
je 0x14002282f
mov rsi, qword [rsp + 0xd0]
lea rdx, [rsp + 0x30]
mov r8d, 0x30
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov rcx, qword [rsp + 0x48]
sub rcx, rbx
add rcx, qword [rsp + 0x38]
test rax, rax
cmove rcx, rax
mov qword [rsi], rcx
mov al, 1
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
mov rdx, qword [r13]
cmp rdx, rcx
jne 0x140022833
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x14002280d
call fcn.1400763e0
int3

Function at 0x1400242f0
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov r13, qword [0x1400f7448]
mov rax, qword [r13]
xor rax, rsp
mov qword [rsp + 0x160], rax
test rdx, rdx
je 0x140024380
mov rsi, rdx
mov rdi, rcx
mov ebp, 0xffffffff
lea r14, str._var_tmp_build_firefox_7913966da16e_security_sandbox_chromium_base_rand_util_win.cc
lea r15, str.success
lea r12, [rsp + 0x28]
jmp 0x140024348
add rdi, rbx
sub rsi, rbx
je 0x140024380
cmp rsi, rbp
mov ebx, 0xffffffff
cmovb rbx, rsi
mov rcx, rdi
mov edx, ebx
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x140024340
mov rcx, r12
mov rdx, r14
mov r8d, 0x20
mov r9, r15
call fcn.14001a430
mov rcx, r12
call fcn.14001a6b0
jmp 0x140024340
mov rax, qword [rsp + 0x160]
xor rax, rsp
mov rcx, qword [r13]
cmp rcx, rax
jne 0x1400243a8
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400763e0
int3
Function at 0x1400291d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
sub rsp, 0x128
mov r9, qword [0x1400f7448]
mov rax, qword [r9]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov r10, qword [rcx + 8]
mov rax, 0xffffffffffffffff
test r10, r10
je 0x14002936f
mov r11, qword [rdx + 8]
test r11, r11
je 0x14002936f
cmp r11, 1
jne 0x140029248
cmp r10, r8
jbe 0x14002936f
mov rdx, qword [rdx]
mov dl, byte [rdx]
mov rcx, qword [rcx]
nop word cs:[rax + rax]
cmp byte [rcx + r8], dl
je 0x140029367
add r8, 1
cmp r10, r8
jne 0x140029230
jmp 0x14002936f
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rdx]
lea rsi, [r11 - 1]
mov edx, r11d
and edx, 3
cmp rsi, 3
jae 0x1400292d0
xor esi, esi
jmp 0x140029310
and r11, 0xfffffffffffffffc
xor esi, esi
nop word cs:[rax + rax]
movzx edi, byte [rax + rsi]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 1]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 2]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 3]
mov byte [rsp + rdi + 0x20], 1
add rsi, 4
cmp r11, rsi
jne 0x1400292e0
test rdx, rdx
je 0x140029332
add rax, rsi
xor esi, esi
nop word [rax + rax]
movzx edi, byte [rax + rsi]
mov byte [rsp + rdi + 0x20], 1
add rsi, 1
cmp rdx, rsi
jne 0x140029320
mov rax, 0xffffffffffffffff
cmp r10, r8
jbe 0x14002936f
mov rcx, qword [rcx]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rcx + r8]
cmp byte [rsp + rdx + 0x20], 0
jne 0x14002936c
add r8, 1
cmp r10, r8
jne 0x140029350
jmp 0x14002936f
cmp r10, r8
je 0x14002936f
mov rax, r8
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
mov rdx, qword [r9]
cmp rdx, rcx
jne 0x14002938c
add rsp, 0x128
pop rdi
pop rsi
ret
call fcn.1400763e0
int3
Function at 0x1400295a0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
sub rsp, 0x128
mov r9, qword [0x1400f7448]
mov rax, qword [r9]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov r10, qword [rcx + 8]
mov rax, 0xffffffffffffffff
test r10, r10
je 0x14002973a
mov r11, qword [rdx + 8]
test r11, r11
je 0x140029618
cmp r11, 1
jne 0x140029620
cmp r10, r8
jbe 0x14002973a
mov rdx, qword [rdx]
mov dl, byte [rdx]
mov rcx, qword [rcx]
nop word cs:[rax + rax]
nop dword [rax]
cmp byte [rcx + r8], dl
jne 0x140029737
add r8, 1
cmp r10, r8
jne 0x140029600
jmp 0x14002973a
mov rax, r11
jmp 0x14002973a
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rdx]
lea rsi, [r11 - 1]
mov edx, r11d
and edx, 3
cmp rsi, 3
jae 0x1400296a8
xor esi, esi
jmp 0x1400296e0
and r11, 0xfffffffffffffffc
xor esi, esi
nop
movzx edi, byte [rax + rsi]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 1]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 2]
mov byte [rsp + rdi + 0x20], 1
movzx edi, byte [rax + rsi + 3]
mov byte [rsp + rdi + 0x20], 1
add rsi, 4
cmp r11, rsi
jne 0x1400296b0
test rdx, rdx
je 0x140029702
add rax, rsi
xor esi, esi
nop word [rax + rax]
movzx edi, byte [rax + rsi]
mov byte [rsp + rdi + 0x20], 1
add rsi, 1
cmp rdx, rsi
jne 0x1400296f0
mov rax, 0xffffffffffffffff
cmp r10, r8
jbe 0x14002973a
mov rcx, qword [rcx]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rcx + r8]
cmp byte [rsp + rdx + 0x20], 0
je 0x140029737
add r8, 1
cmp r10, r8
jne 0x140029720
jmp 0x14002973a
mov rax, r8
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
mov rdx, qword [r9]
cmp rdx, rcx
jne 0x140029757
add rsp, 0x128
pop rdi
pop rsi
ret
call fcn.1400763e0
int3
Function at 0x140029dc0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
sub rsp, 0x130
mov r9, qword [0x1400f7448]
mov rax, qword [r9]
xor rax, rsp
mov qword [rsp + 0x128], rax
mov r10, qword [rcx + 8]
test r10, r10
je 0x140029f58
add r10, 0xffffffffffffffff
cmp r10, r8
cmovae r10, r8
mov r8, qword [rdx + 8]
test r8, r8
je 0x140029f61
cmp r8, 1
jne 0x140029e39
mov rax, qword [rdx]
mov dl, byte [rax]
mov rcx, qword [rcx]
cmp byte [rcx + r10], dl
jne 0x140029f61
mov rax, r10
nop dword [rax]
sub rax, 1
jb 0x140029f58
cmp byte [rcx + r10 - 1], dl
mov r10, rax
je 0x140029e20
jmp 0x140029f64
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov rax, qword [rdx]
lea rdx, [r8 - 1]
mov r11d, r8d
and r11d, 3
cmp rdx, 3
jae 0x140029ec2
xor edx, edx
jmp 0x140029f00
and r8, 0xfffffffffffffffc
xor edx, edx
nop dword [rax + rax]
movzx esi, byte [rax + rdx]
mov byte [rsp + rsi + 0x20], 1
movzx esi, byte [rax + rdx + 1]
mov byte [rsp + rsi + 0x20], 1
movzx esi, byte [rax + rdx + 2]
mov byte [rsp + rsi + 0x20], 1
movzx esi, byte [rax + rdx + 3]
mov byte [rsp + rsi + 0x20], 1
add rdx, 4
cmp r8, rdx
jne 0x140029ed0
test r11, r11
je 0x140029f22
add rax, rdx
xor edx, edx
nop word [rax + rax]
movzx esi, byte [rax + rdx]
mov byte [rsp + rsi + 0x20], 1
add rdx, 1
cmp r11, rdx
jne 0x140029f10
mov rcx, qword [rcx]
movzx eax, byte [rcx + r10]
cmp byte [rsp + rax + 0x20], 0
je 0x140029f61
mov rax, r10
nop word cs:[rax + rax]
nop
sub rax, 1
jb 0x140029f58
movzx edx, byte [rcx + r10 - 1]
cmp byte [rsp + rdx + 0x20], 0
mov r10, rax
jne 0x140029f40
jmp 0x140029f64
mov rax, 0xffffffffffffffff
jmp 0x140029f64
mov rax, r10
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
mov rdx, qword [r9]
cmp rdx, rcx
jne 0x140029f80
add rsp, 0x130
pop rsi
ret
call fcn.1400763e0
int3
Function at 0x14002f700
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14, qword [0x1400f7448]
mov rax, qword [r14]
xor rax, rsp
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x20], xmm0
mov rsi, qword [rdx + 8]
cmp rsi, qword [rsp + 0x28]
jbe 0x14002f738
xor ebx, ebx
jmp 0x14002f7d0
mov ebp, r8d
mov r15, qword [rdx]
xor ebx, ebx
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x20]
xor r8d, r8d
mov r9, rsi
call fcn.14002a040
cmp ebp, 1
je 0x14002f77c
test ebp, ebp
jne 0x14002f7d0
cmp qword [rsp + 0x38], rsi
jne 0x14002f731
mov rcx, qword [rsp + 0x30]
mov rdx, r15
mov r8, rsi
call sub.ntdll.dll_memcmp
test eax, eax
sete bl
jmp 0x14002f7d0
test rsi, rsi
je 0x14002f7ce
mov rax, qword [rsp + 0x30]
add rsi, 0xffffffffffffffff
xor ecx, ecx
nop dword [rax]
movzx edx, byte [r15 + rcx]
movzx ebp, byte [rax + rcx]
lea ebx, [rdx - 0x41]
lea edi, [rdx + 0x20]
cmp bl, 0x1a
movzx ebx, dil
cmovae ebx, edx
lea edx, [rbp - 0x41]
lea edi, [rbp + 0x20]
cmp dl, 0x1a
movzx edx, dil
cmovae edx, ebp
cmp bl, dl
sete bl
jne 0x14002f7d0
lea rdx, [rcx + 1]
cmp rsi, rcx
mov rcx, rdx
jne 0x14002f790
jmp 0x14002f7d0
mov bl, 1
mov rax, qword [rsp + 0x40]
xor rax, rsp
mov rcx, qword [r14]
cmp rcx, rax
jne 0x14002f7ef
mov eax, ebx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.1400763e0
int3

Function at 0x14002f930
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x50
mov ebx, r8d
mov r14, qword [0x1400f7448]
mov rax, qword [r14]
xor rax, rsp
mov qword [rsp + 0x48], rax
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x20], xmm0
mov rdi, qword [rdx + 8]
mov r8, qword [rsp + 0x28]
sub r8, rdi
jb 0x14002f9a2
mov r15, qword [rdx]
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x20]
mov r9, rdi
call fcn.14002a040
cmp ebx, 1
je 0x14002f9c0
test ebx, ebx
jne 0x14002f9a2
cmp qword [rsp + 0x40], rdi
jne 0x14002f9a2
mov rcx, qword [rsp + 0x38]
mov rdx, r15
mov r8, rdi
call sub.ntdll.dll_memcmp
test eax, eax
sete al
jmp 0x14002f9a4
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
mov rdx, qword [r14]
cmp rdx, rcx
jne 0x14002fa22
add rsp, 0x50
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14002fa1e
mov r8, qword [rsp + 0x38]
add rcx, 0xffffffffffffffff
xor ebx, ebx
nop word cs:[rax + rax]
nop
movzx eax, byte [r8 + rbx]
movzx edi, byte [r15 + rbx]
lea esi, [rax - 0x41]
lea edx, [rax + 0x20]
cmp sil, 0x1a
movzx edx, dl
cmovae edx, eax
lea eax, [rdi - 0x41]
lea esi, [rdi + 0x20]
cmp al, 0x1a
movzx eax, sil
cmovae eax, edi
cmp dl, al
sete al
jne 0x14002f9a4
lea rdx, [rbx + 1]
cmp rcx, rbx
mov rbx, rdx
jne 0x14002f9e0
jmp 0x14002f9a4
mov al, 1
jmp 0x14002f9a4
call fcn.1400763e0
int3
Function at 0x140040e60
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x168
mov r15, rdx
mov r12, rcx
mov r14, qword [0x1400f7448]
mov rax, qword [r14]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov ecx, dword [0x14014f040]
cmp ecx, 0xffffffff
je 0x140040ea0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x140040ea5
call fcn.140041060
mov al, byte [0x1401501a0]
test al, al
je 0x14004100a
mov rbx, qword [0x140152268]
mov rcx, rbx
call fcn.140035800
mov rcx, qword [0x140151c78]
add rcx, 1
mov edx, 0x100
lea rax, [0x140150470]
nop dword [rax]
movzx edi, cl
lea rsi, [rdi + rdi*2]
cmp dword [rax + rsi*8], 0
je 0x140040f0a
lea edi, [rcx + 1]
movzx edi, dil
lea rsi, [rdi + rdi*2]
cmp dword [rax + rsi*8], 0
je 0x140040f0a
add rcx, 2
add rdx, 0xfffffffffffffffe
jne 0x140040ee0
jmp 0x140040f31
lea rcx, [rax + rsi*8]
mov dword [rcx], 1
lea rcx, [rdi + rdi*2]
mov qword [rax + rcx*8 + 8], r15
mov qword [0x140151c78], rdi
mov dword [r12], edi
mov eax, dword [rax + rcx*8 + 0x10]
mov dword [r12 + 4], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [r12]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x24], 0xffffffff
cmp eax, 0xffffffff
jne 0x140040f8f
lea r8, str.slot____kInvalidSlotValue
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x24]
call fcn.140019970
test rax, rax
je 0x140040f8f
lea rdx, str._var_tmp_build_firefox_7913966da16e_security_sandbox_chromium_base_threading_thread_local_storage.cc
lea rdi, [rsp + 0x28]
mov rcx, rdi
mov r8d, 0x196
mov r9, rax
call fcn.14001a4f0
mov rcx, rdi
call fcn.14001a6b0
mov eax, dword [r12]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x24], 0x100
cmp eax, 0xff
jle 0x140040fe6
lea r8, str.slot____kThreadLocalStorageSize
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x24]
call fcn.140019970
test rax, rax
je 0x140040fe6
lea rdx, str._var_tmp_build_firefox_7913966da16e_security_sandbox_chromium_base_threading_thread_local_storage.cc
lea rsi, [rsp + 0x28]
mov rcx, rsi
mov r8d, 0x197
mov r9, rax
call fcn.14001a4f0
mov rcx, rsi
call fcn.14001a6b0
mov rax, qword [rsp + 0x160]
xor rax, rsp
mov rcx, qword [r14]
cmp rcx, rax
jne 0x14004104b
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [0x1401501a0]
call fcn.1400c0fd4
test eax, eax
je 0x140040eb3
mov ecx, 8
call fcn.1400c1200
mov rbx, rax
mov rcx, rax
call fcn.1400357c0
mov qword [0x140152268], rbx
lea rcx, [0x1401501a0]
call fcn.1400c10ab
jmp 0x140040eb3
call fcn.1400763e0
int3
Function at 0x140041420
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
mov ecx, dword [0x14014f040]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x140041450
movsxd rcx, dword [rsi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 4]
jne 0x140041450
mov rax, qword [rax + rcx]
jmp 0x140041452
xor eax, eax
add rsp, 0x20
pop rsi
ret

Function at 0x140041460
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rdx
mov rsi, rcx
mov ecx, dword [0x14014f040]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
jne 0x140041488
test rdi, rdi
je 0x1400414a1
call fcn.140041060
movsxd rcx, dword [rsi]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [rsi + 4]
movsxd rdx, dword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x28
pop rdi
pop rsi
ret

Function at 0x1400414b0
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0xffffffff
mov qword [rcx], rax
jmp fcn.140040e60

Function at 0x1400414d0
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x1400414e5
mov dword [rsi], eax
cmp eax, 0xffffffff
setne al
add rsp, 0x20
pop rsi
ret
Function at 0x140042ea0
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rsi, qword [0x1400f7448]
mov rax, qword [rsi]
xor rax, rsp
mov qword [rsp + 0x28], rax
movsd xmm0, qword [0x1401522d0]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x140042fe3
jp 0x140042fe3
mov rdi, qword [sym.imp.KERNEL32.dll_GetCurrentThread]
call rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov r14d, eax
call rdi
mov rcx, rax
mov edx, 2
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov al, byte [0x1401501d0]
test al, al
je 0x140043003
mov al, byte [0x1401501d8]
test al, al
je 0x140043038
rdtsc
mov rdi, rax
mov rbx, rdx
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rbp, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
mov edx, r14d
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub rbp, qword [0x1401522c8]
movq xmm0, rbp
punpckldq xmm0, xmmword [0x1400fc220]
subpd xmm0, xmmword [0x1400fc230]
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x20]
divsd xmm1, xmm0
xorpd xmm0, xmm0
movsd xmm2, qword [0x1400fc240]
ucomisd xmm2, xmm1
ja 0x140042fe3
shl rbx, 0x20
or rdi, rbx
sub rdi, qword [0x1401522c0]
movq xmm2, rdi
punpckldq xmm2, xmmword [0x1400fc220]
subpd xmm2, xmmword [0x1400fc230]
movapd xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm0, xmm2
divsd xmm0, xmm1
movsd qword [0x1401522d0], xmm0
mov rax, qword [rsp + 0x28]
xor rax, rsp
mov rcx, qword [rsi]
cmp rcx, rax
jne 0x140042ffe
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
call fcn.1400763e0
lea rcx, [0x1401501d0]
call fcn.1400c0fd4
test eax, eax
je 0x140042f0b
rdtsc
shl rdx, 0x20
or rdx, rax
mov qword [0x1401522c0], rdx
lea rcx, [0x1401501d0]
call fcn.1400c10ab
jmp 0x140042f0b
lea rcx, [0x1401501d8]
call fcn.1400c0fd4
test eax, eax
je 0x140042f19
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x20]
mov qword [0x1401522c8], rax
lea rcx, [0x1401501d8]
call fcn.1400c10ab
jmp 0x140042f19
Function at 0x140044aa0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
test r8, r8
je 0x140044bc5
mov rbx, rcx
mov rax, qword [rcx + 8]
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx + 0x84], 0
je 0x140044bc5
cmp word [rax + rcx + 0x14], 0x78
jb 0x140044bc5
mov r12, r8
mov r14, rdx
mov edx, dword [rax + rcx + 0x88]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
test rax, rax
je 0x140044bc5
cmp r14, 0xffff
jbe 0x140044bfb
mov rsi, rax
mov edx, dword [rax + 0x20]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov edx, dword [rsi + 0x18]
lea rcx, [rdx*4]
test rcx, rcx
je 0x140044bc5
mov qword [rsp + 0x30], rsi
lea r15, [rax + rdx*4]
lea r13, [r14 + 1]
mov qword [rsp + 0x28], rax
mov rbp, rax
nop word cs:[rax + rax]
nop dword [rax]
mov rsi, r15
sub rsi, rbp
mov rax, rsi
sar rax, 2
shr rsi, 0x3f
add rsi, rax
and rsi, 0xfffffffffffffffe
mov edx, dword [rbp + rsi*2]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
mov cl, byte [r14]
test cl, cl
je 0x140044b93
mov rdx, r13
nop
cmp cl, byte [rax]
jne 0x140044b95
add rax, 1
movzx ecx, byte [rdx]
add rdx, 1
test cl, cl
jne 0x140044b80
xor ecx, ecx
lea rsi, [rsi*2]
add rsi, rbp
movzx ecx, cl
movzx eax, byte [rax]
mov edx, ecx
sub edx, eax
lea rdi, [rsi + 4]
test edx, edx
cmovg rbp, rdi
cmp ecx, eax
cmovs r15, rsi
je 0x140044bd8
xor eax, eax
cmp rbp, r15
jne 0x140044b50
jmp 0x140044bc7
xor eax, eax
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x30]
mov edx, dword [rdi + 0x24]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
sub rsi, qword [rsp + 0x28]
sar rsi, 1
movzx r14d, word [rax + rsi]
add r14w, word [rdi + 0x10]
mov word [r12], r14w
mov al, 1
jmp 0x140044bc7

Function at 0x140045510
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [rcx + 8]
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x140045547
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x140045547
movzx edx, word [rax + rcx + 0x14]
cmp edx, 0xf0
jne 0x140045547
movzx eax, word [rax + rcx + 0x18]
cmp eax, 0x20b
sete al
ret
xor eax, eax
ret
Function at 0x140047400
Capabilities:
Get system information on windows

Disassembly:
push rsi
push rdi
sub rsp, 0x188
mov rdi, qword [0x1400f7448]
mov rax, qword [rdi]
xor rax, rsp
mov qword [rsp + 0x180], rax
lea rcx, [rsp + 0x64]
mov r8d, 0x118
xor edx, edx
call sub.ntdll.dll_memset
mov dword [rsp + 0x60], 0x11c
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [rsp + 0x2c], 0
mov ecx, dword [rsp + 0x64]
mov edx, dword [rsp + 0x68]
lea rax, [rsp + 0x2c]
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetProductInfo]
mov ecx, 0x80
call fcn.1400c1200
mov rsi, rax
mov al, byte [0x140150228]
test al, al
je 0x1400474b9
mov r9d, dword [rsp + 0x2c]
lea r8, [0x140152388]
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.140047690
mov rax, qword [rsp + 0x180]
xor rax, rsp
mov rcx, qword [rdi]
cmp rcx, rax
jne 0x14004751b
mov rax, rsi
add rsp, 0x188
pop rdi
pop rsi
ret
lea rcx, [0x140150228]
call fcn.1400c0fd4
test eax, eax
je 0x140047480
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movups xmmword [0x1401523a8], xmm2
movups xmmword [0x140152398], xmm1
movups xmmword [0x140152388], xmm0
lea rcx, [0x140150228]
call fcn.1400c10ab
jmp 0x140047480
call fcn.1400763e0
int3

Function at 0x140050e50
Capabilities:
Check if file exists

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
lea rax, [rcx + 8]
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
mov qword [rcx], rax
lea rdi, [rcx + 0x18]
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsi + 0x18], 0
mov rcx, rdi
mov rdx, rax
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.140021e40