joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46ef6f
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push 0x44
push 0
mov ebx, 0x4c4ee0
push ebx
call fcn.004225e0
push 0x10
push 0
mov esi, 0x4c4f24
push esi
call fcn.004225e0
add esp, 0x18
xor eax, eax
push esi
push ebx
inc eax
mov dword [0x4c4f0c], eax
mov word [0x4c4f10], ax
xor eax, eax
push eax
push eax
push 0x20
push eax
push eax
push eax
push dword [ebp + 8]
mov dword [0x4c4ee0], 0x44
push eax
call dword [sym.imp.KERNEL32.DLL_CreateProcessW]
pop esi
pop ebx
test eax, eax
je 0x46efd4
push dword [0x4c4f24]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
pop ebp
ret 4

Function at 0x46efd8
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov edx, dword [ebx + 4]
push edi
push 3
mov edi, ecx
mov dword [ebp + 8], edx
pop esi
cmp dword [ebx + 0x190], eax
je 0x46f08e
cmp dword [edi + 0x84], esi
jl 0x46f088
mov eax, dword [edi + 0x74]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
test ecx, ecx
je 0x46f079
cmp dword [ecx + 4], edx
jne 0x46f079
mov dl, byte [ecx + 0x90]
cmp dl, 0xb
je 0x46f076
mov dh, byte [ecx + 0x93]
movzx eax, dh
cmp eax, dword [ebx + 0x190]
je 0x46f048
cmp byte [ebx + 0x198], 0
je 0x46f076
cmp dh, 0xff
je 0x46f076
cmp dl, 0xa
je 0x46f076
push 0
push dword [ecx]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [edi + 0x74]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
test byte [eax + 0x92], 0x40
je 0x46f076
cmp byte [eax + 0x90], 0x1a
jne 0x46f076
push 0
push dword [eax]
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [ebp + 8]
inc esi
cmp esi, dword [edi + 0x84]
jle 0x46f008
mov eax, dword [ebp + 0xc]
push 3
pop esi
mov dword [ebx + 0x190], eax
cmp dword [edi + 0x84], esi
jl 0x46f11b
mov eax, dword [edi + 0x74]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax]
test ecx, ecx
je 0x46f10c
cmp dword [ecx + 4], edx
jne 0x46f10c
cmp byte [ecx + 0x90], 0xb
je 0x46f10c
movzx eax, byte [ecx + 0x93]
cmp eax, dword [ebx + 0x190]
jne 0x46f10c
test byte [ecx + 0x92], 0x20
jne 0x46f10c
push 0
push dword [ecx]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [edi + 0x74]
push 4
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
push dword [eax]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [edi + 0x74]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
test byte [eax + 0x92], 0x40
je 0x46f10c
cmp byte [eax + 0x90], 0x1a
jne 0x46f10c
push 1
push dword [eax]
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [ebp + 8]
inc esi
cmp esi, dword [edi + 0x84]
jle 0x46f09a
mov eax, dword [ebp + 0xc]
push 0
push eax
push 0x130c
push dword [ebx + 0x188]
call dword [sym.imp.USER32.dll_SendMessageW]
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x46f372
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x24
push ebx
push esi
push edi
xor edi, edi
cmp word [eax], di
je 0x46f48c
push edi
push edi
push 3
push edi
push edi
push SysAllocStringLen
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x46f3a9
xor eax, eax
jmp 0x46f4bb
push 0
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov esi, eax
push esi
push 2
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x46f3cc
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x46f3a2
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalLock]
push 0
lea ecx, [ebp - 0xc]
push ecx
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_GlobalUnlock]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
test esi, esi
je 0x46f3a2
lea eax, [ebp - 8]
push eax
push 1
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
lea eax, [ebp - 4]
push eax
push 0x48e9bc
xor edi, edi
push edi
push edi
push dword [ebp - 8]
mov dword [ebp - 4], edi
call dword [sym.imp.OLEAUT32.dll_OleCreatePictureIndirect]
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x46f3a2
mov eax, dword [ecx]
lea edx, [ebp + 0xc]
push edx
push ecx
call dword [eax + 0xc]
lea eax, [ebp - 0x24]
push eax
push 0x18
push dword [ebp + 0xc]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
cmp dword [edx], edi
jne 0x46f468
cmp dword [ecx], edi
jne 0x46f468
mov eax, dword [ebp - 0x20]
mov dword [edx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx], eax
push 0x2000
push dword [ecx]
push dword [edx]
push edi
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_CopyImage]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 0xc]
jmp 0x46f491
mov eax, edi
mov dword [ebp + 0xc], eax
mov esi, dword [ebp + 8]
cmp dword [esi + 0x64], 0
je 0x46f4a6
push dword [esi + 0x64]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp + 0xc]
push eax
push edi
mov dword [esi + 0x64], eax
mov esi, dword [esi]
push 0x172
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x46fdd9
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, 0x4c2810
push edi
mov ecx, esi
call fcn.0041d166
mov ecx, dword [0x4c2870]
mov eax, dword [ecx + eax*4]
mov ebx, dword [eax]
cmp dword [ebp + 0xc], edi
jne 0x46fe30
xor esi, esi
cmp dword [ebx + 0x1a0], esi
je 0x46fe94
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push esi
push edi
push dword [ebp - 4]
push dword [ebp - 8]
push esi
push dword [ebx + 0x1a0]
call dword [sym.imp.USER32.dll_TrackPopupMenuEx]
jmp 0x46feae
push dword [ebp + 0xc]
mov ecx, esi
call fcn.0041cf00
mov dword [ebp + 8], eax
cmp eax, 0xffffffff
je 0x46fe94
mov ecx, dword [0x4c2884]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
mov cl, byte [eax + 0x90]
cmp cl, 0xe
je 0x46fe94
cmp cl, 0xf
je 0x46fe94
cmp cl, 0x13
je 0x46fe94
cmp cl, 0x10
je 0x46fe94
xor esi, esi
cmp dword [eax + 0xc], esi
je 0x46fe94
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [0x4c2884]
mov ecx, dword [ebp + 8]
push esi
push dword [ebx]
mov eax, dword [eax + ecx*4]
push dword [ebp - 4]
mov eax, dword [eax]
push dword [ebp - 8]
push esi
push dword [eax + 0xc]
jmp 0x46fe28
movzx ecx, word [ebp + 0x14]
movzx eax, word [ebp + 0x10]
shl ecx, 0x10
or ecx, eax
push ecx
push dword [ebp + 0xc]
push 0x7b
push edi
call dword [sym.imp.USER32.dll_DefDlgProcW]
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x404b03
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x404b3e
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x404b25
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x404b36
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x404b40
inc edi
add eax, 0x28
cmp edi, esi
jb 0x404b1b
xor eax, eax
pop edi
pop esi
ret

Function at 0x407630
Capabilities:
Accept command line arguments

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x4160d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
cmp eax, 1
jne 0x407731
lea eax, [ebp - 0x98]
push eax
mov dword [ebp - 0x98], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x407675
xor eax, eax
jmp 0x4077cc
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x88]
and eax, 0x7fff
cmp ecx, 2
je 0x407690
or eax, 0x8000
mov edx, dword [ebp - 0x90]
mov dword [0x417260], ecx
mov ecx, dword [ebp - 0x94]
mov esi, ecx
shl esi, 8
add esi, edx
push 1
mov dword [0x417268], esi
mov dword [0x41726c], ecx
mov dword [0x417270], edx
mov dword [0x417264], eax
call fcn.0040ab3f
pop ecx
test eax, eax
je 0x40766e
call fcn.0040a17a
test eax, eax
jne 0x4076dc
call fcn.0040aba4
jmp 0x40766e
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x418e5c], eax
call fcn.0040a9a1
mov dword [0x417248], eax
call fcn.0040a2f9
test eax, eax
jge 0x407701
call fcn.00409e08
jmp 0x4076d5
call fcn.0040a8ad
test eax, eax
jl 0x40772a
call fcn.0040a58b
test eax, eax
jl 0x40772a
push 0
call fcn.00409af7
pop ecx
test eax, eax
jne 0x40772a
inc dword [0x417240]
jmp 0x4077c9
call fcn.0040a538
jmp 0x4076fa
xor edi, edi
cmp eax, edi
jne 0x40776c
cmp dword [0x417240], edi
jle 0x40766e
dec dword [0x417240]
cmp dword [0x41729c], edi
jne 0x407756
call fcn.00409c72
cmp dword [ebp + 0x10], edi
jne 0x4077c9
call fcn.0040a538
call fcn.00409e08
call fcn.0040aba4
jmp 0x4077c9
cmp eax, 2
jne 0x4077bd
call fcn.00409dd9
push 0x214
push 1
call fcn.00409222
mov esi, eax
pop ecx
pop ecx
cmp esi, edi
je 0x40766e
push esi
push dword [0x416170]
push dword [0x4172ac]
call fcn.00409d53
pop ecx
call eax
test eax, eax
je 0x4077b1
push edi
push esi
call fcn.00409e4a
pop ecx
jmp 0x4077c8
push esi
call fcn.00408ab7
pop ecx
jmp 0x40766e
cmp eax, 3
jne 0x4077c9
push edi
call fcn.0040a107
pop ecx
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00407fb3
leave
ret 0xc
Function at 0x401cc0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov dword [esp], 0x408048
call sym._EnterCriticalSection_4
mov ebx, dword [0x408040]
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], 0x408048
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
lea esi, [esp + 0x24]
lea ebx, [eax + 0x40]
mov dword [esp + 4], 1
mov dword [esp + 0xc], ebx
mov dword [esp], str.Mingw_runtime_failure:_n
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, edx
push esi
mov esi, ecx
push ebx
mov ebx, eax
sub esp, 0x3c
lea eax, [esp + 0x14]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x402014
mov eax, dword [esp + 0x28]
cmp eax, 0x40
je 0x401f7e
cmp eax, 4
jne 0x401fa0
test esi, esi
je 0x401f92
xor eax, eax
movzx ecx, byte [edi + eax]
mov byte [ebx + eax], cl
add eax, 1
cmp eax, esi
jb 0x401f84
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x20]
lea ebp, [esp + 0x10]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov ecx, dword [esp + 0x28]
test esi, esi
je 0x401fdf
xor edx, edx
movzx eax, byte [edi + edx]
mov byte [ebx + edx], al
add edx, 1
cmp edx, esi
jb 0x401fd1
cmp ecx, 0x40
je 0x401f92
cmp ecx, 4
je 0x401f92
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
add esp, 0x3c
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
lea esi, [esi]
Function at 0x4016e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x4016ef
pop dword [ebp - 0x50]
mov eax, 0x7f783079
sub eax, 0x7f38198a
sub dword [ebp - 0x50], eax
mov dword [ebp - 0x60], 0x5945c662
add dword [ebp - 0x60], 0xf50c7ee9
mov dword [ebp - 0x5c], 0x8a3ad8f9
sub dword [ebp - 0x5c], 0x58078cb4
mov dword [ebp - 0x58], 0x5ebd8991
add dword [ebp - 0x58], 0xed8eba9d
mov dword [ebp - 0x54], 0x3517a3d
add dword [ebp - 0x54], 0xfcae85c3
lea eax, [ebp - 0x60]
push eax
mov eax, sym.imp.kernel32.dll_LoadLibraryA
add eax, dword [ebp - 0x50]
call dword [eax]
mov dword [ebp - 0x60], 0xadb5cd8b
add dword [ebp - 0x60], 0xc6bc9bcb
mov dword [ebp - 0x5c], 0x7716c8a
add dword [ebp - 0x5c], 0x39faf4eb
mov dword [ebp - 0x58], 0x55d2827
sub dword [ebp - 0x58], 0xa1edbbbb
mov dword [ebp - 0x54], 0x516c35ef
sub dword [ebp - 0x54], 0x516c35ef
lea ebx, [ebp - 0x60]
push ebx
push eax
mov eax, 0x44e7c7c7
add eax, 0xbb596875
add eax, dword [ebp - 0x50]
call dword [eax]
push 0x40
push 0x1000
push 0x3c7c9
push 0
call eax
mov ecx, 0x4fe2
xor edx, edx
add edx, eax
mov esi, 0x41a000
add esi, dword [ebp - 0x50]
mov ebx, 0x1598f65f
sub ebx, 0xad3272aa
mov dword [ebp - 0x14], 0x8c540ce2
mov edi, dword [esi]
mov dword [ebp - 0x48], 0xf272e1f3
sub edi, ebx
xor dword [ebp - 4], edi
mov dword [edx], edi
xor dword [ebp - 0x14], ebx
add edx, 4
add esi, 0xd190057b
sub esi, 0xd1900577
loop 0x401802
add eax, 0xded9b7ca
sub eax, 0xded8856f
mov ebx, eax
add eax, 5
mov ecx, 0x400000
add ecx, dword [ebp - 0x50]
call ebx
leave
ret
Function at 0x1007d356
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1008a2c0]
jne 0x1007d360
repz ret
jmp fcn.1007d830
Function at 0x4010b0
Capabilities:
Get process heap force flags
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x10
mov dword [esp], 1
call sym.__configure_narrow_argv
call sym.__initialize_narrow_environment
call sym.___p___argc
mov esi, dword [eax]
call sym.___p___argv
mov edi, dword [eax]
call sym.__get_initial_narrow_environment
mov ebx, eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x3c]
cmp word [eax + edx + 0x5c], 2
sete al
movzx eax, al
add eax, 1
mov dword [esp], eax
call sym.__set_app_type
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], esi
call dbg.main
mov dword [esp], eax
call sym._exit

Function at 0x401170
Capabilities:
Accept command line arguments

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x78
call dbg.__main
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov ebx, eax
movzx eax, byte [eax]
test al, al
je 0x4011ff
cmp al, 9
je 0x4011f0
cmp al, 0x20
je 0x4011f0
mov dword [ebp - 0x6c], 0
xor esi, esi
lea esi, [esi]
cmp al, 0x5c
je 0x401258
cmp al, 0x22
je 0x401268
mov dword [ebp - 0x6c], 0
movzx eax, byte [ebx + 1]
add ebx, 1
test al, al
je 0x4011ff
cmp al, 9
sete dl
cmp al, 0x20
sete cl
or dl, cl
je 0x4011b0
test esi, 1
jne 0x4011b0
lea esi, [esi]
nop
movzx eax, byte [ebx + 1]
add ebx, 1
cmp al, 9
je 0x4011f0
cmp al, 0x20
je 0x4011f0
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetStartupInfoA]
sub esp, 4
test byte [ebp - 0x30], 1
jne 0x40121a
mov word [ebp - 0x2c], 1
movzx esi, word [ebp - 0x2c]
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
sub esp, 4
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call dbg.WinMain@16
sub esp, 0x10
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
add dword [ebp - 0x6c], 1
jmp 0x4011c7
and dword [ebp - 0x6c], 1
jne 0x4011c0
xor esi, 1
jmp 0x4011c7

Function at 0xf05950
Capabilities:
Encode data using xor

Disassembly:
jmp 0xf0595a
pushal
call 0xf05960
pop ebp
sub ebp, 0x10
add byte [eax], al
add byte [ebp - 0x7f], bl
in eax, dx
adc byte [eax], al
add byte [eax], al
sub ebp, 0xb05950
jmp 0xf05976
mov eax, 0xb05950
add eax, ebp
add eax, 0x4c
mov ecx, 0x5d5
mov edx, 0xd99862a4
xor byte [eax], dl
inc eax
dec ecx
jne 0xf0598d
jmp 0xf059a0
das
imul ebp, dword [edi], 0xa4a4982d
movsb byte es:[edi], byte [esi]
and eax, 0xa4a45c65
movsb byte es:[edi], byte [esi]
cmpsd dword [esi], dword es:[edi]
imul ebx, dword [edx], 0x1ea4a4a4
mov word [esp - 0x58b9ac5c], fs
insb byte es:[edi], dx
das
and eax, 0xa4a4a4a8
cmpsd dword [esi], dword es:[edi]
popal
sub eax, eax
sbb byte [eax + 0x2d], 0xa0
sub byte [ecx], 0xc0
sbb byte [eax + 0x2d], 0xa0
or ah, 0x44
jbe 0xf0595d
movsb byte es:[edi], byte [esi]
int3
Function at 0x401000
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
je 0x401090
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x10]
push ebx
cmp byte [esi], 0
je 0x40108d
push 0x5c
push esi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x40108d
push edi
mov byte [esi], 0
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x401066
push 0
push edi
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x40105f
test ebp, ebp
je 0x40105f
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
jmp 0x401066
push edi
push 1
call ebp
pop ecx
pop ecx
test bl, 0x10
jne 0x401087
push 0xb7
call dword [sym.imp.kernel32.dll_SetLastError]
test ebp, ebp
je 0x401087
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
mov byte [esi], 0x5c
inc esi
jne 0x401018
pop ebx
pop edi
pop ebp
xor eax, eax
inc eax
pop esi
ret

Function at 0x4031f4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x403203
pop dword [ebp - 0x50]
mov eax, 0x403203
sub dword [ebp - 0x50], eax
mov dword [ebp - 0x60], 0xa76d14c8
sub dword [ebp - 0x60], 0x591acf7d
mov dword [ebp - 0x5c], 0xa57e3eb8
add dword [ebp - 0x5c], 0x8cb50d8d
mov dword [ebp - 0x58], 0x7064b8b1
add dword [ebp - 0x58], 0xdbe78b7d
mov dword [ebp - 0x54], 0x837d245d
sub dword [ebp - 0x54], 0x837d245d
lea eax, [ebp - 0x60]
push eax
mov eax, 0x83bb319a
add eax, 0x7c853eca
add eax, dword [ebp - 0x50]
call dword [eax]
mov dword [ebp - 0x60], 0x6e2a724e
add dword [ebp - 0x60], 0x647f708
mov dword [ebp - 0x5c], 0x64380fad
add dword [ebp - 0x5c], 0xdd3451c8
mov dword [ebp - 0x58], 0x928adaef
sub dword [ebp - 0x58], 0x2f1b6e83
mov dword [ebp - 0x54], 0x3cf56b81
add dword [ebp - 0x54], 0xc30a947f
lea ebx, [ebp - 0x60]
push ebx
push eax
mov eax, 0x8c840a2a
sub eax, 0x8c439982
add eax, dword [ebp - 0x50]
call dword [eax]
push 0x40
push 0x1000
push 0x383d9
push 0
call eax
mov ecx, 0xcb515fb9
add ecx, 0x34aeeedd
xor ebx, ebx
add ebx, eax
mov edi, 0x3915e2d1
add edi, 0xc72b1d2f
add edi, dword [ebp - 0x50]
mov edx, 0xf0001f42
xor dword [ebp - 0x4c], edi
mov esi, dword [edi]
xor dword [ebp - 0x24], ebx
add esi, edx
mov dword [ebp - 8], 0x4f91a48a
mov dword [ebx], esi
add ebx, 0x3a15db1f
sub ebx, 0x3a15db1b
add edi, 0xab7d2e56
sub edi, 0xab7d2e52
loop 0x40331c
add eax, 0x12d2b
mov ebx, eax
add eax, 0xda0ca964
add eax, 0x25f356a1
mov ecx, 0x58fb4dcf
sub ecx, 0x58bb4dcf
add ecx, dword [ebp - 0x50]
call ebx
leave
ret
Function at 0x406234
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
pushal
call 0x406243
pop dword [ebp - 0x18]
mov eax, 0x406243
sub dword [ebp - 0x18], eax
mov dword [ebp - 0x28], 0x5fbec40d
add dword [ebp - 0x28], 0xee93813e
mov dword [ebp - 0x24], 0x4308be2
add dword [ebp - 0x24], 0x2e02c063
mov dword [ebp - 0x20], 0x7d5c4188
add dword [ebp - 0x20], 0xcef002a6
mov dword [ebp - 0x1c], 0x19514a1
add dword [ebp - 0x1c], 0xfe6aeb5f
lea eax, [ebp - 0x28]
push eax
mov eax, 0x2ac86b54
sub eax, 0x2a87ea50
add eax, dword [ebp - 0x18]
call dword [eax]
mov dword [ebp - 0x28], 0xa74d2004
sub dword [ebp - 0x28], 0x32dab6ae
mov dword [ebp - 0x24], 0xbf91acf8
sub dword [ebp - 0x24], 0x7e254b83
mov dword [ebp - 0x20], 0x4a0a3d3f
add dword [ebp - 0x20], 0x19652f2d
mov dword [ebp - 0x1c], 0x99253c19
add dword [ebp - 0x1c], 0x66dac3e7
lea ebx, [ebp - 0x28]
push ebx
push eax
mov eax, 0x8c6bfe7
sub eax, 0x8863ee7
add eax, dword [ebp - 0x18]
call dword [eax]
push 0x40
push 0x1000
push 0x34cf3
push 0
call eax
mov ecx, 0x7e43940b
add ecx, 0x81bcab1a
mov edi, eax
mov esi, 0x46e400
add esi, dword [ebp - 0x18]
mov ebx, 0x5a503492
sub ebx, 0xf33188b9
add dword [ebp - 8], 0xfa98e199
mov edx, dword [esi]
add dword [ebp - 4], 0x59bf8331
xor edx, ebx
mov dword [ebp - 8], 0xd95f1284
mov dword [edi], edx
add edi, 0x282007d3
sub edi, 0x282007cf
add esi, 0xebbf098
add esi, 0xf1440f6c
loop 0x40635a
add eax, 0xef67
mov ebx, eax
add eax, 0x4fcf520d
sub eax, 0x4fcf5208
mov ecx, 0x400000
add ecx, dword [ebp - 0x18]
call ebx
leave
ret

Function at 0x40669d
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x427dcc], 0
push esi
jne 0x4066d4
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x4066ae
mov dword [ecx*4 + 0x427dc8], eax
inc ecx
cmp ecx, 0x100
jl 0x4066a9
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x406705
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x427dc8]
xor eax, esi
inc ecx
dec edx
jne 0x4066e7
pop edi
not eax
pop esi
ret 0xc
Function at 0x40133c
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 1
mov eax, str.SeDebugPrivilege
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
push 1
push dword [ebp + 8]
call fcn.0040137e
mov dword [ebp - 8], eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x401370
push ebx
call fcn.004061d6
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x401378
mov esp, ebp
pop ebp
ret 8
Function at 0x40440f
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x50
push ebp
lea eax, [esp + 0x28]
push edi
push eax
call fcn.004045bf
mov ecx, dword [esp + 0x5c]
xor edx, edx
xor ebp, ebp
mov dword [esp + 0xc], 1
mov edi, dword [ecx]
mov dword [esp + 0x10], 8
mov dword [esp + 0x14], 2
mov dword [esp + 0x18], 4
mov dx, word [edi + 0x14]
cmp word [edi + 6], bp
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x20], 0x80
mov dword [esp + 0x24], 0x20
mov dword [esp + 0x28], 0x40
lea eax, [edx + edi + 0x18]
jbe 0x40450d
push ebx
push esi
lea ebx, [eax + 0x24]
mov eax, dword [ebx]
mov ecx, eax
mov edx, eax
shr ecx, 0x1d
shr edx, 0x1e
mov esi, eax
and ecx, 1
and edx, 1
shr esi, 0x1f
test eax, 0x2000000
je 0x4044b0
mov eax, dword [ebx - 0x14]
mov ecx, dword [ebx - 0x1c]
push 0x4000
push eax
push ecx
call dword [esp + 0x4c]
jmp 0x4044f3
lea edx, [edx + ecx*2]
test eax, 0x4000000
lea ecx, [esi + edx*2]
mov esi, dword [esp + ecx*4 + 0x14]
je 0x4044c7
or esi, 0x200
mov edx, dword [ebx - 0x14]
mov ecx, edx
test ecx, ecx
jne 0x4044e2
test al, 0x40
je 0x4044d9
mov ecx, dword [edi + 0x20]
jmp 0x4044e0
test al, 0x80
je 0x4044f3
mov ecx, dword [edi + 0x24]
test ecx, ecx
jbe 0x4044f3
mov ecx, dword [ebx - 0x1c]
lea eax, [esp + 0x10]
push eax
push esi
push edx
push ecx
call dword [esp + 0x44]
mov edx, dword [esp + 0x64]
xor eax, eax
inc ebp
add ebx, 0x28
mov edi, dword [edx]
mov ax, word [edi + 6]
cmp ebp, eax
jl 0x40447f
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x50
ret