joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401df0
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
push 0xffffffffffffffff
push 0x40e76b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x548
mov eax, dword [0x412100]
xor eax, esp
push ebp
mov ebp, dword [esp + 0x55c]
push esi
push ebp
mov dword [esp + 0x550], eax
lea eax, [esp + 0x150]
push str._s.
push eax
call fcn.0040518d
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x150]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x401e59
mov al, 1
jmp 0x401ef0
push edi
mov dword [esp + 0xc], esi
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
mov dword [esp + 0x55c], 0
nop
lea eax, [esp + 0x3c]
push 0x40f2d4
push eax
call fcn.00405305
add esp, 8
test eax, eax
je 0x401ecf
lea ecx, [esp + 0x3c]
push 0x40f2d0
push ecx
call fcn.00405305
add esp, 8
test eax, eax
je 0x401ecf
test byte [esp + 0x10], 0x10
je 0x401f15
lea edx, [esp + 0x3c]
push edx
push ebp
lea eax, [esp + 0x158]
push str._s_s
push eax
call fcn.0040518d
lea ecx, [esp + 0x160]
push ecx
call fcn.00401df0
add esp, 0x14
test al, al
je 0x401f15
lea edx, [esp + 0x10]
push edx
push esi
call edi
test eax, eax
jne 0x401e70
test esi, esi
je 0x401ee6
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebp
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov al, 1
pop edi
mov ecx, dword [esp + 0x550]
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x548]
pop ebp
xor ecx, esp
call fcn.00404b57
add esp, 0x554
ret
test esi, esi
je 0x401f20
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor al, al
jmp 0x401eef

Function at 0x402080
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x54
push edi
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
lea ecx, [esp + 4]
push ecx
mov ecx, dword [esp + 0x60]
lea edx, [esp + 0x18]
push edx
push eax
push eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
or eax, 0x8000000
push eax
push 0
push 0
push 0
push ecx
push 0
mov dword [esp + 0x3c], 0x44
mov dword [esp + 0x44], str.winsta0Default
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
pop edi
jne 0x4020e3
add esp, 0x54
ret
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4020f7
mov edx, dword [esp]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [esp + 8]
push ecx
call esi
mov eax, 1
pop esi
add esp, 0x54
ret
Function at 0x402170
Capabilities:
Get common file path

Disassembly:
sub esp, 0x404
mov eax, dword [0x412100]
xor eax, esp
push esi
mov esi, dword [esp + 0x40c]
mov dword [esp + 0x404], eax
lea eax, [esp + 4]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, 0x400
ja 0x4021d1
test eax, eax
je 0x4021d1
lea eax, [esp + 4]
mov edx, esi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4021b1
pop esi
mov ecx, dword [esp + 0x400]
xor ecx, esp
call fcn.00404b57
add esp, 0x404
ret
mov edx, dword [str.c:_temp]
mov ecx, dword [esp + 0x404]
mov dword [esi], edx
mov eax, dword [0x40f308]
mov dword [esi + 4], eax
pop esi
xor ecx, esp
call fcn.00404b57
add esp, 0x404
ret

Function at 0x402200
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
push esi
mov esi, dword [esp + 8]
push 0
push 0
push eax
push ecx
push 0
push 0
mov dword [esi], 0xffffffff
call dword [sym.imp.KERNEL32.dll_CreateThread]
xor edx, edx
cmp eax, 0xffffffff
setne dl
mov dword [esi], eax
pop esi
mov eax, edx
ret

Function at 0x402380
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40f330
push 0x405b9c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push esi
push edi
xor edi, edi
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], edi
lea eax, [ebp - 0x1c]
push eax
push 0xf01ff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x40240d
push 1
push str.SeDebugPrivilege
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.004022d0
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
push edi
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
mov dword [ebp - 0x20], esi
cmp esi, edi
je 0x40240d
push 1
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
je 0x40240d
mov dword [ebp - 0x24], 1
mov dword [ebp - 4], 0xffffffff
call fcn.00402432
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x402450
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x33c
mov eax, dword [0x412100]
xor eax, ebp
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x33c], eax
push esi
xor eax, eax
test ebx, ebx
push edi
je 0x4025da
mov byte [esp + 0x140], al
mov ecx, 0x7f
lea edi, [esp + 0x141]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x140]
stosb byte es:[edi], al
mov eax, ebx
sub edx, ebx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4024a0
mov eax, ebx
xor edi, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4024b1
sub eax, edx
mov dword [esp + 0x10], eax
je 0x40250d
mov eax, ebx
lea ecx, [esp + 0x140]
sub eax, ecx
mov dword [esp + 0x10], eax
jmp 0x4024e0
mov eax, dword [esp + 0x10]
jmp 0x4024e0
lea esi, [esp + edi + 0x140]
movsx edx, byte [eax + esi]
push edx
call fcn.00405d65
mov byte [esi], al
mov eax, ebx
add esp, 4
inc edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402500
sub eax, edx
cmp edi, eax
jb 0x4024d1
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ebx, eax
xor eax, eax
cmp ebx, 0xffffffff
je 0x4025da
mov ecx, 0x49
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x18]
push eax
push ebx
mov dword [esp + 0x20], 0x128
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x4025cf
lea ecx, [ecx]
lea eax, [esp + 0x3c]
xor esi, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402560
sub eax, edx
mov dword [esp + 0x14], eax
je 0x40259d
nop
movsx ecx, byte [esp + esi + 0x3c]
push ecx
call fcn.00405d65
mov byte [esp + esi + 0x40], al
lea eax, [esp + 0x40]
add esp, 4
inc esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402590
sub eax, edx
cmp esi, eax
jb 0x402570
lea edx, [esp + 0x140]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.00404aa0
add esp, 8
test eax, eax
jne 0x4025c7
lea ecx, [esp + 0x18]
push ecx
push ebx
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x402550
jmp 0x4025cf
mov dword [esp + 0x10], 1
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x344]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00404b57
mov esp, ebp
pop ebp
ret
Function at 0x4025f0
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40f340
push 0x405b9c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x144
mov eax, dword [0x412100]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14c], ecx
xor edi, edi
push edi
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
mov dword [ebp - 0x150], esi
cmp esi, 0xffffffff
jne 0x402650
xor eax, eax
jmp 0x4026fc
mov dword [ebp - 0x148], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x144], edi
mov ecx, 0x49
xor eax, eax
lea edi, [ebp - 0x140]
rep stosd dword es:[edi], eax
mov ebx, 0x128
mov dword [ebp - 0x144], ebx
lea edx, [ebp - 0x144]
push edx
push esi
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x4026ea
lea ebx, [ebx]
mov eax, dword [ebp - 0x154]
push eax
lea ecx, [ebp - 0x120]
push ecx
call fcn.0040503d
add esp, 8
test eax, eax
jne 0x4026c4
mov edx, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x14c]
mov dword [eax], edx
mov dword [ebp - 0x148], 1
jmp 0x4026ea
mov ecx, 0x4a
xor eax, eax
lea edi, [ebp - 0x144]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x144], ebx
lea ecx, [ebp - 0x144]
push ecx
push esi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x402690
mov dword [ebp - 4], 0xffffffff
call fcn.0040271d
mov eax, dword [ebp - 0x148]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00404b57
mov esp, ebp
pop ebp
ret

Function at 0x402730
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0x18]
test esi, esi
push edi
mov dword [esp + 8], 0
jne 0x40274c
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
mov eax, dword [esp + 0x14]
movzx ecx, word [esp + 0x10]
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x402768
pop edi
pop esi
pop ecx
ret
push ebp
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
test ebp, ebp
jne 0x40277c
pop ebp
pop edi
pop esi
pop ecx
ret
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
jne 0x402791
pop ebx
pop ebp
pop edi
pop esi
pop ecx
ret
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4027ea
mov edx, dword [esp + 0x20]
push 0
push 0x80
push 2
push 0
push 0
push 0x1f01ff
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x4027ea
push 0
lea eax, [esp + 0x28]
push eax
push ebp
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop ebx
pop ebp
mov eax, edi
pop edi
pop esi
pop ecx
ret
mov edi, dword [esp + 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop ebx
pop ebp
mov eax, edi
pop edi
pop esi
pop ecx
ret
Function at 0x402870
Capabilities:
Acquire debug privileges
Terminate process

Disassembly:
mov eax, dword [esp + 4]
test eax, eax
jne 0x402879
ret
lea ecx, [esp + 4]
push ecx
push eax
mov dword [esp + 0xc], 0
call fcn.004025f0
add esp, 8
test eax, eax
jne 0x402899
mov eax, 1
ret
mov edx, dword [esp + 4]
mov dword [esp + 4], edx
jmp fcn.00402380

Function at 0x402a10
Capabilities:
Enumerate process modules

Disassembly:
sub esp, 0x110
mov eax, dword [0x412100]
xor eax, esp
push esi
mov esi, ecx
mov dword [esp + 0x110], eax
mov eax, dword [esi]
cmp eax, 0xffffffff
push edi
mov edi, dword [esp + 0x11c]
je 0x402a93
test eax, eax
je 0x402a93
lea ecx, [esp + 0xc]
push ecx
push 4
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x1c], 0
call sub.PSAPI.DLL_EnumProcessModules
test eax, eax
je 0x402a93
mov ecx, dword [esp + 8]
mov edx, dword [esi]
push 0x104
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call sub.PSAPI.DLL_GetModuleFileNameExA
lea eax, [esp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402a76
sub eax, edx
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, edi
call fcn.00401760
mov eax, 1
jmp 0x402a95
xor eax, eax
mov ecx, dword [esp + 0x114]
pop edi
pop esi
xor ecx, esp
call fcn.00404b57
add esp, 0x110
ret 4

Function at 0x402ab0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x808
mov eax, dword [0x412100]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push edi
push 0
xor eax, ebp
push str._pmc
mov dword [esp + 0x814], eax
call esi
push eax
call fcn.004012b0
add esp, 0xc
test al, al
je 0x402b83
xor eax, eax
mov byte [esp + 0x408], 0
mov ecx, 0xff
lea edi, [esp + 0x409]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [esp + 8], 0
mov ecx, 0xff
lea edi, [esp + 9]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x3ff
lea eax, [esp + 0xc]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call esi
push str._pmc
push eax
call fcn.00404c40
add eax, 4
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x418]
push str.__s__s
push edx
call fcn.0040518d
push 0x20
lea eax, [esp + 0x424]
push 0
push eax
call fcn.00402080
add esp, 0x24
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x804]
xor ecx, ebp
call fcn.00404b57
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x80c]
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.00404b57
mov esp, ebp
pop ebp
ret
Function at 0x4035b0
Capabilities:
Persist via run registry key

Disassembly:
push 0xffffffffffffffff
push 0x40e82b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x408
mov eax, dword [0x412100]
xor eax, esp
lea ecx, [esp]
mov dword [esp + 0x404], eax
call fcn.004022c0
push str.SOFTWAREMicrosoftWindowsCurrentVersionRun
push 0x80000002
lea ecx, [esp + 8]
mov dword [esp + 0x418], 0
call fcn.004032f0
test eax, eax
je 0x403623
lea eax, [esp + 4]
push eax
call fcn.00401cd0
add esp, 4
lea ecx, [esp + 4]
push ecx
push str.RzxMon
lea ecx, [esp + 8]
call fcn.00403280
lea ecx, [esp]
mov dword [esp + 0x410], 0xffffffff
call fcn.004032d0
mov ecx, dword [esp + 0x408]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x404]
xor ecx, esp
call fcn.00404b57
add esp, 0x414
ret

Function at 0x403660
Capabilities:
Query service status
Start service

Disassembly:
sub esp, 0x1c
push ebx
push esi
push 0xf003f
push 0
push 0
mov esi, 3
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov ebx, eax
test ebx, ebx
jne 0x403694
push str.OpenSCManager_error_r_n
call fcn.00405f09
add esp, 4
mov eax, esi
pop esi
pop ebx
add esp, 0x1c
ret
push edi
push 0xf01ff
push str.rzxnm
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov edi, eax
test edi, edi
jne 0x4036bf
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x1c
ret
lea eax, [esp + 0xc]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x403705
mov eax, dword [esp + 0x10]
cmp eax, 4
jne 0x4036df
mov esi, 2
jmp 0x403705
cmp eax, 1
je 0x4036f0
cmp eax, 7
je 0x4036f0
mov esi, 3
jmp 0x403705
push 0
push 0
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
xor ecx, ecx
test eax, eax
setne cl
inc ecx
mov esi, ecx
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call edi
push ebx
call edi
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x1c
ret
Function at 0x40625a
Capabilities:
Accept command line arguments
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x40fbe0
call fcn.0040791c
mov edi, 0x94
mov eax, edi
call fcn.00404b70
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x412d4c], ecx
mov eax, dword [esi + 4]
mov dword [0x412d58], eax
mov edx, dword [esi + 8]
mov dword [0x412d5c], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x412d50], esi
cmp ecx, 2
je 0x4062ba
or esi, 0x8000
mov dword [0x412d50], esi
shl eax, 8
add eax, edx
mov dword [0x412d54], eax
xor esi, esi
push esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x4062f5
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4062f5
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x40630d
cmp eax, 0x20b
je 0x4062fa
mov dword [ebp - 0x1c], esi
jmp 0x406321
cmp dword [ecx + 0x84], 0xe
jbe 0x4062f5
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x40631b
cmp dword [ecx + 0x74], 0xe
jbe 0x4062f5
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push 1
call fcn.0040ae62
pop ecx
test eax, eax
jne 0x406335
push 0x1c
call fcn.00406236
pop ecx
call fcn.00407387
test eax, eax
jne 0x406346
push 0x10
call fcn.00406236
pop ecx
call fcn.0040c779
mov dword [ebp - 4], esi
call fcn.00409be1
test eax, eax
jge 0x40635f
push 0x1b
call fcn.00406211
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x4145b4], eax
call fcn.0040c657
mov dword [0x412d28], eax
call fcn.0040c5b5
test eax, eax
jge 0x406385
push 8
call fcn.00406211
pop ecx
call fcn.0040c382
test eax, eax
jge 0x406396
push 9
call fcn.00406211
pop ecx
push 1
call fcn.00407738
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
je 0x4063ac
push eax
call fcn.00406211
pop ecx
mov dword [ebp - 0x44], esi
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.0040c325
mov dword [ebp - 0x20], eax
test byte [ebp - 0x44], 1
je 0x4063cd
movzx eax, word [ebp - 0x40]
jmp 0x4063d0
push 0xa
pop eax
push eax
push dword [ebp - 0x20]
push esi
push esi
call edi
push eax
call fcn.00401aa0
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x1c], esi
jne 0x4063ee
push edi
call fcn.00407865
call fcn.00407887
jmp 0x406420
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.00407957
ret
Function at 0x4077a2
Capabilities:
Terminate process

Disassembly:
push 8
push 0x40fcf0
call fcn.0040791c
push 8
call fcn.0040a39c
pop ecx
xor edi, edi
mov dword [ebp - 4], edi
xor esi, esi
inc esi
cmp dword [0x412d8c], esi
jne 0x4077d6
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [0x412d88], esi
mov al, byte [ebp + 0x10]
mov byte [0x412d84], al
cmp dword [ebp + 0xc], edi
jne 0x407820
cmp dword [0x4145a8], edi
je 0x407810
mov eax, dword [0x4145a4]
sub eax, 4
mov dword [0x4145a4], eax
cmp eax, dword [0x4145a8]
jb 0x407810
mov eax, dword [eax]
cmp eax, edi
je 0x4077f1
call eax
jmp 0x4077f1
push 0x412034
mov eax, 0x41202c
call fcn.00407720
pop ecx
push 0x412040
mov eax, 0x412038
call fcn.00407720
pop ecx
or dword [ebp - 4], 0xffffffff
call 0x407851
cmp dword [ebp + 0x10], edi
jne 0x40785f
mov dword [0x412d8c], esi
push dword [ebp + 8]
call fcn.004076de
xor edi, edi
xor esi, esi
inc esi
cmp dword [ebp + 0x10], edi
je 0x40785e
push 8
call fcn.0040a2e7
pop ecx
ret
call fcn.00407957
ret

Function at 0x4094df
Capabilities:
Get common file path

Disassembly:
push 0x120
push 0x40ffd8
call fcn.0040791c
mov eax, dword [0x412100]
xor eax, ebp
mov dword [ebp - 0x1c], eax
lea edi, [ebp - 0x124]
and dword [ebp - 0x128], 0
mov eax, edi
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, eax
mov dword [ebp - 0x12c], esi
cmp esi, 0x104
jle 0x409585
and dword [ebp - 4], 0
lea eax, [esi + 1]
add eax, 3
and eax, 0xfffffffc
call fcn.00404b70
mov dword [ebp - 0x18], esp
mov edi, esp
mov dword [ebp - 0x130], edi
jmp 0x409572
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x409585
push edi
inc esi
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov esi, eax
xor ebx, ebx
test esi, esi
je 0x4095a0
cmp byte [edi + 1], 0x3a
jne 0x4095a0
movzx eax, byte [edi]
push eax
call fcn.0040d587
pop ecx
mov ebx, eax
sub ebx, 0x40
cmp dword [ebp - 0x128], 0
je 0x4095b0
push edi
call fcn.00405fa9
pop ecx
mov eax, ebx
lea esp, [ebp - 0x13c]
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00404b57
call fcn.00407957
ret
Function at 0x4096f0
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x3a4]
sub esp, 0x424
mov eax, dword [0x412100]
xor ecx, ecx
xor eax, ebp
cmp dword [ebp + 0x3b4], ecx
push edi
mov edi, dword [ebp + 0x3b0]
mov dword [ebp + 0x3a0], eax
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x78], ecx
jne 0x40972c
xor eax, eax
jmp 0x409896
mov eax, dword [ebp + 0x3ac]
push ebx
mov ebx, dword [ebp + 0x3ac]
and eax, 0x1f
sar ebx, 5
push esi
lea esi, [eax + eax*8]
lea ebx, [ebx*4 + 0x413240]
mov eax, dword [ebx]
shl esi, 2
test byte [eax + esi + 4], 0x20
je 0x40976a
push 2
push ecx
push ecx
push dword [ebp + 0x3ac]
call fcn.0040d5a9
add esp, 0x10
xor ecx, ecx
mov eax, dword [ebx]
add eax, esi
test byte [eax + 4], 0x80
je 0x409804
cmp dword [ebp + 0x3b4], ecx
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x68], ecx
jbe 0x409867
jmp 0x40978e
xor ecx, ecx
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x70]
sub ecx, dword [ebp - 0x7c]
lea eax, [ebp - 0x64]
cmp ecx, dword [ebp + 0x3b4]
jae 0x4097c9
mov edx, dword [ebp - 0x70]
inc dword [ebp - 0x70]
mov dl, byte [edx]
inc ecx
cmp dl, 0xa
jne 0x4097ba
inc dword [ebp - 0x78]
mov byte [eax], 0xd
inc eax
inc dword [ebp - 0x6c]
mov byte [eax], dl
inc eax
inc dword [ebp - 0x6c]
cmp dword [ebp - 0x6c], 0x400
jl 0x40979a
mov edi, eax
lea eax, [ebp - 0x64]
sub edi, eax
push 0
lea eax, [ebp - 0x80]
push eax
push edi
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebx]
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x409828
mov eax, dword [ebp - 0x80]
add dword [ebp - 0x74], eax
cmp eax, edi
jl 0x409831
mov eax, dword [ebp - 0x70]
sub eax, dword [ebp - 0x7c]
cmp eax, dword [ebp + 0x3b4]
jb 0x40978c
jmp 0x409831
push ecx
lea ecx, [ebp - 0x80]
push ecx
push dword [ebp + 0x3b4]
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x409828
mov eax, dword [ebp - 0x80]
and dword [ebp - 0x68], 0
mov dword [ebp - 0x74], eax
jmp 0x409831
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x74]
test eax, eax
jne 0x409891
cmp dword [ebp - 0x68], eax
je 0x409864
push 5
pop esi
cmp dword [ebp - 0x68], esi
jne 0x409859
call fcn.004092a2
mov dword [eax], 9
call fcn.004092ab
mov dword [eax], esi
jmp 0x40988c
push dword [ebp - 0x68]
call fcn.004092b4
pop ecx
jmp 0x40988c
mov edi, dword [ebp - 0x7c]
mov eax, dword [ebx]
test byte [eax + esi + 4], 0x40
je 0x409879
cmp byte [edi], 0x1a
jne 0x409879
xor eax, eax
jmp 0x409894
call fcn.004092a2
mov dword [eax], 0x1c
call fcn.004092ab
and dword [eax], 0
or eax, 0xffffffff
jmp 0x409894
sub eax, dword [ebp - 0x78]
pop esi
pop ebx
mov ecx, dword [ebp + 0x3a0]
xor ecx, ebp
pop edi
call fcn.00404b57
add ebp, 0x3a4
leave
ret