joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4039f0
Capabilities:
Accept command line arguments

Disassembly:
push ecx
push esi
push edi
mov edi, eax
mov esi, ebx
mov dword [0x40c020], eax
mov dword [0x40b0e0], edx
call fcn.004054a0
xor eax, eax
mov dword [0x40c650], eax
call dword [sym.imp.KERNEL32.DLL_GetVersion]
mov edx, eax
mov byte [0x40b34d], al
shr eax, 0x10
mov word [0x40b34f], ax
xor eax, eax
mov ax, word [0x40b34f]
and edx, 0xffff
mov dword [0x40b351], eax
xor eax, eax
sar edx, 8
mov al, byte [0x40b34d]
and edx, 0xff
mov dword [0x40b355], eax
xor eax, eax
mov al, dl
mov byte [0x40b34e], dl
mov dword [0x40b359], eax
mov eax, dword [0x40b355]
mov edx, dword [0x40b359]
shl eax, 8
or eax, edx
mov dword [0x40b35d], eax
cmp byte [0x40b34d], 4
jae 0x403b17
mov eax, 0x403988
push eax
xor edx, edx
push 0x4039b5
mov dword [0x40b349], edx
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov edx, eax
test eax, eax
je 0x403aaa
call edx
mov dword [0x40b349], eax
push 0x104
push 0x40c024
push 0
mov ebx, 0x208
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
mov edx, 0x40c128
xor eax, eax
mov dword [0x40b318], 0x40c024
call fcn.004055e0
mov dword [0x40b324], 0x40c128
call dword [sym.imp.KERNEL32.DLL_GetCommandLineA]
call fcn.00405680
mov edx, eax
mov bl, byte [eax]
mov dword [0x40c018], eax
cmp bl, 0x22
je 0x403b21
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x4047d1], 2
je 0x403b39
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x4047d1], 2
je 0x403b40
inc eax
jmp 0x403b07
mov eax, 0x40399e
jmp 0x403a82
inc eax
cmp bl, byte [eax]
je 0x403b31
cmp byte [eax], 0
je 0x403b31
inc eax
cmp byte [eax], 0x22
jne 0x403b26
cmp byte [eax], 0
je 0x403b07
inc eax
jmp 0x403b07
test dl, dl
je 0x403b07
inc eax
jmp 0x403afa
mov dword [0x40b314], eax
call dword [sym.imp.KERNEL32.DLL_GetCommandLineW]
test eax, eax
je 0x403bb6
call fcn.004056c0
mov edx, eax
mov bx, word [eax]
mov dword [0x40c01c], eax
cmp bx, 0x22
je 0x403b89
xor eax, eax
mov ax, word [edx]
call fcn.004056e7
test eax, eax
je 0x403bab
xor eax, eax
mov ax, word [edx]
call fcn.004056e7
test eax, eax
je 0x403bbb
add edx, 2
jmp 0x403b76
lea edx, [eax + 2]
cmp bx, word [edx]
je 0x403ba0
cmp word [edx], 0
je 0x403ba0
add edx, 2
cmp word [edx], 0x22
jne 0x403b91
cmp word [edx], 0
je 0x403b76
add edx, 2
jmp 0x403b76
cmp word [edx], 0
je 0x403b76
add edx, 2
jmp 0x403b68
mov edx, 0x4039c2
mov dword [0x40b320], edx
test edi, edi
jne 0x403bce
mov eax, 1
pop edi
pop esi
pop ecx
ret
push 0x104
push 0x40c330
push esi
mov ebx, 0x208
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
mov edx, 0x40c434
mov eax, esi
mov dword [0x40b31c], 0x40c330
call fcn.004055e0
mov dword [0x40b328], 0x40c434
mov eax, 1
pop edi
pop esi
pop ecx
ret

Function at 0x4041a0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ecx
push edx
push 0x40
push 0x1000
mov edx, dword [eax]
push edx
push 0
call dword [sym.imp.KERNEL32.DLL_VirtualAlloc]
pop edx
pop ecx
ret
Function at 0x404250
Capabilities:
Read file on windows

Disassembly:
push ecx
sub esp, 4
test eax, eax
jl 0x404281
cmp eax, dword [0x40b370]
jae 0x404281
push 0
lea ecx, [esp + 4]
push ecx
push ebx
push edx
call fcn.004053d0
push eax
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x404298
mov eax, dword [esp]
add esp, 4
pop ecx
ret
call dword [0x40b0e4]
mov dword [eax + 4], 4
mov eax, 0xffffffff
add esp, 4
pop ecx
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, eax
call fcn.00406700
cmp edx, 0x6d
jne 0x4042b0
cmp dword [esp], 0
je 0x404279
mov eax, 0xffffffff
add esp, 4
pop ecx
ret

Function at 0x404520
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
push edi
push ebp
sub esp, 8
mov esi, eax
mov ebp, edx
mov edi, ebx
test eax, eax
jl 0x4045b4
cmp eax, dword [0x40b370]
jae 0x4045b4
call fcn.004053d0
mov edx, eax
mov dword [esp + 4], eax
mov eax, esi
xor ebx, ebx
call fcn.004065b0
test al, 0x80
je 0x404578
mov eax, esi
call dword [0x40b0a0]
push 2
push 0
push 0
push edx
mov ebx, 1
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
je 0x4045c8
push 0
lea eax, [esp + 4]
push eax
push edi
push ebp
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
test eax, eax
jne 0x4045d2
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, eax
cmp ebx, 1
jne 0x4045a5
mov eax, esi
call dword [0x40b0a4]
mov eax, edx
call fcn.00406700
add esp, 8
pop ebp
pop edi
pop esi
pop ecx
ret
call dword [0x40b0e4]
mov dword [eax + 4], 4
mov eax, 0xffffffff
jmp 0x4045ac
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov edx, eax
jmp 0x40459d
cmp edi, dword [esp]
je 0x4045e4
call dword [0x40b0e4]
mov dword [eax + 4], 0xc
cmp ebx, 1
jne 0x4045f1
mov eax, esi
call dword [0x40b0a4]
mov eax, dword [esp]
add esp, 8
pop ebp
pop edi
pop esi
pop ecx
ret

Function at 0x407970
Capabilities:
Terminate process

Disassembly:
push edx
push ebp
mov ebp, esp
mov eax, dword [0x40b334]
add eax, 3
and al, 0xfc
mov edx, dword [0x40b334]
sub esp, eax
mov eax, esp
add eax, edx
mov dword [0x40b338], eax
call fcn.004087d0
mov edx, dword [0x40c76c]
mov eax, dword [0x40c768]
call fcn.00401cb0
jmp 0x4087d2
mov ecx, eax
call dword [0x40b564]
cmp dword [0x40c020], 0
je 0x40880f
cmp dword [0x40b0dc], 0
je 0x4087fc
mov edx, 0xff
mov eax, 0x10
call dword [0x40b0dc]
call dword [0x40b564]
call dword [0x40b568]
mov eax, ecx
jmp fcn.00403cf0
mov edx, 0xff
mov eax, 0x10
call fcn.00406550
jmp 0x4087fc
Function at 0x405e30
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x47400b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, dword [esp + 0x18]
push edi
lea ecx, [esi + 4]
mov dword [esi], 0x4040f4
call fcn.00406a91
push 4
mov dword [esp + 0x18], 0
call fcn.0040766a
mov edi, eax
add esp, 4
test edi, edi
je 0x405ea4
push ebx
call fcn.00406969
mov dword [edi], eax
call fcn.00406728
push 0
lea ecx, [esp + 0x10]
mov ebx, eax
call fcn.00406a52
mov eax, dword [ebx + 4]
cmp eax, 0xffffffff
jae 0x405e98
inc eax
mov dword [ebx + 4], eax
lea ecx, [esp + 0xc]
call fcn.00406a7a
pop ebx
jmp 0x405ea6
xor edi, edi
mov dword [esi + 0x38], edi
lea eax, [esi + 8]
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x18]
mov dword [esi + 0x20], ecx
lea edx, [esi + 0x1c]
mov dword [esi + 0x24], edx
lea eax, [esi + 0xc]
mov dword [esi + 0x14], eax
lea ecx, [esi + 0x28]
mov dword [esi + 0x30], ecx
lea edx, [esi + 0x2c]
mov dword [esi + 0x34], edx
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov dword [eax], 0
mov ecx, dword [esi + 0x34]
mov dword [ecx], 0
mov edx, dword [esi + 0x10]
mov dword [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ecx, dword [esi + 0x30]
mov dword [ecx], 0
mov ecx, dword [esp + 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4

Function at 0x4080e1
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x477648]
jne 0x4080eb
repz ret
jmp fcn.0040c7dc
Function at 0x411c1c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x477648]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.0040b34c
and dword [ebp - 0x14], 0
cmp dword [0x479f8c], 0
mov dword [ebp - 0x18], eax
jne 0x411ccf
push 0x403f00
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x411d77
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x403ef4
push ebx
call edi
test eax, eax
je 0x411d77
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push 0x403ee4
push ebx
mov dword [0x479f8c], eax
call edi
push eax
call esi
push 0x403ed0
push ebx
mov dword [0x479f90], eax
call edi
push eax
call esi
push 0x403eb4
push ebx
mov dword [0x479f94], eax
call edi
push eax
call esi
mov dword [0x479f9c], eax
test eax, eax
je 0x411ccf
push 0x403e9c
push ebx
call edi
push eax
call esi
mov dword [0x479f98], eax
mov eax, dword [0x479f98]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x411d28
cmp dword [0x479f9c], ecx
je 0x411d28
push eax
call esi
push dword [0x479f9c]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x411d28
test ebx, ebx
je 0x411d28
call edi
test eax, eax
je 0x411d1f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x411d1f
test byte [ebp - 8], 1
jne 0x411d28
or dword [ebp + 0x10], 0x200000
jmp 0x411d5b
mov eax, dword [0x479f90]
cmp eax, dword [ebp - 0x18]
je 0x411d5b
push eax
call esi
test eax, eax
je 0x411d5b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x411d5b
mov eax, dword [0x479f94]
cmp eax, dword [ebp - 0x18]
je 0x411d5b
push eax
call esi
test eax, eax
je 0x411d5b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x479f8c]
call esi
test eax, eax
je 0x411d77
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x411d79
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004080e1
leave
ret

Function at 0x4729b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ecx
mov eax, 0x6b
mov edx, 0x72
mov word [0x7fdce8], ax
mov word [0x7fdcec], dx
mov ecx, 0x6e
mov edx, 0x65
xor eax, eax
push 0x7fdce8
mov dword [0x7fdcf4], 0x320033
mov dword [0x7fdcfc], 0x6c006c
mov word [0x7fdcee], cx
mov dword [0x7fdcf0], 0x6c0065
mov dword [0x7fdcf8], 0x64002e
mov word [0x7fdcea], dx
mov word [0x7fdd00], ax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edx, dword [0x7fdce4]
lea ecx, [esp]
push ecx
push 0x40
mov dword [0x7fdce0], eax
mov eax, dword [0x47ed34]
push edx
push eax
mov byte [0x479fab], 0x65
mov dword [0x479fa1], 0x75747269
mov word [0x479fa5], 0x6c61
mov byte [0x479fa0], 0x56
mov word [0x479fac], 0x7463
mov byte [0x479fae], 0
mov dword [0x479fa7], 0x746f7250
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
pop ecx
ret
Function at 0x472aa0
Capabilities:
Delete directory
Get common file path
Manipulate console buffer

Disassembly:
sub esp, 0x80c
cmp dword [0x7fdce4], 0x37
jne 0x472b3b
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FatalAppExitA]
push 0
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
mov eax, dword [esp]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SetSystemPowerState]
push 0
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea edx, [esp + 8]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
lea eax, [esp + 4]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeA]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteProfileSectionW]
push 0
lea ecx, [esp + 0x410]
push ecx
push 0
push 0x403f80
push 0
call dword [sym.imp.KERNEL32.dll_FoldStringA]
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_ReplaceFileA]
mov edx, dword [0x7fecd8]
mov dword [esp], edx
mov eax, 0x5d1
add dword [esp], eax
mov eax, dword [esp]
mov cl, byte [eax + esi]
mov edx, dword [0x47ed34]
mov byte [edx + esi], cl
add esp, 0x80c
ret
Function at 0x472ce0
Capabilities:
Manipulate console buffer
Move file

Disassembly:
mov eax, dword [0x7fdce4]
sub esp, 0x9cc
push ebx
push ebp
push esi
mov esi, dword [0x47ed34]
shr eax, 3
push edi
test eax, eax
je 0x472e8a
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jmp 0x472d14
mov esi, dword [esp + 0x18]
cmp dword [0x7fdce4], 0x1c
jne 0x472d31
lea eax, [esp + 0x38]
push eax
push 0
lea ecx, [esp + 0x44]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov edx, dword [0x4782d0]
mov eax, dword [0x4782d4]
mov ecx, dword [0x4782d8]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov dword [esp + 0x24], edx
mov edx, dword [0x4782dc]
mov ebp, 0xc6ef3720
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], 0x20
mov eax, edi
shr eax, 5
add eax, dword [esp + 0x30]
mov ecx, edi
shl ecx, 4
add ecx, dword [esp + 0x2c]
lea edx, [edi + ebp]
xor eax, ecx
xor eax, edx
sub ebx, eax
mov eax, ebx
shl eax, 4
mov dword [0x7fdc54], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x14], eax
cmp dword [0x7fdce4], 0x1be
jne 0x472dbd
lea ecx, [esp + 0x28]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov esi, ebx
shr esi, 5
add esi, dword [esp + 0x34]
cmp dword [0x7fdce4], 0x979
mov dword [0x7fdc58], 0xff6b3619
mov dword [0x7fdc5c], 0xffffffff
jne 0x472e0f
mov edx, dword [esp + 0x28]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0
lea eax, [esp + 0x1dc]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GlobalGetAtomNameW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
lea eax, [ebx + ebp]
xor esi, eax
mov eax, dword [esp + 0x14]
xor eax, esi
sub edi, eax
add ebp, 0x61c88647
dec dword [esp + 0x1c]
mov dword [esp + 0x14], eax
jne 0x472d6a
cmp dword [0x7fdce4], 0x8d4
jne 0x472e47
lea ecx, [esp + 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov esi, dword [esp + 0x18]
mov dword [esi], edi
mov dword [esi + 4], ebx
cmp dword [0x7fdce4], 0x17
jne 0x472e79
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressW]
lea edx, [esp + 0x98]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
add esi, 8
dec dword [esp + 0x20]
mov dword [esp + 0x18], esi
jne 0x472d10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9cc
ret
Function at 0x4013c0
Capabilities:
Encode data using xor

Disassembly:
jmp 0x414fb0
push esi
push edi
mov edi, dword [esp + 0x10]
xor esi, esi
test edi, edi
je 0x415156
push ebx
mov ebx, dword [esp + 0x10]
nop word [eax + eax]
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
sub byte [esi + ebx], 8
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 9
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
xor byte [esi + ebx], 8
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0xb1
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
add esp, 0x44
push eax
call fcn.004013a7
add byte [esi + ebx], 0xa5
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0x53
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0xe4
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0xca
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0x88
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0x95
add esp, 0x40
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0xa0
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
xor byte [esi + ebx], 0x9a
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0xef
push str.Protocol_of_Mind
push 0x4d24a8
call fcn.0040349f
push eax
call fcn.004013a7
add byte [esi + ebx], 0x91
add esp, 0x30
inc esi
cmp esi, edi
jb 0x414fd0
pop ebx
pop edi
pop esi
ret

Function at 0x4035da
Capabilities:
Terminate process

Disassembly:
jmp 0x453329
push 0x17
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x45333a
push 5
pop ecx
int 0x29
push esi
push 1
mov esi, 0xc0000417
push esi
push 2
call fcn.00405920
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
pop esi
ret

Function at 0x40370b
Capabilities:
Query environment variable

Disassembly:
jmp 0x49c7e2
mov edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x49c7f3
pop esi
ret
push ebx
push edi
push esi
call fcn.0049c6c9
mov ebx, eax
sub ebx, esi
and ebx, 0xfffffffe
push ebx
call fcn.00403fe9
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x49c81b
push ebx
push esi
push edi
call fcn.00405713
add esp, 0xc
push 0
call fcn.00406262
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, edi
pop edi
pop ebx
pop esi
ret
Function at 0x4026dc
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef8
mov ebx, edx
mov esi, eax
mov eax, ebx
call fcn.00403278
test esi, esi
jne 0x402712
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.0040333c
jmp 0x402730
call sub.kernel32.dll_GetCommandLineA
mov edi, eax
mov edx, ebx
mov eax, edi
call fcn.004025e0
mov edi, eax
test esi, esi
je 0x402730
cmp dword [ebx], 0
je 0x402730
dec esi
jmp 0x402719
add esp, 0x108
pop edi
pop esi
pop ebx
ret

Function at 0x402764
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0x406008], 0x8088405
inc edx
mov dword [ebx + 0x406008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0x402a04
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [0x406018]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x402a9c
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x402a7c
xor eax, eax
push ebp
push 0x402a75
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x402ab8
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x402a7c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
movzx eax, word [0x406018]
and ax, 0xffc0
movzx edx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [0x406018], ax
mov esp, ebp
pop ebp
ret

Function at 0x4030f8
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x407034], 0
je 0x403159
cmp word [0x407208], 0xd7b2
jne 0x403121
cmp dword [0x407210], 0
jbe 0x403121
mov eax, 0x407204
call dword [0x407220]
push 0
lea eax, [esp + 4]
push eax
push 0x1e
push 0x406060
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x403180
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
pop edx
ret
cmp byte [0x406024], 0
jne 0x403175
push 0
push 0x406058
push 0x406060
push 0
call sub.user32.dll_MessageBoxA
pop edx
ret

Function at 0x403f0c
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor edx, edx
mov dword [ebp - 0x10], edx
xor edx, edx
push ebp
push 0x403f72
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 0xb]
push edx
push 0x1004
push eax
call sub.kernel32.dll_GetLocaleInfoA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0xb]
mov ecx, 7
call fcn.00403388
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.004028f8
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x403f5c
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x403f79
lea eax, [ebp - 0x10]
call fcn.00403278
ret
Function at 0x404510
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x4045fe
push dword fs:[eax]
mov dword fs:[eax], esp
or edi, 0xffffffff
lea edx, [ebp - 4]
mov eax, esi
call fcn.0040493c
mov eax, dword [ebp - 4]
call fcn.004035a0
mov edx, eax
lea eax, [ebp - 0xc]
call fcn.004048fc
mov ebx, eax
test ebx, ebx
je 0x4045db
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
mov eax, dword [0x40799c]
mov ecx, dword [eax + esi*4 - 4]
mov eax, dword [0x4079a0]
mov edx, dword [eax + esi*4 - 4]
lea eax, [ebp - 0x14]
call fcn.004033ec
mov eax, dword [ebp - 0x14]
call fcn.004035a0
push eax
call sub.kernel32.dll_CreateFileA
mov esi, eax
lea eax, [ebp - 8]
mov edx, dword [0x4079a8]
call fcn.00403680
lea eax, [ebp - 8]
call fcn.004035f0
mov edx, eax
mov eax, ebx
mov ecx, dword [0x4079a8]
call fcn.004025a0
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x4079a8]
push eax
lea eax, [ebp - 8]
call fcn.004035f0
push eax
push esi
call sub.kernel32.dll_WriteFile_1
push esi
call sub.kernel32.dll_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x404605
lea eax, [ebp - 0x14]
call fcn.00403278
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040329c
ret
Function at 0x56b370
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push edi
push 0x1a
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
jne 0x56b38e
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ecx, dword [esp + 0x14]
push 0x594074
push ecx
mov edi, eax
call fcn.0057f198
mov esi, eax
add esp, 8
test esi, esi
jne 0x56b3cb
pop edi
pop esi
xor al, al
pop ebx
ret
push esi
push ebx
push 1
push edi
call fcn.0057f02e
push esi
call fcn.0057efb1
add esp, 0x14
mov al, 1
pop edi
pop esi
pop ebx
ret
Function at 0x56e850
Capabilities:
Query or enumerate registry value

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x218
lea eax, [esp]
push ebp
push esi
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push eax
push 0x20019
push 0
push ecx
push SysReAllocString
call edi
test eax, eax
jne 0x56e8ae
mov ecx, dword [esp + 0xc]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueW]
lea edx, [esp + 0x10]
lea eax, [esp + 0x1c]
push edx
push eax
push 0x599720
push ecx
mov dword [esp + 0x20], 0x104
call ebp
test eax, eax
je 0x56e8ba
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
pop esi
pop ebp
add esp, 0x218
ret
mov eax, dword [esp + 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
lea ecx, [esp + 0x1c]
push str.DefaultIcon
push ecx
call fcn.0057f1e1
add esp, 8
lea edx, [esp + 0xc]
lea eax, [esp + 0x1c]
push edx
push 0x20019
push 0
push eax
push SysReAllocString
call edi
test eax, eax
jne 0x56e8ae
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x1c]
push ecx
push edx
push 0x599720
push eax
mov dword [esp + 0x20], 0x104
call ebp
test eax, eax
je 0x56e92a
mov ecx, dword [esp + 0xc]
push ecx
call esi
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x218
ret
mov edx, dword [esp + 0xc]
push edx
call esi
lea eax, [esp + 0x1c]
push 0x2c
push eax
call fcn.00580082
xor esi, esi
add esp, 8
cmp eax, esi
je 0x56e957
mov word [eax], si
add eax, 2
push eax
call fcn.00580030
add esp, 4
jmp 0x56e959
xor eax, eax
lea ecx, [esp + 0x18]
push 1
lea edx, [esp + 0x18]
push ecx
push edx
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x24], esi
push eax
mov dword [esp + 0x2c], esi
call dword [sym.imp.SHELL32.dll_ExtractIconExW]
test eax, eax
je 0x56e8ae
mov al, byte [esp + 0x22c]
test al, al
mov eax, dword [esp + 0x14]
jne 0x56e8b0
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
add esp, 0x218
ret

Function at 0x56eff0
Capabilities:
Execute syscall

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
lea edx, [ebp + 0xc]
int 0x2e
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret