joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140078674
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd r15, ecx
lea r9, [0x1400b73c0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x1400786cb
cmp word [rdx], r13w
jne 0x1400786cb
or byte [rax + rdi*8 + 0x38], cl
jmp 0x1400786d0
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x1400787f5
mov r11d, 0xd
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x140078816
lea r9, [rdx + 2]
cmp cx, r11w
je 0x140078709
mov rdx, r9
mov word [rbx], cx
jmp 0x140078730
cmp r9, r8
jae 0x140078740
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x1400786ea
jmp 0x1400787f5
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400787ea
cmp dword [rsp + 0x80], esi
je 0x1400787ea
lea r8, [0x1400b73c0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x1400787c2
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x140078792
mov word [rbx], r13w
jmp 0x1400787f2
mov ecx, 0xd
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x14007879f
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x1400787f2
cmp word [rsp + 0x70], r13w
jne 0x1400787cf
cmp rbx, r14
je 0x14007878c
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.1400785d0
cmp word [rsp + 0x70], r13w
je 0x1400787f5
mov ecx, 0xd
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x1400b73c0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x1400787ef
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x1400787f5
Function at 0x14007c53c
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x14007c552
mov al, 1
jmp 0x14007c5b2
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x14007c563
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x14007c5b0
mov ecx, dword [rcx + 0x18]
nop
call fcn.1400808a8
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14007c5b0
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14007c5b0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x14007c5b0
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x14007c5b2
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x14007ffdc
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 0x14008000c
xor eax, eax
jmp 0x1400800cf
mov rbp, rbx
cmp word [rax], si
je 0x140080031
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x140080018
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x140080014
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.14007e8e4
movsxd r14, eax
test eax, eax
jne 0x14008006f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x140080005
mov rcx, r14
call fcn.14007afd8
mov rdi, rax
test rax, rax
jne 0x140080088
xor ecx, ecx
call fcn.140079358
jmp 0x140080064
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.14007e8e4
test eax, eax
jne 0x1400800b9
mov rcx, rdi
call fcn.140079358
jmp 0x1400800c3
xor ecx, ecx
call fcn.140079358
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 0x140082dfc
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.140077f74
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x140082e9d
cmp ebx, dword [rsp + 0x30]
je 0x140082e96
test esi, esi
je 0x140082e96
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x140082e71
sub r8w, 0x61
cmp r8w, 0x19
ja 0x140082e7e
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x140082e5b
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x140082e82
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x140082e9f
mov eax, 1
jmp 0x140082e9f
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x140086fe0
Capabilities:
Clear file content

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 r12
push r14
push r15
sub rsp, 0x20
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.1400785d0
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.1400785d0
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x140087130
cmp rax, 0xffffffffffffffff
je 0x140087130
xor edi, edi
test rbp, rbp
jle 0x1400870db
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.1400792e0
mov rbx, rax
test rax, rax
jne 0x140087068
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x1400870d1
mov edx, 0x8000
mov ecx, r14d
call fcn.1400760b4
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.14007a8cc
cmp eax, 0xffffffff
je 0x1400870b1
cdqe
sub rbp, rax
test rbp, rbp
jg 0x140087078
mov edx, r15d
mov ecx, r14d
call fcn.1400760b4
jmp 0x1400870d1
cmp byte [rsi + 0x38], dil
je 0x1400870c8
cmp dword [rsi + 0x34], 5
jne 0x1400870c8
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x1400870d1
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.140079358
jmp 0x140087144
jns 0x140087144
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.1400785d0
cmp rax, 0xffffffffffffffff
jne 0x1400870fc
cmp byte [rsi + 0x30], dil
je 0x140087144
mov edi, dword [rsi + 0x2c]
jmp 0x140087144
mov ecx, r14d
call fcn.1400808a8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x140087144
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x140087144
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x14008713d
mov eax, dword [rsi + 0x2c]
jmp 0x140087142
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.1400785d0
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x180004620
Capabilities:
Check mutex on windows

Disassembly:
mov r11, rsp
push rbx
sub rsp, 0x3e0
mov rax, qword [0x18001c008]
xor rax, rsp
mov qword [rsp + 0x3d0], rax
movdqa xmm0, xmmword [str.F147EC_C7F5_F89_]
lea r8, [r11 - 0x38]
mov edx, 1
mov dword [r11 - 0x28], 0x394a2d41
xor ecx, ecx
mov dword [r11 - 0x24], 0x44353941
movdqu xmmword [r11 - 0x38], xmm0
mov word [r11 - 0x20], 0x7d
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
sete al
test rbx, rbx
je 0x18000469f
test al, al
je 0x1800046ba
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov rcx, qword [rsp + 0x3d0]
xor rcx, rsp
call fcn.1800058d0
add rsp, 0x3e0
pop rbx
ret
lea rax, [rsp + 0x30]
mov edx, 7
lea rcx, str.WindowsNetBIOSEvent
nop dword [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x1800046d0
xor eax, eax
lea rdx, [0x18001fef0]
nop dword [rax]
movzx ecx, byte [rsp + rax + 0xf0]
mov byte [rax + rdx], cl
inc rax
test cl, cl
jne 0x180004730
lea r9, [rsp + 0x30]
call fcn.180003bb0
mov al, 1
jmp 0x1800046a1

Function at 0x180004990
Capabilities:
Create thread

Disassembly:
push rdi
sub rsp, 0x30
mov rdi, rcx
test rcx, rcx
je 0x180004a1b
cmp qword [0x18001fee0], 0
mov qword [rsp + 0x48], rbx
jne 0x1800049c8
mov ecx, 8
call fcn.1800058f4
lea rdx, vtable.PluginProvider.0
mov qword [0x18001fee0], rax
mov qword [rax], rdx
mov ecx, 8
call fcn.1800058f4
mov rcx, qword [0x18001fee0]
mov rbx, rax
mov qword [rax], rcx
mov ecx, 0x10
call fcn.1800058f4
xor edx, edx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rcx
lea r8, [0x180004980]
xor ecx, ecx
mov dword [rsp + 0x20], edx
mov qword [rax + 8], rdi
mov r9, rax
mov qword [rax], rbx
mov dword [rsp + 0x40], edx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rbx, qword [rsp + 0x48]
xor al, al
add rsp, 0x30
pop rdi
ret
Function at 0x140080c2f
Capabilities:
Access peb ldr_data
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rax, qword gs:[0x60]
xor r11d, r11d
mov rsi, r8
mov ebp, edx
mov rdi, qword [rax + 0x10]
movsxd rbx, dword [rdi + 0x3c]
add rbx, rdi
movzx eax, word [rbx + 0x14]
lea r9, [rbx + 0x18]
movzx r10d, word [rbx + 6]
add r9, rax
test r10, r10
je 0x140080cee
mov dword [rsp + 0x78], 0x6544302e
mov byte [rsp + 0x7c], 0x76
movups xmm2, xmmword [r9]
lea rcx, [rsp + 0x78]
movups xmm0, xmmword [r9 + 0x10]
movsd xmm1, qword [r9 + 0x20]
movd edx, xmm2
movups xmmword [rsp + 0x20], xmm2
movsd qword [rsp + 0x40], xmm1
movups xmmword [rsp + 0x30], xmm0
test dl, dl
je 0x140080cd6
lea rax, [rsp + 0x78]
lea r8, [rsp + 0x20]
sub r8, rax
movzx eax, dl
nop
movzx edx, al
cmp al, byte [rcx]
jne 0x140080cd6
movzx eax, byte [r8 + rcx + 1]
inc rcx
movzx edx, al
test al, al
jne 0x140080cbf
cmp dl, byte [rcx]
lea rdx, [rsp + 0x20]
cmovne rdx, r11
add r9, 0x28
mov r11, rdx
sub r10, 1
jne 0x140080c81
mov eax, dword [r11 + 0xc]
mov rdx, rsi
mov ecx, dword [rbx + 8]
mov eax, dword [rax + rdi]
xor eax, dword [rbx + 0x68]
ror eax, cl
mov ecx, ebp
add rax, rdi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
jmp rax
Function at 0x14003a220
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x270
jne 0x14003a242
mov rcx, qword [rsp + 0x40]
call fcn.140045470
jmp 0x14003a259
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x4e0
jb 0x14003a259
mov rcx, qword [rsp + 0x40]
call fcn.14004527c
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx + rax*4 + 4]
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
inc eax
mov rcx, qword [rsp + 0x40]
mov dword [rcx], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shr eax, 0xb
mov rcx, qword [rsp + 0x40]
and eax, dword [rcx + 0x1384]
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl eax, 7
and eax, 0x9d2c5680
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl eax, 0xf
and eax, 0xefc60000
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shr eax, 0x12
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
add rsp, 0x38
ret

Function at 0x14003a5cc
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub rsp, 0x48
mov eax, 4
imul rax, rax, 2
lea rcx, [0x140123ff0]
add rcx, rax
mov rax, rcx
mov ecx, 4
imul rcx, rcx, 1
lea rdx, [0x140123ff0]
add rdx, rcx
mov rcx, rdx
mov edx, 4
imul rdx, rdx, 0
lea r8, [0x140123ff0]
add r8, rdx
mov rdx, r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9, rdx
movss xmm2, dword [0x14012340c]
movss xmm1, dword [0x140123408]
movss xmm0, dword [0x140121520]
call fcn.140007b24
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x140123ffc]
cmp eax, 1
jb 0x14003a6b4
mov eax, dword [0x140123ffc]
cmp dword [0x140124000], eax
je 0x14003a6a8
movss xmm0, dword [0x140058120]
mulss xmm0, dword [0x14005f164]
mov eax, 4
imul rax, rax, 0
lea rcx, [0x140123ff0]
movss xmm1, dword [rcx + rax]
addss xmm1, xmm0
movaps xmm0, xmm1
mov eax, 4
imul rax, rax, 0
lea rcx, [0x140123ff0]
movss dword [rcx + rax], xmm0
mov eax, dword [0x140123ffc]
mov dword [0x140124000], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x140123ffc], eax
mov eax, 4
imul rax, rax, 0
lea rcx, [0x140123ff0]
xorps xmm0, xmm0
comiss xmm0, dword [rcx + rax]
jbe 0x14003a6ff
mov eax, 4
imul rax, rax, 0
lea rcx, [0x140123ff0]
movss xmm0, dword [rcx + rax]
addss xmm0, dword [0x140051ba4]
mov eax, 4
imul rax, rax, 0
lea rcx, [0x140123ff0]
movss dword [rcx + rax], xmm0
mov eax, 4
imul rax, rax, 2
lea rcx, [0x140123ff0]
mov edx, 4
imul rdx, rdx, 1
lea r8, [0x140123ff0]
mov r9d, 4
imul r9, r9, 0
mov qword [rsp + 0x30], r9
lea r10, [0x140123ff0]
lea r11, [0x14012340c]
mov qword [rsp + 0x28], r11
lea r11, [0x140123408]
mov qword [rsp + 0x20], r11
lea r9, [0x140121520]
movss xmm2, dword [rcx + rax]
movss xmm1, dword [r8 + rdx]
mov rax, qword [rsp + 0x30]
movss xmm0, dword [r10 + rax]
call fcn.1400079d8
add rsp, 0x48
ret
Function at 0x1400418c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x48
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, 1
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ntdll.dll_ZwQueryValueKey]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0xc0000023
je 0x140041911
cmp dword [rsp + 0x30], 0x80000005
jne 0x140041917
mov eax, dword [rsp + 0x34]
jmp 0x140041919
xor eax, eax
add rsp, 0x48
ret

Function at 0x140041c58
Capabilities:
Create thread

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x88
mov rax, qword [0x140122d48]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], 0
cmp dword [rsp + 0x90], 0
jl 0x140041cb1
cmp dword [rsp + 0x90], 0x7c
jge 0x140041cb1
lea r8, [rsp + 0x30]
mov edx, dword [rsp + 0x90]
lea rcx, [0x1401219c0]
call fcn.1400421cc
lea rcx, [rsp + 0x50]
call fcn.1400381b8
nop
cmp qword [rsp + 0x30], 0
jne 0x140041cd7
lea rdx, [0x140057188]
lea rcx, [rsp + 0x50]
call fcn.140039150
jmp 0x140041ce6
mov rdx, qword [rsp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.140039150
cmp dword [rsp + 0xa0], 1
jne 0x140041d01
lea rdx, [0x140057198]
lea rcx, [rsp + 0x50]
call fcn.140039150
movss xmm2, dword [0x140055d30]
movss xmm1, dword [0x1400582e4]
lea rcx, [rsp + 0x48]
call fcn.140038608
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x50]
call fcn.140045aac
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
call fcn.14002676c
movzx eax, al
test eax, eax
je 0x140041d76
cmp dword [rsp + 0xa0], 0
jne 0x140041d76
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0x98]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
lea rcx, [rsp + 0x50]
call fcn.140038cdc
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14004e320
add rsp, 0x88
ret
Function at 0x140042018
Capabilities:
Link many functions at runtime

Disassembly:
sub rsp, 0x38
lea rcx, [0x140057228]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [0x140057218]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400420a1
lea rcx, [0x140057240]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.NtUserSendInput
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400420a1
lea rcx, [0x140057254]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.SendInput
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400420a1
xor al, al
jmp 0x140042153
lea rcx, str.win32u
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [0x140057260]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140042123
lea rcx, [0x1400572b8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, str.NtUserGetAsyncKeyState
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140042123
lea rcx, str.user32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [0x1400572c0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140042123
xor al, al
jmp 0x140042153
mov r8d, 0x1e
mov rdx, qword [rsp + 0x20]
lea rcx, [0x140123e60]
call fcn.14004ee80
mov r8d, 0x1e
mov rdx, qword [rsp + 0x28]
lea rcx, [0x140123e80]
call fcn.14004ee80
mov al, 1
add rsp, 0x38
ret

Function at 0x140043c00
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x48
mov r9d, 0x40
mov r8d, 0x1000
mov edx, 0x1000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140043c32
xor eax, eax
jmp 0x140043c88
mov r8d, 0x1e
lea rdx, [0x140123e80]
mov rcx, qword [rsp + 0x28]
call fcn.14004ee80
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x50]
call qword [rsp + 0x30]
mov dword [rsp + 0x20], eax
mov r8d, 0x1000
xor edx, edx
mov rcx, qword [rsp + 0x28]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, dword [rsp + 0x20]
add rsp, 0x48
ret
Function at 0x14001115e
Capabilities:
Write file on windows

Disassembly:
jmp 0x14001cbd0
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0x128
lea rbp, [rsp + 0x20]
lea rcx, [0x1400420f6]
call fcn.140011c3a
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x68], 0
je 0x14001cc27
mov r8, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
jmp 0x14001cd33
mov rax, qword [rbp + 0x130]
mov qword [rbp + 8], rax
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Pnavail_void_const___ptr64]
mov qword [rbp + 0x28], rax
cmp qword [rbp + 0x130], 0
jle 0x14001cccc
cmp qword [rbp + 0x28], 0
jle 0x14001cccc
mov rax, qword [rbp + 0x28]
cmp qword [rbp + 0x130], rax
jge 0x14001cc6c
mov rax, qword [rbp + 0x130]
mov qword [rbp + 0x28], rax
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_char____ptr64___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pptr_void_const___ptr64]
mov r8, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x128]
mov rcx, rax
call fcn.140011b86
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x128]
add rcx, rax
mov rax, rcx
mov qword [rbp + 0x128], rax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x130]
sub rcx, rax
mov rax, rcx
mov qword [rbp + 0x130], rax
mov edx, dword [rbp + 0x28]
mov rcx, qword [rbp + 0x120]
call qword [sym.imp.MSVCP140D.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::pbump_int____ptr64]
cmp qword [rbp + 0x130], 0
jle 0x14001cd22
mov rax, qword [rbp + 0x120]
cmp qword [rax + 0x80], 0
je 0x14001cd22
mov rax, qword [rbp + 0x120]
mov r9, qword [rax + 0x80]
mov r8, qword [rbp + 0x130]
mov edx, 1
mov rcx, qword [rbp + 0x128]
call qword [sym.imp.ucrtbased.dll_fwrite]
mov rcx, qword [rbp + 0x130]
sub rcx, rax
mov rax, rcx
mov qword [rbp + 0x130], rax
mov rax, qword [rbp + 0x130]
mov rcx, qword [rbp + 8]
sub rcx, rax
mov rax, rcx
lea rsp, [rbp + 0x108]
pop rdi
pop rbp
ret