joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44d510
Capabilities:
Link many functions at runtime

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov r13, rcx
mov edi, r8d
mov r12, rdx
call fcn.0043cf40
xor ebx, ebx
cmp qword [0x00476540], rbx
mov rsi, rax
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x34], ebx
jne 0x44d641
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbp, rax
jne 0x44d573
xor eax, eax
jmp 0x44d721
lea rdx, str.MessageBoxA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x44d56c
mov rcx, rax
call fcn.0043ced0
lea rdx, [0x00458490]
mov rcx, rbp
mov qword [0x00476540], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.0043ced0
lea rdx, [0x00458478]
mov rcx, rbp
mov qword [0x00476548], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.0043ced0
lea rcx, [rsp + 0x30]
mov qword [0x00476550], rax
call fcn.0043a950
test eax, eax
je 0x44d5f7
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00438f30
cmp dword [rsp + 0x30], 2
jne 0x44d641
lea rdx, str.GetUserObjectInformationA
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.0043ced0
test rax, rax
mov qword [0x00476560], rax
je 0x44d641
lea rdx, str.GetProcessWindowStation
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.0043ced0
mov qword [0x00476558], rax
mov rcx, qword [0x00476558]
cmp rcx, rsi
je 0x44d6d3
cmp qword [0x00476560], rsi
je 0x44d6d3
call fcn.0043cfa0
call rax
test rax, rax
mov rbp, rax
je 0x44d69e
mov rcx, qword [0x00476560]
call fcn.0043cfa0
lea rcx, [rsp + 0x38]
mov r9d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
lea r8, [rsp + 0x40]
mov rcx, rbp
call rax
test eax, eax
je 0x44d69e
test byte [rsp + 0x48], 1
jne 0x44d6d3
lea rcx, [rsp + 0x34]
call fcn.0043a9a0
test eax, eax
je 0x44d6c0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00438f30
cmp dword [rsp + 0x34], 4
jb 0x44d6cd
bts edi, 0x15
jmp 0x44d707
bts edi, 0x12
jmp 0x44d707
mov rcx, qword [0x00476548]
cmp rcx, rsi
je 0x44d707
call fcn.0043cfa0
call rax
test rax, rax
mov rbx, rax
je 0x44d707
mov rcx, qword [0x00476550]
cmp rcx, rsi
je 0x44d707
call fcn.0043cfa0
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x00476540]
call fcn.0043cfa0
mov r9d, edi
mov r8, r12
mov rdx, r13
mov rcx, rbx
call rax
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x68
ret
Function at 0x140001db0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x40
mov ebx, edx
mov rdi, rcx
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
xor r9d, r9d
movzx r8d, bx
lea rdx, str.String
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
mov rbp, rax
test rax, rax
je 0x140001e29
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
test eax, eax
je 0x140001e2d
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140001e2d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
jmp 0x140001e54
mov ebx, dword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x140001e41
movzx eax, ax
or eax, 0x80070000
test eax, eax
je 0x140001ed7
test eax, eax
js 0x140001ed7
mov rdx, qword [rsp + 0x28]
lea r8d, [rbx - 3]
add rdx, 3
xor eax, eax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], al
lea rcx, [rsp + 0x20]
call fcn.140005370
nop
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.14000a140
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x140001efd
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001ec2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001f0d
call fcn.14000afec
mov rax, rdi
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], 7
mov word [rdi], ax
xor r8d, r8d
lea rdx, [0x1400179a8]
mov rcx, rdi
call fcn.1400051f0
mov rax, rdi
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop rdi
pop rsi
pop rbp
ret
call fcn.14000ed30
int3
Function at 0x140009770
Capabilities:
Enumerate processes on remote desktop session host

Disassembly:
mov r11, rsp
push rbx
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14001d010]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor r15d, r15d
mov qword [r11 + 0x10], rbp
mov ebp, r15d
mov qword [r11 - 0x50], r15
mov r14d, r15d
mov dword [r11 - 0x48], r15d
mov qword [r11 - 0x38], r13
mov rdi, r8
mov qword [rsp + 0x30], r8
mov r12, rcx
call fcn.140009960
mov r13d, eax
lea r9, [rsp + 0x38]
lea rax, [rsp + 0x40]
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
lea r8d, [r15 + 1]
call qword [sym.imp.WTSAPI32.dll_WTSEnumerateProcessesW]
test eax, eax
je 0x140009894
mov qword [rsp + 0x58], rsi
mov esi, r15d
cmp dword [rsp + 0x40], r15d
jbe 0x140009884
nop dword [rax]
nop word [rax + rax]
mov rbx, qword [rsp + 0x38]
mov eax, esi
lea rdi, [rax + rax*2]
cmp qword [rbx + rdi*8 + 8], r15
je 0x140009877
mov rcx, qword [rbx + rdi*8 + 0x10]
test rcx, rcx
je 0x140009877
mov edx, 0x16
call qword [sym.imp.ADVAPI32.dll_IsWellKnownSid]
test eax, eax
je 0x140009877
test ebp, ebp
jne 0x140009851
cmp dword [rbx + rdi*8], r15d
jne 0x140009851
mov rdx, qword [rbx + rdi*8 + 8]
lea rcx, str.lsass.exe
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
jne 0x140009851
mov ebp, dword [rbx + rdi*8 + 4]
jmp 0x140009877
test r14d, r14d
jne 0x140009877
cmp r13d, dword [rbx + rdi*8]
jne 0x140009877
mov rdx, qword [rbx + rdi*8 + 8]
lea rcx, str.winlogon.exe
call qword [sym.imp.msvcrt.dll__wcsicmp]
test eax, eax
jne 0x140009877
mov r14d, dword [rbx + rdi*8 + 4]
inc esi
cmp esi, dword [rsp + 0x40]
jb 0x140009800
mov rdi, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WTSAPI32.dll_WTSFreeMemory]
mov rsi, qword [rsp + 0x58]
mov r8d, ebp
xor edx, edx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov r13, qword [rsp + 0x50]
mov rbx, rax
mov rbp, qword [rsp + 0x98]
test rax, rax
jne 0x1400098d1
mov r8d, r14d
xor edx, edx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rbx, rax
test rax, rax
je 0x14000992a
lea r8, [rsp + 0x30]
mov qword [rsp + 0x30], r15
mov edx, 2
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x140009921
mov rcx, qword [rsp + 0x30]
mov r9d, 1
mov qword [rsp + 0x28], rdi
xor r8d, r8d
mov edx, 0x2000000
mov dword [rsp + 0x20], 1
call qword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
mov rcx, qword [rsp + 0x30]
mov r15d, eax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [r12], 1
mov rax, r12
mov dword [r12 + 4], r15d
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14000ac70
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rbx
ret
Function at 0x140009fe0
Capabilities:
Get token privileges

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x40
mov rax, qword [0x14001d010]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov r14, rdx
lea rax, [rsp + 0x30]
xor edi, edi
mov qword [rsp + 0x20], rax
mov ebp, r8d
mov dword [rsp + 0x30], edi
mov rsi, rcx
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
lea edx, [rdi + 3]
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14000a0ee
mov ebx, dword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8d, ebx
lea edx, [rdi + 8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
je 0x14000a0e3
mov r9d, dword [rsp + 0x30]
lea rax, [rsp + 0x30]
mov r8, rbx
mov qword [rsp + 0x20], rax
lea edx, [rdi + 3]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x14000a098
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14000a0ee
mov dword [rsi], edi
mov r9d, dword [rbx]
test r9d, r9d
je 0x14000a0b8
mov eax, edi
inc edi
inc rax
lea rax, [rax + rax*2]
mov dword [rbx + rax*4], ebp
mov r9d, dword [rbx]
cmp edi, r9d
jb 0x14000a0a2
lea r8, [rbx + 4]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.140009ef0
mov ecx, dword [rax]
mov dword [rsi], ecx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x14000a10e
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x14000a102
movzx eax, ax
or eax, 0x80070000
test eax, eax
jne 0x14000a10c
mov dword [rsi], 0x8007065b
jmp 0x14000a10e
mov dword [rsi], eax
mov rax, rsi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14000ac70
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x14000a4a0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x40
mov rsi, rdx
mov rbx, rcx
xor r14d, r14d
mov dword [rsp + 0x30], r14d
mov qword [rcx], r14
mov qword [rcx + 0x10], r14
mov qword [rcx + 0x18], 7
mov word [rcx], r14w
mov dword [rsp + 0x30], 1
mov rcx, rdx
cmp qword [rdx + 0x18], 8
jb 0x14000a4ed
mov rcx, qword [rdx]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov ebp, eax
test eax, eax
je 0x14000a606
mov ecx, ebp
mov r8, qword [rbx + 0x10]
mov rdi, qword [rbx + 0x18]
cmp rbp, r8
ja 0x14000a528
mov rdx, rbx
cmp rdi, 8
jb 0x14000a51d
mov rdx, qword [rbx]
mov qword [rbx + 0x10], rcx
mov word [rdx + rbp*2], r14w
jmp 0x14000a572
mov rdx, rcx
sub rdx, r8
mov rax, rdi
sub rax, r8
cmp rdx, rax
ja 0x14000a567
mov qword [rbx + 0x10], rcx
mov r9, rbx
cmp rdi, 8
jb 0x14000a549
mov r9, qword [rbx]
lea rdi, [r9 + r8*2]
test rdx, rdx
je 0x14000a55c
movzx eax, r14w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r8 + rdx]
mov word [r9 + rax*2], r14w
jmp 0x14000a572
mov r9, rdx
mov rcx, rbx
call fcn.140005940
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x14000a57f
mov rdx, qword [rbx]
cmp qword [rsi + 0x18], 8
jb 0x14000a589
mov rsi, qword [rsi]
mov r8d, ebp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea ecx, [rax - 1]
mov r9, qword [rbx + 0x10]
mov rdi, qword [rbx + 0x18]
cmp rcx, r9
ja 0x14000a5bc
mov rax, rbx
cmp rdi, 8
jb 0x14000a5b1
mov rax, qword [rbx]
mov qword [rbx + 0x10], rcx
mov word [rax + rcx*2], r14w
jmp 0x14000a606
mov rdx, rcx
sub rdx, r9
mov rax, rdi
sub rax, r9
cmp rdx, rax
ja 0x14000a5fb
mov qword [rbx + 0x10], rcx
mov r8, rbx
cmp rdi, 8
jb 0x14000a5dd
mov r8, qword [rbx]
lea rdi, [r8 + r9*2]
test rdx, rdx
je 0x14000a5f0
movzx eax, r14w
mov rcx, rdx
rep stosw word [rdi], ax
lea rax, [r9 + rdx]
mov word [r8 + rax*2], r14w
jmp 0x14000a606
mov r9, rdx
mov rcx, rbx
call fcn.140005940
mov rax, rbx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
add rsp, 0x40
pop r14
pop rdi
pop rsi
ret
Function at 0x14000ed70
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rbx
push rbp
lea rbp, [rsp - 0x4f0]
sub rsp, 0x5f0
mov rax, qword [0x14001d010]
xor rax, rsp
mov qword [rbp + 0x4e0], rax
mov ecx, 0x17
call qword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x14000edac
mov ecx, 5
int 0x29
mov ecx, 2
call fcn.14000b5ec
xorps xmm0, xmm0
lea rcx, [rbp + 0x10]
xor eax, eax
xor edx, edx
mov r8d, 0x4d0
mov qword [rbp], rax
movups xmmword [rsp + 0x70], xmm0
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], rax
lea rcx, [rbp + 0x10]
lea rax, [rbp + 0x10]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rbx, qword [rbp + 0x108]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x14000ee68
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x38], 0
mov r9, rax
mov qword [rsp + 0x30], rcx
mov r8, rbx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0x10]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_RtlVirtualUnwind]
mov rax, qword [rbp + 0x4f8]
mov qword [rbp + 0x108], rax
lea rax, [rbp + 0x4f8]
add rax, 8
mov dword [rsp + 0x70], 0xc0000417
mov qword [rbp + 0xa8], rax
mov rax, qword [rbp + 0x4f8]
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x74], 1
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
xor ecx, ecx
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
test eax, eax
jne 0x14000eece
test ebx, ebx
jne 0x14000eece
lea ecx, [rax + 2]
call fcn.14000b5ec
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000417
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, qword [rbp + 0x4e0]
xor rcx, rsp
call fcn.14000ac70
mov rbx, qword [rsp + 0x600]
add rsp, 0x5f0
pop rbp
ret

Function at 0x140011220
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 0x140011282
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140011282
movsxd rdx, dword [rax + 0x3c]
add rdx, rax
cmp dword [rdx], 0x4550
jne 0x140011282
mov eax, 0x20b
cmp word [rdx + 0x18], ax
jne 0x140011282
cmp dword [rdx + 0x84], 0xe
jbe 0x140011282
cmp dword [rdx + 0xf8], 0
je 0x140011282
mov ecx, ebx
call fcn.1400110f0
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, [0x14001d828]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
call fcn.140010f70
cmp dword [rsp + 0x60], 0
jne 0x1400112c5
mov ecx, ebx
call fcn.1400110a0
int3
add rsp, 0x40
pop rbx
ret
Function at 0x140011310
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 0x14001136c
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14001136c
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14001136c
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14001136c
cmp dword [rcx + 0x84], 0xe
jbe 0x14001136c
cmp dword [rcx + 0xf8], 0
je 0x14001136c
mov ecx, ebx
call fcn.1400110f0
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, [0x14001d828]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x30], rax
call fcn.140010f70
cmp dword [rsp + 0x60], 0
jne 0x1400113af
mov ecx, ebx
call fcn.1400110a0
int3
add rsp, 0x40
pop rbx
ret
Function at 0x14001fde0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
mov eax, 0x10090
call fcn.140023e70
sub rsp, rax
mov rax, qword [0x140060d48]
xor rax, rsp
mov qword [rsp + 0x10080], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor ebp, ebp
mov rsi, rcx
mov word [rsp + 0x80], bp
mov word [rsp + 0x30], bp
lea edi, [rbp + 0x28]
test al, al
je 0x14001fe92
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], bpl
lea rcx, [rsp + 0x24]
call fcn.14003377c
cmp rax, 1
jne 0x14001feee
mov rcx, rdi
mov rax, rbx
cmp word [rbx], bp
je 0x14001fe6f
add rax, 2
dec rcx
cmp word [rax], bp
jne 0x14001fe63
cmp rcx, 1
jb 0x14001feee
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], bp
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x14001fe30
mov r8d, 0x10000
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0xffff
ja 0x14001fec3
lea rcx, [rsp + 0x80]
call fcn.1400363a8
jmp 0x14001fec5
xor eax, eax
mov rcx, qword [rsp + 0x10080]
xor rcx, rsp
call fcn.140023ba0
lea r11, [rsp + 0x10090]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.140033528
int3
Function at 0x140020b60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp byte [0x14006262e], 0
mov rsi, r8
mov rdi, rdx
mov rbp, rcx
jne 0x140020be3
mov edx, 3
xor ecx, ecx
lea r8d, [rdx + 7]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov qword [0x1400625c8], rax
xor ecx, ecx
mov ebx, dword [rax]
lea rdx, [rax + 4]
mov qword [0x1400625c8], rdx
mov r8d, dword [rdx]
add rdx, 4
mov qword [0x1400625c8], rdx
call fcn.14001eb40
cmp eax, ebx
jne 0x140020d4d
mov byte [0x14006262e], 1
lea rdx, [0x140044180]
mov rcx, rsi
call fcn.140035220
test eax, eax
je 0x140020c6e
cmp byte [0x14006262d], 1
je 0x140020c6e
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x140063388], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x140063390], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x140063398], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x1400633a0], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x1400633a8], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x1400633b0], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x1400633b8], rax
call qword [sym.imp.python312.dll_PyDict_New]
mov qword [0x1400633c0], rax
mov byte [0x14006262d], 1
mov r8, qword [0x1400625c8]
mov rax, rsi
mov rdx, r8
sub rdx, rsi
nop
movzx ecx, byte [rax]
xor r9d, r9d
cmp cl, byte [rax + rdx]
jne 0x140020c97
inc rax
test cl, cl
jne 0x140020c80
mov ecx, r9d
jmp 0x140020c9c
sbb ecx, ecx
or ecx, 1
mov rax, 0xffffffffffffffff
cmp byte [r8 + rax + 1], r9b
lea rax, [rax + 1]
jne 0x140020ca3
lea rdx, [r8 + rax]
mov eax, dword [r8 + rax + 1]
add rdx, 5
test ecx, ecx
je 0x140020d08
nop
add rdx, rax
mov rax, rsi
mov r8, rdx
sub r8, rsi
nop dword [rax]
movzx ecx, byte [rax]
cmp cl, byte [rax + r8]
jne 0x140020ce5
inc rax
test cl, cl
jne 0x140020cd0
mov ecx, r9d
jmp 0x140020cea
sbb ecx, ecx
or ecx, 1
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdx + rax], r9b
jne 0x140020cf1
add rdx, rax
mov eax, dword [rdx + 1]
add rdx, 5
test ecx, ecx
jne 0x140020cc0
movzx ecx, word [rdx]
lea rax, [rdx + 2]
cmp r9w, cx
jae 0x140020d38
mov ebx, ecx
nop word [rax + rax]
mov r8, rax
mov rdx, rdi
mov rcx, rbp
call fcn.14001d0c0
add rdi, 8
sub rbx, 1
jne 0x140020d20
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
lea rcx, str.Error__corrupted_constants_object
call fcn.14002ff64
call fcn.140033528
int3
Function at 0x140023720
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x90
mov rax, qword [0x140060d48]
xor rax, rsp
mov qword [rsp + 0x80], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor r14d, r14d
mov rbp, rdx
mov word [rsp + 0x30], r14w
mov rsi, rcx
lea edi, [r14 + 0x28]
test al, al
je 0x1400237d1
nop word [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], r14b
lea rcx, [rsp + 0x24]
call fcn.14003377c
cmp rax, 1
jne 0x140023807
mov rcx, rdi
mov rax, rbx
cmp word [rbx], r14w
je 0x1400237ad
add rax, 2
dec rcx
cmp word [rax], r14w
jne 0x1400237a0
cmp rcx, 1
jb 0x140023807
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], r14w
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x140023770
mov rdx, rbp
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140023ba0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
call fcn.140033528
int3

Function at 0x140023a20
Capabilities:
Set environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x90
mov rax, qword [0x140060d48]
xor rax, rsp
mov qword [rsp + 0x80], rax
movzx eax, byte [rcx]
lea rbx, [rsp + 0x30]
xor ebp, ebp
mov rsi, rcx
mov word [rsp + 0x30], bp
lea edi, [rbp + 0x28]
test al, al
je 0x140023acf
nop dword [rax]
nop word [rax + rax]
mov r8d, 2
mov byte [rsp + 0x20], al
lea rdx, [rsp + 0x20]
mov byte [rsp + 0x21], bpl
lea rcx, [rsp + 0x24]
call fcn.14003377c
cmp rax, 1
jne 0x140023b05
mov rcx, rdi
mov rax, rbx
cmp word [rbx], bp
je 0x140023aac
nop
add rax, 2
dec rcx
cmp word [rax], bp
jne 0x140023aa0
cmp rcx, 1
jb 0x140023b05
movzx ecx, word [rsp + 0x24]
inc rsi
mov word [rax], cx
add rbx, 2
mov word [rax + 2], bp
dec rdi
movzx eax, byte [rsi]
test al, al
jne 0x140023a70
xor edx, edx
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140023ba0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.140033528
int3

Function at 0x1400245e8
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140024632
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140024632
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140024632
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140024632
cmp dword [rcx + 0x84], 0xe
jbe 0x140024632
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140024634
xor al, al
add rsp, 0x28
ret
Function at 0x140029578
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 0x1400293e3
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400293e3
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400293e3
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400293e3
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400293e3
cmp dword [rcx + 0x84], 0xe
jbe 0x1400293e3
cmp dword [rcx + 0xf8], 0
je 0x1400293e3
mov ecx, ebx
call fcn.140029494
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.140029270
nop
cmp dword [rbp + 0x20], 0
je 0x140029431
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.14002943c
int3
xor r8d, r8d
xor edx, edx
jmp 0x140029374