joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40754c
Capabilities:
Enumerate pe sections

Disassembly:
push edi
mov ebx, ebx
mov ecx, esp
mov eax, dword [ecx + 8]
mov edx, dword [eax + 0x3c]
add edx, eax
xor edi, edi
movzx eax, word [edx + 0x14]
lea eax, [eax + edx + 0x18]
push ebp
push esi
movzx esi, word [edx + 6]
or esi, esi
push ebx
jbe 0x40758b
mov ebx, dword [ecx + 0xc]
mov ebp, dword [eax + 0xc]
cmp ebx, ebp
jb 0x407581
mov ecx, dword [eax + 8]
add ecx, ebp
cmp ebx, ecx
jb 0x40758d
add edi, 1
sub eax, 0xffffffd8
cmp edi, esi
jb 0x407571
xor eax, eax
pop ebx
pop esi
pop ebp
pop edi
ret

Function at 0x407760
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
mov ebx, esp
mov edi, edi
push ebp
xor ebp, ebp
cmp dword [ebx + 8], ebp
push esi
push edi
je 0x4077f6
cmp dword [ebx + 0xc], ebp
je 0x4077f6
mov esi, dword [sym.imp.KERNEL32.dll_FindResourceExW]
push ebp
push 1
mov edi, 0x4041e0
push edi
push dword [ebx + 8]
call esi
cmp eax, ebp
je 0x4077ee
mov ebp, dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
push dword [ebx + 8]
call ebp
mov dword [ebx + 8], eax
test eax, eax
je 0x4077ee
push 0
push 1
push edi
push dword [ebx + 0xc]
call esi
test eax, eax
je 0x4077ee
push eax
push dword [ebx + 0xc]
call ebp
or eax, eax
je 0x4077ee
mov ecx, 0xfecdfecd
mov edx, dword [ebx + 8]
cmp dword [edx], ecx
jne 0x4077f6
cmp dword [eax], ecx
jne 0x4077f6
push 4
lea esi, [edx + 0x1c]
lea edi, [eax + 0x1c]
xor ecx, ecx
pop ecx
repe cmpsd dword [esi], dword es:[edi]
je 0x4077e9
lea edi, [eax + 0x2c]
lea esi, [edx + 0x2c]
xor ecx, ecx
push 4
pop ecx
repe cmpsd dword [esi], dword es:[edi]
jne 0x4077f6
xor eax, eax
inc eax
jmp 0x4077f8
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret 8

Function at 0x407891
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x20
lea eax, [ebp - 0x44]
push eax
push 8
push 0x404
mov esi, 0xc04
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x4078e5
push 3
lea eax, [ebp - 0x44]
push 0x4078f8
push eax
call sub.msvcrt.dll_wcsncmp
sub esp, 0xfffffff4
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xfffff800
add esi, 0xc04
mov ecx, dword [ebp - 4]
mov ax, si
pop esi
xor ecx, ebp
call fcn.0040165d
leave
ret
Function at 0x407914
Capabilities:
Check os version

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
add esp, 0xfffffee0
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x120]
push esi
mov esi, 0x11c
push esi
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
push eax
call esi
or eax, eax
jne 0x40796d
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x114
call esi
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x110]
xor eax, eax
pop esi
dec ecx
je 0x4079c1
dec ecx
jne 0x4079e4
cmp edx, 5
jne 0x4079b9
mov ecx, dword [ebp - 0x118]
sub ecx, eax
je 0x4079b5
dec ecx
je 0x4079aa
dec ecx
je 0x40799b
push 0x14
jmp 0x407a0c
cmp word [ebp - 0xc], 1
jb 0x4079a5
push 0x10
pop eax
or eax, 4
jmp 0x4079e4
cmp word [ebp - 0xc], 2
jb 0x4079a5
push 8
jmp 0x4079a4
push 4
jmp 0x407a0c
cmp edx, 4
ja 0x4079f0
push 2
pop eax
cmp edx, 4
jne 0x4079e4
cmp dword [ebp - 0x118], 0
je 0x4079e1
cmp dword [ebp - 0x118], 0xa
je 0x4079e1
cmp dword [ebp - 0x118], 0x5a
jne 0x4079e4
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040165d
leave
ret
cmp edx, 6
jne 0x407a0f
cmp dword [ebp - 0x118], 0
jne 0x407a0f
cmp dword [ebp - 0x114], 0x1554
jae 0x407a0f
push 0x40
pop eax
jmp 0x4079e4
push 0x20
jmp 0x407a0c

Function at 0x407bac
Capabilities:
Query or enumerate registry value

Disassembly:
mov esi, esi
push ebp
mov ebp, esp
add esp, 0xffffffec
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
xor edi, edi
cmp word [0x40b644], di
jne 0x407c44
lea eax, [ebp - 0x10]
push eax
push 1
push edi
push 0x407d38
push 0x80000002
mov dword [ebp - 0x14], 6
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x407c44
lea eax, [ebp - 0x14]
push esi
push eax
lea eax, [ebp - 0xc]
push eax
push edi
push edi
push 0x407df0
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
pop esi
jne 0x407c44
push 3
push dword [edi*8 + 0x407c58]
lea eax, [ebp - 0xc]
push eax
call sub.msvcrt.dll__wcsnicmp
sub esp, 0xfffffff4
test eax, eax
je 0x407c36
inc edi
cmp edi, 0x1c
jae 0x407c44
jmp 0x407c15
mov ax, word [edi*8 + 0x407c5c]
mov word [0x40b644], ax
pop edi
mov ecx, dword [ebp - 4]
mov ax, word [0x40b644]
xor ecx, ebp
call fcn.0040165d
leave
ret
Function at 0x408ceb
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov edi, edi
mov ebp, esp
lea eax, [ebp - 8]
sub esp, 0xc
and dword [ebp - 4], 0
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x4069c4
push 0x406970
push 0x80000001
mov dword [ebp - 8], 4
call sub.SHLWAPI.dll_SHGetValueW
or eax, eax
jne 0x408d3e
cmp dword [ebp - 0xc], 4
jne 0x408d3a
cmp dword [ebp - 4], 1
je 0x408d3e
cmp dword [ebp - 4], 2
je 0x408d3e
cmp dword [ebp - 4], 0xa
je 0x408d3e
and dword [ebp - 4], 0
cmp dword [ebp - 4], 0
jne 0x408d62
call fcn.00408c67
mov dword [ebp - 4], eax
test eax, eax
je 0x408d62
call sub.iertutil.dll_Ordinal_32
cmp eax, 1
jne 0x408d62
push dword [ebp - 4]
call fcn.00408b71
mov eax, dword [ebp - 4]
leave
ret

Function at 0x408d9a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp - 8]
push ecx
mov edi, edi
push ecx
push ebx
xor ebx, ebx
push eax
push 1
push ebx
push dword [ebp + 0xc]
mov byte [ebp - 1], bl
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
or eax, eax
jne 0x408e37
push esi
mov esi, dword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
push edi
push 4
pop edi
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
push ebx
push 0x10
push dword [ebp + 0x10]
mov dword [ebp + 0xc], edi
push ebx
push dword [ebp - 8]
call esi
test eax, eax
jne 0x408df5
cmp dword [ebp + 0x14], ebx
mov eax, dword [ebp + 8]
je 0x408e23
cmp eax, ebx
je 0x408e23
cmp eax, 1
je 0x408e23
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp + 8]
push eax
push ebx
push 0x10
push 0x4069e4
push ebx
push dword [ebp - 8]
mov dword [ebp + 0xc], edi
call esi
test eax, eax
jne 0x408e2c
cmp dword [ebp + 0x14], ebx
mov eax, dword [ebp + 8]
je 0x408e23
cmp eax, ebx
je 0x408e23
cmp eax, 1
jne 0x408e2c
mov ecx, dword [ebp + 0x18]
mov byte [ebp - 1], 1
mov dword [ecx], eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov al, byte [ebp - 1]
pop ebx
leave
ret 0x14
Function at 0x409032
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x74
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push 4
call dword [sym.imp.iertutil.dll_Ordinal_74]
or eax, eax
mov dword [ebp - 0x68], eax
je 0x40910f
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push esi
lea eax, [ebp - 0x6c]
push eax
mov esi, 0x20019
push esi
push 0
mov ebx, 0x409160
push ebx
push 0x80000001
call edi
or eax, eax
je 0x409090
lea eax, [ebp - 0x6c]
push eax
push esi
push 0
push ebx
push 0x80000002
call edi
test eax, eax
jne 0x40910e
xor edi, edi
xor esi, esi
push edi
push edi
lea eax, [ebp - 0x54]
lea ebx, [ebp - 0x74]
push edi
push ebx
push eax
push esi
push dword [ebp - 0x6c]
mov dword [ebp - 0x74], 0x27
call sub.SHLWAPI.dll_SHEnumValueW
mov ebx, eax
cmp ebx, edi
jne 0x409100
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.SHELL32.dll_SHCLSIDFromString]
or eax, eax
jl 0x409100
lea eax, [ebp - 0x70]
push eax
push 0x4091c8
push edi
push 1
push edi
lea eax, [ebp - 0x64]
push eax
call sub.urlmon.dll_Ordinal_104
or eax, eax
jl 0x409100
push dword [ebp - 0x70]
push 0x7fffffff
push dword [ebp - 0x68]
call dword [sym.imp.iertutil.dll_Ordinal_85]
cmp eax, 0xffffffff
jne 0x409100
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc esi
cmp ebx, edi
je 0x409094
push dword [ebp - 0x6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov ebx, 0x40b094
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor edi, edi
cmp dword [0x40b64c], edi
jne 0x409130
mov eax, dword [ebp - 0x68]
mov dword [0x40b64c], eax
mov dword [ebp - 0x68], edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [ebp - 0x68], edi
je 0x40914b
push edi
push 0x408e44
push dword [ebp - 0x68]
call dword [sym.imp.iertutil.dll_Ordinal_79]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop ebx
call fcn.0040165d
leave
ret
Function at 0x409630
Capabilities:
Query or enumerate registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
add esp, 0xfffffde8
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
lea edi, [ebp - 0x214]
push edi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x210]
push eax
push 0x409770
push 0x409708
xor edi, edi
push 0x80000001
mov dword [ebp - 0x214], 0x208
mov word [esi], di
call sub.SHLWAPI.dll_SHGetValueW
test eax, eax
jne 0x4096e3
cmp dword [ebp - 0x210], 1
jne 0x4096e3
cmp word [ebp - 0x20c], di
lea eax, [ebp - 0x20c]
je 0x4096b9
movzx ecx, word [eax]
cmp cx, 0x2c
je 0x4096b9
cmp cx, 0x3b
je 0x4096b9
push eax
call dword [sym.imp.USER32.dll_CharNextW]
cmp word [eax], di
jne 0x40969e
mov word [eax], di
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x218]
push eax
call sub.MLANG.dll_Ordinal_123
test eax, eax
jl 0x4096e3
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0xc]
push esi
call fcn.00401ef3
cmp word [esi], di
jne 0x4096f8
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push eax
call sub.MLANG.dll_Ordinal_121
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
call fcn.0040165d
leave
ret 8

Function at 0x409b42
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov edi, edi
sub esp, 0x260
mov eax, dword [0x40b050]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push edi
xor edi, edi
cmp eax, edi
jne 0x409b6c
mov ebx, 0x80004001
jmp 0x409c2b
push esi
mov esi, 0x104
push eax
push esi
lea eax, [ebp - 0x20c]
push eax
call fcn.00401ef3
mov ebx, eax
cmp ebx, edi
jl 0x409c2a
push 0x409c40
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00407157
mov ebx, eax
cmp ebx, edi
jl 0x409c2a
lea eax, [ebp - 0x25c]
push 0x40
push edi
push eax
mov dword [ebp - 0x260], edi
call sub.msvcrt.dll_memset
lea esi, [ebp - 0x21c]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x21c], edi
lea edi, [ebp - 0x218]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
push esi
lea eax, [ebp - 0x20c]
lea esi, [ebp - 0x260]
push esi
push edi
push edi
push 0x4000020
push 1
push edi
push edi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
or eax, eax
je 0x409c14
push dword [ebp - 0x218]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push dword [ebp - 0x21c]
call edi
jmp 0x409c2a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x409c28
and eax, 0xffff
or eax, 0x80070000
mov ebx, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov eax, ebx
pop edi
pop ebx
call fcn.0040165d
leave
ret 4
Function at 0x409c5d
Capabilities:
Check mutex on windows

Disassembly:
push 0x424
push 0x409d60
call fcn.00403213
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x434], ebx
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x430], 0x80004005
call sub.iertutil.dll_Ordinal_32
cmp eax, 1
jne 0x409d48
xor edi, edi
cmp esi, edi
je 0x409d48
cmp ebx, edi
je 0x409d48
lea eax, [ebp - 0x224]
mov ebx, 0x104
push ebx
push eax
call fcn.0040a01d
test eax, eax
jl 0x409cc9
lea eax, [ebp - 0x224]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi], eax
mov eax, dword [esi]
cmp eax, edi
je 0x409d48
mov esi, 0x2710
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, edi
jne 0x409d48
lea eax, [ebp - 0x42c]
mov dword [ebp - 4], edi
push ebx
push eax
call fcn.0040a077
mov dword [ebp - 0x430], eax
cmp eax, edi
jl 0x409d3c
lea eax, [ebp - 0x42c]
push eax
push edi
push 1
push edi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x409d31
push dword [ebp - 0x434]
call fcn.00409b42
mov dword [ebp - 0x430], eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
cmp ebx, edi
je 0x409d3c
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xfffffffe
call fcn.00409d5b
mov eax, dword [ebp - 0x430]
call fcn.0040325b
ret 8
Function at 0x401de2
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4662bc
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x1c], eax
push esi
push edi
mov eax, dword [0x4947b8]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [ebp + 8]
and dword [esp + 0xc], 0
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
call dword [eax + 0xb4]
and dword [esp + 0x38], 0
push eax
push edi
mov ecx, esi
call fcn.0041b59e
push 0
push 1
lea ecx, [esp + 0x18]
call fcn.004095c3
mov eax, edi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret 4

Function at 0x401ef1
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp fcn.0041e1ef
Function at 0x40396d
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x120], eax
push esi
mov esi, ecx
cmp byte [esi + 0x2e0], 0
je 0x4039da
push pe_nt_image_headers32
lea eax, [esp + 0x10]
push 0
push eax
call fcn.0044da10
add esp, 0xc
lea eax, [esp + 8]
push eax
mov dword [esp + 0xc], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0xc], 5
jne 0x4039ca
mov ecx, esi
call fcn.00403673
jmp 0x4039dc
cmp dword [esp + 0xc], 6
jb 0x4039da
mov ecx, esi
call fcn.00402ebb
jmp 0x4039dc
xor eax, eax
mov ecx, dword [esp + 0x124]
pop esi
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret
Function at 0x4084b8
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46628c
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
push edi
mov eax, dword [0x4947b8]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
or ebx, 0xffffffff
cmp dword [ebp + 8], ebx
jne 0x408504
xor eax, eax
jmp 0x408686
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
test ecx, ecx
je 0x408532
mov edx, dword [esi + 0x30]
mov edi, dword [edx]
lea eax, [edi + ecx]
cmp ecx, eax
jae 0x408532
mov eax, dword [ebp + 8]
lea ecx, [edi - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], al
jmp 0x408686
cmp dword [esi + 0x50], 0
je 0x408684
mov ecx, esi
call fcn.004098c2
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [esi + 0x40], ecx
jne 0x408566
push dword [esi + 0x50]
movsx eax, al
push eax
call fcn.00449dd2
pop ecx
cmp eax, ebx
cmovne ebx, dword [ebp + 8]
pop ecx
jmp 0x408684
push ecx
mov dword [esp + 0x3c], ecx
mov byte [esp + 0x2c], cl
push 8
lea ecx, [esp + 0x30]
mov byte [esp + 0x1b], al
mov dword [esp + 0x44], 0xf
call fcn.00409ec3
and dword [esp + 0x50], 0
lea eax, [esi + 0x48]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x3c]
mov esi, dword [esi + 0x40]
cmp edi, 0x10
mov edi, dword [esi]
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2c]
cmovae ecx, dword [esp + 0x2c]
lea edx, [esp + 0x2c]
cmovae edx, dword [esp + 0x2c]
add eax, ecx
push eax
push edx
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x27]
push eax
push dword [esp + 0x3c]
mov ecx, esi
call dword [edi + 0x1c]
test eax, eax
js 0x40867b
cmp eax, 1
jg 0x40865c
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp edi, 0x10
lea eax, [esp + 0x28]
cmovae eax, ecx
sub edx, eax
mov dword [esp + 0x1c], edx
je 0x408629
push dword [esi + 0x50]
lea eax, [esp + 0x2c]
push edx
cmp edi, 0x10
cmovae eax, ecx
push 1
push eax
call fcn.0044a425
mov edx, dword [esp + 0x2c]
add esp, 0x10
cmp edx, eax
jne 0x40867b
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x13]
mov byte [esi + 0x45], 1
cmp dword [esp + 0x20], eax
jne 0x408657
test edx, edx
jne 0x408596
cmp dword [esp + 0x38], 0x20
jae 0x40867b
push edx
push 8
lea ecx, [esp + 0x30]
call fcn.004090c7
jmp 0x408592
mov ebx, dword [ebp + 8]
jmp 0x40867b
cmp eax, 3
jne 0x40867b
mov eax, dword [esp + 0x14]
push dword [eax + 0x50]
movsx eax, byte [esp + 0x17]
push eax
call fcn.00449dd2
pop ecx
cmp eax, ebx
cmovne ebx, dword [ebp + 8]
pop ecx
lea ecx, [esp + 0x28]
call fcn.00407e25
mov eax, ebx
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret 4
Function at 0x408e53
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4663d7
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x18], eax
push esi
mov eax, dword [0x4947b8]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea eax, [ebp + 0x10]
push eax
lea ecx, [esp + 0xc]
call fcn.00429848
pop ecx
and dword [esp + 0x30], 0
cmp dword [esp + 0x1c], 0x10
lea eax, [esp + 8]
cmovae eax, dword [esp + 8]
push eax
mov ecx, esi
call fcn.004099ae
lea ecx, [esp + 8]
call fcn.00407e25
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret

Function at 0x40972a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x465dfc
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x28], eax
push ebx
push esi
push edi
mov eax, dword [0x4947b8]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
xor ebx, ebx
cmp dword [esi + 0x40], ebx
je 0x409877
cmp byte [esi + 0x45], bl
je 0x409877
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
jne 0x40978e
xor al, al
jmp 0x409879
push ebx
push 8
lea ecx, [esp + 0x28]
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], ebx
mov byte [esp + 0x28], bl
call fcn.00409ec3
lea eax, [esi + 0x48]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
cmp ecx, 0x10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
mov ecx, dword [ecx + 0x40]
push eax
mov eax, dword [esp + 0x34]
lea edi, [esp + 0x24]
cmovae edi, edx
lea esi, [esp + 0x24]
cmovae esi, edx
mov edx, dword [ecx]
add eax, edi
push eax
push esi
push dword [esp + 0x24]
call dword [edx + 0x20]
sub eax, ebx
je 0x4097f8
dec eax
jne 0x40985d
mov esi, dword [esp + 0x14]
jmp 0x4097ff
mov esi, dword [esp + 0x14]
mov byte [esi + 0x45], bl
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp ecx, 0x10
lea eax, [esp + 0x20]
cmovae eax, edx
sub edi, eax
je 0x40983e
push dword [esi + 0x50]
cmp ecx, 0x10
push edi
lea eax, [esp + 0x28]
cmovae eax, edx
push 1
push eax
call fcn.0044a425
add esp, 0x10
cmp edi, eax
jne 0x409866
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
cmp byte [esi + 0x45], 0
je 0x409864
test edi, edi
jne 0x4097bd
push ebx
push 8
lea ecx, [esp + 0x28]
call fcn.004090c7
jmp 0x4097b5
dec eax
dec eax
jne 0x40986a
inc eax
jmp 0x409868
mov bl, 1
mov al, bl
mov bl, al
lea ecx, [esp + 0x20]
call fcn.00407e25
mov al, bl
jmp 0x409879
mov al, 1
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x28]
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret
Function at 0x40c605
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push esi
mov esi, ecx
test edx, edx
jne 0x40c617
push 0xd
pop eax
jmp 0x40c649
push ebx
mov ecx, edx
push edi
lea edi, [ecx + 2]
xor ebx, ebx
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x40c620
sub ecx, edi
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
pop edi
pop ebx
pop esi
pop ebp
ret 0xc
Function at 0x4132af
Capabilities:
Create thread
Resume thread

Disassembly:
push 0x34
mov eax, 0x469096
call fcn.0044e593
mov esi, ecx
mov edx, dword [esi]
lea eax, [edx + 0x18]
push eax
push 4
push edx
push 0x43d1e1
push 0
push 0
call fcn.0044ca24
add esp, 0x18
test eax, eax
je 0x413303
mov ecx, dword [esi]
xor edx, edx
add ecx, 4
inc edx
lock xadd dword [ecx], edx
mov ecx, dword [esi]
push eax
add ecx, 8
call fcn.0041304f
mov eax, dword [esi]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
call fcn.0044e542
ret
lea ecx, [ebp - 0x3c]
call fcn.00401ac7
and dword [ebp - 4], 0
mov ecx, eax
call fcn.0040a7ed
int3

Function at 0x4141c2
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46798a
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x106c
call fcn.0045b5d0
mov eax, dword [0x4947b8]
xor eax, esp
mov dword [esp + 0x1068], eax
push ebx
push esi
push edi
mov eax, dword [0x4947b8]
xor eax, esp
push eax
lea eax, [esp + 0x1080]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
push ebx
push edi
mov dword [esp + 0x18], eax
lea eax, [ecx + 0x160]
push str.Bootstrapper::CreateProcess_module___S__args___S
push eax
call fcn.00408e53
push 0x40
lea eax, [esp + 0x2c]
push 0
push eax
call fcn.0044da10
add esp, 0x1c
xor eax, eax
push 0xffe
push eax
mov word [esp + 0x7c], ax
lea eax, [esp + 0x7e]
push eax
mov dword [esp + 0x20], 0x44
call fcn.0044da10
add esp, 0xc
cmp word [edi], 0x22
mov esi, 0x800
lea eax, [esp + 0x74]
je 0x414299
push 0x47a4f4
push esi
push eax
call fcn.0044b84f
add esp, 0xc
lea eax, [esp + 0x74]
push edi
push esi
push eax
call fcn.0044b956
add esp, 0xc
lea eax, [esp + 0x74]
push 0x47a4f4
push esi
push eax
call fcn.0044b956
jmp 0x4142a1
push edi
push esi
push eax
call fcn.0044b84f
add esp, 0xc
lea eax, [esp + 0x74]
push 0x47a4f8
push esi
push eax
call fcn.0044b956
add esp, 0xc
lea eax, [esp + 0x74]
push ebx
push esi
push eax
call fcn.0044b956
add esp, 0xc
lea eax, [esp + 0x5c]
push edi
push str.CreateProcess__S_failed
push eax
call fcn.004299b0
add esp, 0xc
mov esi, eax
push dword [esp + 0x10]
xor ecx, ecx
lea eax, [esp + 0x18]
push eax
push ecx
push ecx
push 0x20
push ecx
push ecx
push ecx
lea eax, [esp + 0x94]
push eax
push ecx
mov dword [esp + 0x10b0], ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x41430e
mov ecx, esi
call fcn.00426e74
lea ecx, [esp + 0x5c]
call fcn.00407e25
mov ecx, dword [esp + 0x1080]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1068]
xor ecx, esp
call fcn.004492e4
mov esp, ebp
pop ebp
ret 0xc