joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1e7a5180
Capabilities:
Inspect section memory permissions

Disassembly:
inc eax
add al, 0xeb
test eax, 0xeb0c5d89
push es
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x1e7a51a7
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x1e7a51c5
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
add byte [eax], al
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x1e7a5223
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x1e7a520a
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x1e7a5213
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x1e7a521d
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x1e7a51ff
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x1e7a5189
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x1e7a5270
dec eax
je 0x1e7a5267
sub eax, 3
je 0x1e7a525e
mov dword [ebp - 4], 0x40
jmp 0x1e7a528d
mov dword [ebp - 4], 4
jmp 0x1e7a5273
mov dword [ebp - 4], 0x20
jmp 0x1e7a5273
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x1e7a52bf
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x1e7a523f
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call sym.pywintypes27.dll_public:_int___thiscall_PyIID::IsEqual_struct__GUID_const__
xchg ebx, eax
hlt
invalid
Function at 0x1e7a51c0
Capabilities:
Inspect section memory permissions

Disassembly:
inc eax
add al, 0xeb
test eax, 0xeb0c5d89
push es
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x1e7a51a7
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x1e7a51c5
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
add byte [eax], al
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x1e7a5223
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x1e7a520a
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x1e7a5213
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x1e7a521d
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x1e7a51ff
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x1e7a5189
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x1e7a5270
dec eax
je 0x1e7a5267
sub eax, 3
je 0x1e7a525e
mov dword [ebp - 4], 0x40
jmp 0x1e7a528d
mov dword [ebp - 4], 4
jmp 0x1e7a5273
mov dword [ebp - 4], 0x20
jmp 0x1e7a5273
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x1e7a52bf
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x1e7a523f
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call sym.pywintypes27.dll_public:_int___thiscall_PyIID::IsEqual_struct__GUID_const__
xchg ebx, eax
hlt
invalid
Function at 0x1e7a5210
Capabilities:
Inspect section memory permissions

Disassembly:
inc eax
add al, 0xeb
test eax, 0xeb0c5d89
push es
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x1e7a51a7
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x1e7a51c5
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
add byte [eax], al
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x1e7a5223
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x1e7a520a
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x1e7a5213
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x1e7a521d
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x1e7a51ff
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x1e7a5189
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x1e7a5270
dec eax
je 0x1e7a5267
sub eax, 3
je 0x1e7a525e
mov dword [ebp - 4], 0x40
jmp 0x1e7a528d
mov dword [ebp - 4], 4
jmp 0x1e7a5273
mov dword [ebp - 4], 0x20
jmp 0x1e7a5273
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x1e7a52bf
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x1e7a523f
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call sym.pywintypes27.dll_public:_int___thiscall_PyIID::IsEqual_struct__GUID_const__
xchg ebx, eax
hlt
invalid
Function at 0x1e7a7500
Capabilities:
Compare security identifiers

Disassembly:
mov eax, dword [esp + 4]
cmp dword [eax + 4], 0x1e7ba2c0
je 0x1e7a751c
mov eax, dword [sym.imp.python27.dll__Py_NotImplementedStruct]
inc dword [eax]
mov eax, dword [sym.imp.python27.dll__Py_NotImplementedStruct]
ret 8
mov eax, dword [eax + 8]
mov ecx, dword [ecx + 8]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_EqualSid]
mov ecx, dword [esp + 8]
cmp ecx, 2
jne 0x1e7a7541
test eax, eax
je 0x1e7a754a
mov eax, dword [sym.imp.python27.dll__Py_TrueStruct]
inc dword [eax]
ret 8
cmp ecx, 3
jne 0x1e7a7554
test eax, eax
je 0x1e7a7537
mov eax, dword [sym.imp.python27.dll__Py_ZeroStruct]
inc dword [eax]
ret 8
mov eax, dword [sym.imp.python27.dll__Py_NotImplementedStruct]
inc dword [eax]
ret 8

Function at 0x1e7a9c90
Capabilities:
Set thread local storage value

Disassembly:
cmp dword [sym.pywintypes27.dll_struct__is__PyWin_InterpreterState], 0
push ebx
mov ebx, dword [sym.imp.python27.dll_Py_FatalError]
push esi
push edi
mov edi, dword [sym.imp.python27.dll_PyThreadState_Swap]
jne 0x1e7a9ccd
push 0
call edi
mov esi, eax
add esp, 4
test esi, esi
jne 0x1e7a9cbf
push str.pywintypes:_can_not_setup_interpreter_state__as_current_state_is_invalid
call ebx
add esp, 4
mov eax, dword [esi + 4]
push esi
mov dword [sym.pywintypes27.dll_struct__is__PyWin_InterpreterState], eax
call edi
add esp, 4
push 8
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x1e7a9ce7
push 0x1e7b10fc
call ebx
add esp, 4
mov ecx, dword [0x1e7ba8b8]
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push 0
call edi
push eax
mov dword [esi], eax
call edi
add esp, 8
pop edi
mov dword [esi + 4], 0
pop esi
pop ebx
ret

Function at 0x1e7a9d10
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov eax, dword [0x1e7ba8b8]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
jne 0x1e7a9d7f
push esi
push edi
mov edi, dword [sym.imp.python27.dll_Py_FatalError]
cmp dword [sym.pywintypes27.dll_struct__is__PyWin_InterpreterState], eax
jne 0x1e7a9d3a
push str.Can_not_setup_thread_state__as_have_no_interpreter_state
call edi
add esp, 4
push 8
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
test esi, esi
jne 0x1e7a9d54
push str.Out_of_memory_allocating_thread_state.
call edi
add esp, 4
mov ecx, dword [0x1e7ba8b8]
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov edx, dword [sym.pywintypes27.dll_struct__is__PyWin_InterpreterState]
push edx
call dword [sym.imp.python27.dll_PyThreadState_New]
add esp, 4
mov dword [esi], eax
mov eax, 1
pop edi
mov dword [esi + 4], eax
pop esi
ret
xor eax, eax
ret
Function at 0x1e7ab3a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov eax, dword [0x1e7ba8b8]
push esi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
xor edi, edi
cmp esi, edi
je 0x1e7ab3dc
cmp dword [esi + 4], edi
je 0x1e7ab3dc
mov ecx, dword [esi]
push ecx
call dword [sym.imp.python27.dll_PyThreadState_Delete]
mov edx, dword [0x1e7ba8b8]
add esp, 4
push edi
push edx
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [sym.pywintypes27.dll_struct__object__PyWinExc_ApiError]
mov dword [sym.pywintypes27.dll_struct__is__PyWin_InterpreterState], edi
cmp eax, edi
je 0x1e7ab402
dec dword [eax]
mov eax, dword [sym.pywintypes27.dll_struct__object__PyWinExc_ApiError]
cmp dword [eax], edi
jne 0x1e7ab402
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x18]
push eax
call edx
add esp, 4
mov eax, dword [sym.pywintypes27.dll_struct__object__PyWinExc_COMError]
mov dword [sym.pywintypes27.dll_struct__object__PyWinExc_ApiError], edi
cmp eax, edi
je 0x1e7ab428
dec dword [eax]
mov eax, dword [sym.pywintypes27.dll_struct__object__PyWinExc_COMError]
cmp dword [eax], edi
jne 0x1e7ab428
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x18]
push eax
call edx
add esp, 4
mov dword [sym.pywintypes27.dll_struct__object__PyWinExc_COMError], edi
pop edi
pop esi
ret

Function at 0x431000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40915c
nop
nop
mov ecx, 0x21db1a92
nop
nop
nop
nop
test eax, eax
je 0x43104e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x431024
nop
nop
nop
nop
mov eax, section..data
mov ebx, 0x42f3f8
nop
nop
mov ecx, 0x7db82490
nop
nop
test eax, eax
nop
nop
je 0x431084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43106c
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x401219

Function at 0x438ca7
Capabilities:
Encode data using xor

Disassembly:
mov ebx, 0x438a14
sub esp, 4
mov dword [esp], 0x79682823
pop ecx
call fcn.00438ce7
and ecx, ecx
xor dword [edi], ebx
sub ecx, 0x90cb889c
dec ecx
and ecx, edx
add edi, 1
sub edx, 0xfb7abbdf
cmp edi, eax
jne fcn.00438ca7
add ecx, 0x6edf1b13
ret

Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
nop
pop eax
nop
add eax, 0x403daa
nop
nop
sub eax, 0x403d50
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x430030
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
jne 0x43001e
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x432003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
mov eax, section..reloc
nop
nop
nop
nop
push 4
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
je 0x432072
nop
nop
nop
nop
mov ebx, 0x40c7d0
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
push eax
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
div edi
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x55fd6f00
nop
nop
nop
xor dword [eax], esi
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x432060
nop
nop
nop
nop
mov eax, section..data
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
je 0x4320d2
nop
mov ebx, 0x42f314
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
mov esi, 0x11bb6519
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x4320c0
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x4012f0
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0xffffffff
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0
mov dword [ebp - 8], 0x400
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov edx, dword [ebp - 8]
shl edx, 2
push edx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 4]
add edx, 4
push edx
mov eax, dword [ebp - 8]
shl eax, 2
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
push edx
call sub.PSAPI.DLL_EnumProcesses
test eax, eax
je 0x40137b
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
shr ecx, 2
mov edx, dword [ebp - 4]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 8], 1
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
cmp edx, dword [ecx + 4]
jbe 0x401317
mov ecx, dword [ebp - 4]
call fcn.004013a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x401470
Capabilities:
Enumerate process modules

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xc], 0xffffffff
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x401521
mov dword [ebp - 8], 0x400
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 4]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [ebp - 8]
shl ecx, 2
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
mov edx, dword [ebp - 8]
shl edx, 2
push edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
call sub.PSAPI.DLL_EnumProcessModules
test eax, eax
je 0x401516
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
shr edx, 2
mov eax, dword [ebp - 4]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
cmp eax, dword [edx + 8]
jbe 0x4014a9
mov ecx, dword [ebp - 4]
call fcn.00401530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x401e80
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x403a69
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
call fcn.004020b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.004026f0
test eax, eax
jle 0x401f93
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x64
call fcn.0040357e
push 0
push 0
push 0
push 0
mov edx, dword [ebp - 0x10]
push edx
push 0x402650
call sub.MFC42.DLL_AfxBeginThread
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x10]
call fcn.004024b0
mov dword [ebp - 0x5c], 0
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x58]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x5c], 0x44
mov dword [ebp - 0x6c], 0
xor eax, eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x6c]
push ecx
lea edx, [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0x70
call fcn.00402760
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x14]
call fcn.00402760
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov eax, dword [ebp - 0x6c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x60]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 0x60]
call fcn.00402b10
mov edx, dword [ebp - 0x10]
cmp dword [edx + 0x68], 0
je 0x401f91
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x68]
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.004024f0
jmp 0x401fa1
push 0
push 0
push 0x404648
call sub.MFC42.DLL_AfxMessageBox
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004034a0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x401fd0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x403a89
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
lea ecx, [ebp + 8]
call fcn.00402760
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.004034a0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x4015f3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x401625
test dl, 7
je 0x401625
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x431d70]
inc edx
mov dword [ebp + 0xc], edx
sub esi, 1
jne 0x401605
cmp esi, 8
jb 0x4016b5
push edi
mov edi, esi
shr edi, 3
xor ebx, dword [edx]
sub esi, 8
mov edx, dword [edx + 4]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
movzx eax, al
mov ecx, dword [ecx*4 + 0x431d70]
xor ecx, dword [eax*4 + 0x432170]
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x432570]
mov eax, ebx
shr eax, 0x18
xor ecx, dword [eax*4 + 0x432d70]
mov eax, ebx
shr eax, 0x10
movzx eax, al
xor ecx, dword [eax*4 + 0x433170]
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x433570]
movzx eax, dl
mov edx, dword [ebp + 0xc]
add edx, 8
mov dword [ebp + 0xc], edx
xor ecx, dword [eax*4 + 0x432970]
movzx eax, bl
xor ecx, dword [eax*4 + 0x433970]
mov ebx, ecx
sub edi, 1
jne 0x401634
pop edi
test esi, esi
je 0x4016d1
movzx ecx, byte [edx]
movzx eax, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x431d70]
inc edx
sub esi, 1
jne 0x4016b9
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 0xc

Function at 0x401cfe
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
push edi
cmp dword [esi + 0xc], 1
jne 0x401d17
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi + 4], eax
push 0
lea eax, [ebp - 4]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x401d8a
mov ecx, esi
call fcn.00401e0d
test al, al
je 0x401d52
mov eax, 0x4e20
cmp dword [ebp + 0xc], eax
jbe 0x401d52
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.00401cfe
jmp 0x401d8d
cmp dword [esi + 0xc], 1
jne 0x401d67
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
jne 0x401d67
xor eax, eax
jmp 0x401d8d
cmp dword [esi + 0xc], 0
jne 0x401d85
mov edi, 0x8000
cmp dword [ebp + 0xc], edi
jbe 0x401d85
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x21
jne 0x401d85
push edi
jmp 0x401d46
or eax, 0xffffffff
jmp 0x401d8d
mov eax, dword [ebp - 4]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
Function at 0x401e40
Capabilities:
Check if file exists

Disassembly:
mov eax, 0x1054
call fcn.00413370
push ebx
mov ebx, dword [esp + 0x1060]
push ebp
push edi
mov edi, ecx
and dword [edi + 0x1020], 0
cmp byte [edi + 0x1d], 0
jne 0x401e6c
test bl, 4
jne 0x401e6c
xor cl, cl
jmp 0x401e6e
mov cl, 1
mov eax, ebx
shr eax, 1
push esi
and al, 1
movzx esi, al
neg esi
sbb esi, esi
and esi, 0xc0000000
add esi, 0x80000000
test bl, 1
je 0x401e93
or esi, 0x40000000
shr ebx, 3
not ebx
and ebx, 1
test cl, cl
je 0x401ea2
or ebx, 2
xor eax, eax
lea ecx, [esp + 0x1c]
cmp byte [edi + 0x15], al
setne al
dec eax
and eax, 0x8000000
mov dword [esp + 0x10], eax
call fcn.00401ad9
cmp byte [edi + 0x1c], 0
je 0x401ec9
or esi, 0x100
push 0
push dword [esp + 0x14]
push 3
push 0
push ebx
push esi
push dword [esp + 0x1080]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x401f4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
push 0x800
push eax
push dword [esp + 0x1070]
call fcn.00403399
test al, al
je 0x401f3a
push 0
push dword [esp + 0x14]
lea eax, [esp + 0x24]
push 3
push 0
push ebx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x401f35
mov dword [esp + 0x14], eax
cmp ebp, 0xffffffff
jne 0x401f4b
cmp dword [esp + 0x14], 2
jne 0x401f4b
mov dword [edi + 0x1020], 1
cmp byte [edi + 0x1c], 0
pop esi
je 0x401f71
cmp ebp, 0xffffffff
je 0x401f71
or dword [esp + 0x10], 0xffffffff
lea eax, [esp + 0x10]
or dword [esp + 0x14], 0xffffffff
push 0
push eax
push 0
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
xor eax, eax
cmp ebp, 0xffffffff
mov byte [edi + 0x12], al
setne bl
mov dword [edi + 0xc], eax
mov byte [edi + 0x10], al
cmp ebp, 0xffffffff
je 0x401f9f
push 0x800
push dword [esp + 0x1068]
lea ecx, [edi + 0x1e]
mov dword [edi + 4], ebp
push ecx
call fcn.0040674f
pop edi
pop ebp
mov al, bl
pop ebx
add esp, 0x1054
ret 8