joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000b197
Capabilities:
Parse pe header

Disassembly:
push esi
mov esi, ecx
test si, si
jne 0x1000b24c
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x1000b24c
mov edx, dword [esi + 0x3c]
test dl, 3
jne 0x1000b24c
cmp dword [edx + esi], 0x4550
jne 0x1000b24c
cmp dword [edx + esi + 0x74], 6
jb 0x1000b24c
push ebx
mov ebx, dword [edx + esi + 0x50]
push edi
mov edi, dword [edx + esi + 0xa8]
lea eax, [ebx - 1]
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x1000b24a
mov eax, dword [edx + esi + 0xac]
mov ecx, ebx
sub ecx, edi
cmp eax, ecx
ja 0x1000b24a
xor edx, edx
add edi, esi
push 0x1c
pop ecx
div ecx
mov edx, eax
test edx, edx
je 0x1000b24a
imul ecx, edx, 0x1c
add ecx, 0x14
add ecx, edi
lea ecx, [ecx - 0x1c]
dec edx
cmp dword [ecx - 8], 2
lea edi, [ecx - 0x14]
jne 0x1000b228
cmp dword [ecx], ebx
jae 0x1000b228
mov eax, ebx
sub eax, dword [ecx]
cmp dword [ecx - 4], eax
jbe 0x1000b22e
test edx, edx
jne 0x1000b20e
jmp 0x1000b24a
push 0x1c
push edi
call dword [sym.imp.kernel32.dll_VirtualLock]
test eax, eax
je 0x1000b24a
mov eax, dword [edi + 0x14]
push dword [edi + 0x10]
add eax, esi
push eax
call dword [sym.imp.kernel32.dll_VirtualLock]
pop edi
pop ebx
pop esi
ret

Function at 0x1000c446
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
pushal
call 0x1000c455
pop dword [ebp - 0x40]
mov eax, 0xeac98948
sub eax, 0xdac8c4f3
sub dword [ebp - 0x40], eax
push 0x40
push 0x1000
push 0x363cd
push 0
mov eax, 0x19b69979
add eax, 0xf64aa6eb
add eax, dword [ebp - 0x40]
call dword [eax]
mov ecx, 0x3d0c
mov edi, eax
mov ebx, 0xe8dc28b0
add ebx, 0x27255d50
add ebx, dword [ebp - 0x40]
mov edx, 0xa4b293f3
add edx, 0x4fc5424e
xor dword [ebp - 0x3c], eax
mov esi, dword [ebx]
mov dword [ebp - 0x34], 0xbf689030
xor esi, edx
mov dword [edi], esi
add dword [ebp - 0x24], 0xe108e920
add edi, 0x4a17b5f6
sub edi, 0x4a17b5f2
add ebx, 0x17c20c5b
sub ebx, 0x17c20c57
loop 0x1000c4ae
add eax, 0xe703
xor ebx, ebx
add ebx, eax
add eax, 0x1f3acf06
sub eax, 0x1f3acf01
mov ecx, 0x22b9166
add ecx, 0xdd46e9a
add ecx, dword [ebp - 0x40]
call ebx
leave
ret
Function at 0x40446e
Capabilities:
Terminate process

Disassembly:
push 0x58
push 0x404f98
call fcn.0040488b
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
mov dword [ebp - 4], 0xfffffffe
mov dword [ebp - 4], 1
mov eax, dword fs:[0x18]
mov esi, dword [eax + 4]
mov edi, 0x4065fc
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
test eax, eax
je 0x40420d
cmp eax, esi
jne 0x404200
xor esi, esi
inc esi
mov ebx, esi
jmp 0x404210
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4041e7
xor esi, esi
inc esi
mov eax, dword [0x4065f8]
cmp eax, esi
jne 0x404223
push 0x1f
call sub.MSVCR80.dll__amsg_exit
pop ecx
jmp 0x404252
mov eax, dword [0x4065f8]
test eax, eax
jne 0x40424c
mov dword [0x4065f8], esi
push 0x4011f4
push 0x4011ec
call sub.MSVCR80.dll__initterm_e
pop ecx
pop ecx
test eax, eax
je 0x404252
jmp 0x40437a
mov dword [0x406290], esi
mov eax, dword [0x4065f8]
cmp eax, esi
jne 0x404276
push 0x4011e8
push 0x4011d8
call sub.MSVCR80.dll__initterm
pop ecx
pop ecx
mov dword [0x4065f8], 2
test ebx, ebx
jne 0x404282
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
cmp dword [0x406608], 0
je 0x4042a6
push 0x406608
call fcn.00404813
pop ecx
test eax, eax
je 0x4042a6
push 0
push 2
push 0
call dword [0x406608]
mov eax, dword [sym.imp.MSVCR80.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
mov al, byte [esi]
cmp al, 0x20
ja 0x404302
test al, al
je 0x4042c0
cmp dword [ebp - 0x1c], 0
jne 0x404302
mov al, byte [esi]
test al, al
je 0x4042d0
cmp al, 0x20
ja 0x4042d0
inc esi
mov dword [ebp - 0x20], esi
jmp 0x4042c0
test byte [ebp - 0x3c], 1
je 0x4042dc
movzx eax, word [ebp - 0x38]
jmp 0x4042df
push 0xa
pop eax
push eax
push esi
push 0
push 0x400000
call main
mov dword [0x40628c], eax
cmp dword [0x406280], 0
jne 0x404356
push eax
call dword [sym.imp.MSVCR80.dll_exit]
cmp al, 0x22
jne 0x404311
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
sete cl
mov dword [ebp - 0x1c], ecx
movzx eax, al
push eax
call dword [sym.imp.MSVCR80.dll__ismbblead]
pop ecx
test eax, eax
je 0x404324
inc esi
mov dword [ebp - 0x20], esi
inc esi
jmp 0x4042ad
cmp dword [0x406290], 0
jne 0x404365
call dword [sym.imp.MSVCR80.dll__cexit]
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [0x40628c]
jmp 0x404386
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
call fcn.00495000
ret
call fcn.00403b1b
jmp 0x4041ad
Function at 0x41f993
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x41f9d2
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x41f9d2
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x41f9d2
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x41f9d2
cmp dword [ecx + 0x74], 0xe
jbe 0x41f9d2
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x432150
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x43217d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x43217d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x10011be
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x174
mov eax, dword [0x1002018]
push 0x104
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x174], ecx
push 1
lea ecx, [ebp - 0x174]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ecx
push eax
call fcn.01001149
cmp eax, 1
jl 0x100129e
push ebx
xor ebx, ebx
cmp byte [ebp - 0x160], bl
push esi
lea esi, [ebp - 0x160]
je 0x1001238
cmp byte [esi], 0x3a
je 0x100121b
inc esi
cmp byte [esi], bl
jne 0x100120f
jmp 0x100121e
mov byte [esi], bl
inc esi
cmp byte [esi], bl
je 0x1001238
push 0x10010ac
lea eax, [ebp - 0x160]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100123e
lea esi, [ebp - 0x160]
push 0x29
lea eax, [ebp - 0x58]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push esi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x100129c
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x100129c
push ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
jl 0x100129c
push ebx
lea eax, [ebp - 0x170]
push eax
call sub.ole32.dll_CoRegisterSurrogateEx
call dword [sym.imp.ole32.dll_CoUninitialize]
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor eax, eax
call fcn.01001324
leave
ret 0x10
Function at 0x401cc0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov dword [esp], 0x409048
call sym._EnterCriticalSection_4
mov ebx, dword [0x409040]
sub esp, 4
test ebx, ebx
je 0x401d0b
nop
mov eax, dword [ebx]
mov dword [esp], eax
call sym._TlsGetValue_4
sub esp, 4
mov esi, eax
call sym._GetLastError_0
test eax, eax
jne 0x401d04
test esi, esi
je 0x401d04
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x401ce0
mov dword [esp], 0x409048
call sym._LeaveCriticalSection_4
sub esp, 4
add esp, 0x14
pop ebx
pop esi
ret

Function at 0x401ef0
Capabilities:
Write file on windows

Disassembly:
push esi
push ebx
sub esp, 0x14
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
lea esi, [esp + 0x24]
mov dword [esp], str.Mingw_runtime_failure:_n
lea ebx, [eax + 0x40]
mov dword [esp + 0xc], ebx
call sym._fwrite
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._vfprintf
call sym._abort
lea esi, [esi]

Function at 0x401f40
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, eax
mov esi, edx
sub esp, 0x4c
lea eax, [esp + 0x24]
mov dword [esp + 8], 0x1c
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x402018
mov eax, dword [esp + 0x38]
cmp eax, 0x40
je 0x401f7e
cmp eax, 4
jne 0x401fa0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memcpy
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
lea ebp, [esp + 0x20]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
call sym._memcpy
mov edx, dword [esp + 0x1c]
cmp edx, 0x40
je 0x401f8e
cmp edx, 4
je 0x401f8e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1c
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
call fcn.00401ef0
Function at 0x401000
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x421004]
jne 0x40100a
repz ret
jmp fcn.0040133d

Function at 0x40403b
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x421004]
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.0040270a
and dword [ebp - 0x14], 0
cmp dword [0x423ad4], 0
mov dword [ebp - 0x18], eax
jne 0x4040ee
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x404196
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x404196
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x423ad4], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x423ad8], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x423adc], eax
call edi
push eax
call esi
mov dword [0x423ae4], eax
test eax, eax
je 0x4040ee
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x423ae0], eax
mov eax, dword [0x423ae0]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x404147
cmp dword [0x423ae4], ecx
je 0x404147
push eax
call esi
push dword [0x423ae4]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x404147
test ebx, ebx
je 0x404147
call edi
test eax, eax
je 0x40413e
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40413e
test byte [ebp - 8], 1
jne 0x404147
or dword [ebp + 0x10], 0x200000
jmp 0x40417a
mov eax, dword [0x423ad8]
cmp eax, dword [ebp - 0x18]
je 0x40417a
push eax
call esi
test eax, eax
je 0x40417a
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40417a
mov eax, dword [0x423adc]
cmp eax, dword [ebp - 0x18]
je 0x40417a
push eax
call esi
test eax, eax
je 0x40417a
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x423ad4]
call esi
test eax, eax
je 0x404196
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x404198
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401000
leave
ret

Function at 0x409cd0
Capabilities:
Create pipe

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x421f60]
sub esp, 0x10
push ebx
mov ebx, dword [0x1ef5ca0]
push edi
mov edi, dword [0x1ef5f7c]
push eax
call fcn.00409be0
add esp, 4
cmp dword [0x1ef5f7c], 0x2f
jne 0x409d2d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x10]
push edx
mov dword [ebp - 8], 0
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
call fcn.00409c30
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409f90
Capabilities:
Get file size

Disassembly:
mov eax, dword [0x1ef5f7c]
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetFileSize]
xor esi, esi
nop
cmp eax, 0x8cf
jne 0x409fb2
push 0
push 0
call edi
mov eax, dword [0x1ef5f7c]
cmp esi, 0x845013
jne 0x409fc9
mov eax, dword [0x422d80]
add eax, 0xa231
mov dword [0x1ef5f7c], eax
cmp eax, 0x141
jne 0x409fe4
mov dword [0x424018], 0xec58acac
mov dword [0x42401c], 0xffffffff
inc esi
cmp esi, 0xbbe2a98
jl 0x409fa0
call fcn.00409d40
pop edi
xor eax, eax
pop esi
ret 0x10
Function at 0x40b4e5
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.004041e5
sub ebx, ebx
cmp dword [0x434898], ebx
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
jne 0x40b5ba
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
pop edi
cmp edi, ebx
jne 0x40b525
sub eax, eax
jmp 0x40b67e
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
cmp eax, ebx
je 0x40b51e
push eax
call fcn.00404182
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x434898], eax
call esi
push eax
call fcn.00404182
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x43489c], eax
call esi
push eax
call fcn.00404182
mov dword [0x4348a0], eax
lea eax, [ebp - 8]
push eax
call fcn.004067af
test eax, eax
pop ecx
pop ecx
je 0x40b588
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00403c3f
add esp, 0x14
cmp dword [ebp - 8], 2
jne 0x40b5ba
push str.GetUserObjectInformationA
push edi
call esi
push eax
call fcn.00404182
cmp eax, ebx
pop ecx
mov dword [0x4348a8], eax
je 0x40b5ba
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00404182
pop ecx
mov dword [0x4348a4], eax
mov eax, dword [0x4348a4]
mov esi, dword [ebp - 0x10]
cmp eax, esi
je 0x40b633
cmp dword [0x4348a8], esi
je 0x40b633
push eax
call fcn.004041ee
pop ecx
call eax
cmp eax, ebx
je 0x40b600
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
push dword [0x4348a8]
call fcn.004041ee
pop ecx
call eax
test eax, eax
je 0x40b600
test byte [ebp - 0x18], 1
jne 0x40b633
lea eax, [ebp - 0xc]
push eax
call fcn.004067e6
test eax, eax
pop ecx
je 0x40b61b
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00403c3f
add esp, 0x14
cmp dword [ebp - 0xc], 4
jb 0x40b62a
or dword [ebp + 0x10], 0x200000
jmp 0x40b664
or dword [ebp + 0x10], 0x40000
jmp 0x40b664
mov eax, dword [0x43489c]
cmp eax, esi
je 0x40b664
push eax
call fcn.004041ee
pop ecx
call eax
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x40b664
mov eax, dword [0x4348a0]
cmp eax, esi
je 0x40b664
push dword [ebp - 4]
push eax
call fcn.004041ee
pop ecx
call eax
mov dword [ebp - 4], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
push dword [0x434898]
call fcn.004041ee
pop ecx
call eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x401c3a
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x401c79
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x401c79
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x401c79
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x401c79
cmp dword [ecx + 0x74], 0xe
jbe 0x401c79
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x3ad7258d
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x3ad7a064]
jne 0x3ad72597
repz ret
jmp fcn.3ad73d0c
Function at 0x4023ff
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
push edi
xor esi, esi
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x40242c
xor eax, eax
jmp 0x40247a
push ebx
lea eax, [ebp - 8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
push esi
push esi
push 2
push esi
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], eax
call edi
cmp dword [ebp - 4], 0xffffffff
jne 0x40245d
xor eax, eax
jmp 0x402479
push esi
push esi
push esi
push 4
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push dword [ebp - 4]
mov esi, eax
call edi
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov eax, esi
pop ebx
pop edi
pop esi
leave
ret

Function at 0x4024ca
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x94]
sub esp, 0x114
mov eax, dword [0x42f180]
xor eax, ebp
mov dword [ebp + 0x90], eax
mov eax, dword [ebp + 0x9c]
mov dword [ebp - 0x78], ecx
lea ecx, [edx + eax - 0x16]
sub eax, dword [ecx + 0x10]
push esi
sub eax, dword [ecx + 0xc]
push edi
mov edi, dword [ebp + 0xa0]
sub eax, 0x22
lea esi, [edx + eax]
xor edx, edx
mov dword [edi], edx
mov dword [ebx], edx
cmp dword [ecx], 0x6054b50
mov dword [ebp - 0x80], edi
jne 0x40260f
cmp dword [esi], 0x1234567b
je 0x402534
push edx
mov edi, str.Invalid_cfgdata_magic_number__see_bdist_wininst.py_
call fcn.00402209
pop ecx
jmp 0x402611
cmp eax, edx
jl 0x40260f
mov ecx, dword [esi + 8]
cmp ecx, edx
je 0x402550
mov edx, esi
sub edx, dword [esi + 4]
sub edx, ecx
mov dword [0x431560], edx
sub eax, dword [esi + 4]
mov ecx, dword [ebp - 0x78]
sub eax, dword [esi + 8]
mov edi, esi
mov dword [ecx], eax
sub edi, dword [esi + 4]
push 0x104
call fcn.00408087
pop ecx
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x40260f
lea eax, [ebp - 0x74]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x4025fd
push dword [ebp - 0x7c]
lea eax, [ebp - 0x74]
push 0
push 0x4259a8
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
je 0x4025fd
xor eax, eax
push eax
push eax
push eax
push dword [esi + 4]
push eax
push dword [ebp - 0x7c]
push 2
call fcn.004010aa
add esp, 0x1c
mov dword [ebp - 0x78], eax
test eax, eax
je 0x40260f
push dword [esi + 4]
push edi
push eax
call fcn.00408be0
mov eax, dword [ebp - 0x78]
add esp, 0xc
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4025d1
sub eax, esi
lea eax, [eax + edi + 1]
push eax
call fcn.0041da36
pop ecx
mov ecx, dword [ebp - 0x80]
push dword [ebp - 0x78]
mov dword [ecx], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebx], eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
xor eax, eax
inc eax
jmp 0x402611
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edi, str.Could_not_create_temporary_file
call fcn.00402209
pop ecx
xor eax, eax
mov ecx, dword [ebp + 0x90]
pop edi
xor ecx, ebp
pop esi
call fcn.00407875
add ebp, 0x94
leave
ret
Function at 0x30f01ee0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push edi
mov edi, dword [esp + 0x10]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x30f01ef9
pop edi
pop ebx
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
jne 0x30f01f0d
pop esi
pop edi
xor eax, eax
pop ebx
ret
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [esp + 0x18]
add eax, esi
and ecx, 0xf
jbe 0x30f01f2e
cmp esi, eax
jae 0x30f01f07
dec ecx
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x30f01f20
cmp esi, eax
jae 0x30f01f07
mov ax, word [esi]
neg ax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebx
ret

Function at 0x30f02038
Capabilities:
Access peb ldr_data

Disassembly:
push edi
push ebx
push ebp
sub esp, 0x1f4
mov eax, dword fs:[0x30]
mov dword [esp + 0x1f0], esi
mov edi, dword [eax + 0xc]
add edi, 0xc

Function at 0x30f09d00
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x30f26828
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
mov dword [esp + 4], esi
mov dword [esi], 0x30f29d60
mov dword [esi + 4], 0x30f29d28
mov dword [esi + 0xc], 0x30f29d08
mov dword [esi + 0x10], 0x30f29cf4
mov dword [esi + 0x28], 0x30f29cc8
mov dword [esi + 0x2c], 0x30f29cb4
mov dword [esi + 0x30], 0x30f29c94
mov eax, dword [esi + 0x48]
test eax, eax
mov dword [esp + 0x14], 0
je 0x30f09d64
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x44]
test eax, eax
je 0x30f09d71
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax]
push edi
lea edi, [esi + 0x38]
push eax
push ecx
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.30f08d60
mov eax, dword [edi + 4]
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [esi], 0x30f29850
mov dword [esi + 4], 0x30f29818
mov dword [esi + 0xc], 0x30f297f8
mov dword [esi + 0x10], 0x30f297e4
mov esi, dword [esi + 0x1c]
add esp, 4
test esi, esi
mov dword [esp + 0x18], 0xffffffff
pop edi
je 0x30f09dd3
mov ecx, dword [esi]
push esi
call dword [ecx + 8]
mov ecx, dword [esp + 0xc]
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret
Function at 0x30f09e40
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x30f26848
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0xc], esi
call fcn.30f061f0
mov byte [esi + 0x34], 1
xor ebx, ebx
lea edi, [esi + 0x38]
mov ecx, edi
mov dword [esp + 0x18], ebx
mov dword [esi], 0x30f29d60
mov dword [esi + 4], 0x30f29d28
mov dword [esi + 0xc], 0x30f29d08
mov dword [esi + 0x10], 0x30f29cf4
mov dword [esi + 0x28], 0x30f29cc8
mov dword [esi + 0x2c], 0x30f29cb4
mov dword [esi + 0x30], 0x30f29c94
call fcn.30f146b0
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x10]
mov byte [eax + 0x15], 1
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov dword [edi + 8], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], ebx
mov eax, dword [esi + 0x3c]
mov byte [esi + 0x4c], bl
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ebx
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret

Function at 0x30f0d880
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x30f26bee
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0xc], esi
call fcn.30f061f0
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov byte [esi + 0x30], 1
mov dword [esi + 0x2c], 0x30f29ae4
mov dword [esi], 0x30f29f6c
mov dword [esi + 4], 0x30f29f34
mov dword [esi + 0xc], 0x30f29f14
mov dword [esi + 0x10], 0x30f29f00
mov dword [esi + 0x28], 0x30f29ed8
mov dword [esi + 0x2c], 0x30f29e9c
mov dword [esi + 0x38], ebp
mov dword [esi + 0x3c], ebp
mov dword [esi + 0x40], ebp
lea edi, [esi + 0x44]
mov ecx, edi
mov byte [esp + 0x18], 2
call fcn.30f1aa70
mov ecx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov byte [eax + 0x29], 1
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov dword [edi + 8], ebp
pop edi
mov eax, esi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x10
ret