joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4c9ef0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x502120
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x537008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4c9f27
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call edi
test eax, eax
je 0x4c9f3b
mov al, 1
jmp 0x4ca0c2
cmp dword [esi + 0x14], 8
mov edx, esi
jb 0x4c9f45
mov edx, dword [esi]
mov ecx, edx
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ebx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c9f70
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.0040a390
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.004c9b50
mov ebx, eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a320
cmp ebx, 0xffffffff
jne 0x4c9fb8
xor al, al
jmp 0x4ca0c2
cmp dword [esi + 0x14], 8
mov edx, esi
jb 0x4c9fc2
mov edx, dword [esi]
mov ecx, edx
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea ebx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c9ff0
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.0040a390
mov dword [ebp - 4], 1
xor edx, edx
lea ecx, [ebp - 0x28]
call fcn.004c9a80
mov bl, al
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a320
test bl, bl
je 0x4c9fb1
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x4ca039
mov eax, dword [esi]
push eax
call edi
test eax, eax
jne 0x4c9f34
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov dword [ebp - 4], 2
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.004ca5e0
test al, al
je 0x4ca083
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call edi
test eax, eax
je 0x4ca083
mov bl, 1
jmp 0x4ca0b1
cmp dword [esi + 0x14], 8
jb 0x4ca08b
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x44]
call fcn.0040a140
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 0x2c]
call fcn.004c9a80
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.0040a320
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a320
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e647b
mov esp, ebp
pop ebp
ret
Function at 0x4ca100
Capabilities:
Get common file path

Disassembly:
sub esp, 0x210
mov eax, dword [0x537008]
xor eax, esp
mov dword [esp + 0x20c], eax
push ebx
mov ebx, dword [esp + 0x218]
lea eax, [esp + 4]
push esi
push edi
push 0x20c
push 0
push eax
mov edi, edx
mov esi, ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x4ca13e
mov edi, dword [edi]
cmp dword [esi + 0x14], 8
jb 0x4ca146
mov esi, dword [esi]
lea eax, [esp + 0xc]
push eax
push 0
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x4ca1a6
xor eax, eax
lea edx, [esp + 0xc]
mov word [esp + 0x216], ax
lea esi, [edx + 2]
nop word [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4ca170
sub edx, esi
lea eax, [esp + 0xc]
sar edx, 1
mov ecx, ebx
push edx
push eax
call fcn.0040a390
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.004e647b
add esp, 0x210
ret
mov ecx, dword [esp + 0x218]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004e647b
add esp, 0x210
ret
Function at 0x4cc6b0
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x537008]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x4cc715
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4cc6f0
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4cc715
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.004e647b
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.004e647b
add esp, 8
ret 4
Function at 0x4e22e0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
test edx, edx
jne 0x4e22eb
xor eax, eax
pop ebp
ret
pop ebp
jmp fcn.004e2300
Function at 0x401000
Capabilities:
Set current directory

Disassembly:
mov ebx, 0x83eeab79
and bh, byte [ebx - 0x5f]
push edi
shr byte [ecx + 0x3945124e], 1
dec ebp
sub cl, byte [edi - 0x21]
push esp
dec ebx
rol dword [ebp + 0x44c99837], 1
push eax
jns 0x401040
cmc
ret
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
add esp, 0x104
ret

Function at 0x401020
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x104
lea eax, [esp]
push 0xf0
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp]
push str.SYSTEM32
push ecx

Function at 0x401140
Capabilities:
Create service
Modify service
Persist via windows service

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
test edi, edi
jne 0x401167
call fcn.00401000
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
mov ebx, dword [esp + 0x1c]
push 0xf01ff
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov ebp, dword [esp + 0x18]
mov esi, eax
test esi, esi
jne 0x4011ba
push 0
mov eax, dword [esp + 0x24]
push 0
push 0
push 0
push 0
push ebp
push 1
push 2
push 0x10
push 0xf01ff
push eax
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_CreateServiceA]
mov esi, eax
test esi, esi
jne 0x4011ba
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
push 0
push 0x404bb8
push str.LocalSystem
push 0x404bb8
push 0
push 0
push ebp
push 1
push 2
push 0x10
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigA]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x10]
push edx
push 1
push esi
mov dword [esp + 0x1c], ecx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2A]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x401204
push esi
call fcn.00401130
add esp, 4
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call esi
push edi
call esi
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret

Function at 0x401220
Capabilities:
Get common file path

Disassembly:
sub esp, 0x480
push esi
push edi
mov ecx, 0x9f
xor eax, eax
lea edi, [esp + 0x209]
mov byte [esp + 0x208], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x108]
push 0xff
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x108]
push str.SYSTEM32
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 9]
mov byte [esp + 8], 0
rep stosd dword es:[edi], eax
lea edx, [esp + 0x208]
push 0
push edx
push 0x4044cc
stosw word es:[edi], ax
call fcn.00401e80
lea eax, [esp + 0x45b]
lea ecx, [esp + 0x114]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
lea eax, [esp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4012d7
push str.LogNote
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4012d7
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
add esp, 0x480
ret
Function at 0x4013b0
Capabilities:
Create process on windows
Get common file path

Disassembly:
sub esp, 0x854
push ebx
push esi
push edi
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x461]
mov byte [esp + 0x460], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x160]
push 0xff
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x160]
push str.SYSTEM32
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x61]
mov byte [esp + 0x60], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x261]
mov byte [esp + 0x260], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x361]
mov byte [esp + 0x360], bl
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [esp + 0x160]
stosw word es:[edi], ax
push 0x404b6f
push edx
lea eax, [esp + 0x68]
push str._s_s
push eax
call esi
lea ecx, [esp + 0x170]
push 0x404b7f
push ecx
lea edx, [esp + 0x278]
push str._s_s
push edx
call esi
lea eax, [esp + 0x180]
push 0x404b9f
push eax
lea ecx, [esp + 0x388]
push str._sDRIVERS_s
push ecx
call esi
lea edx, [esp + 0x90]
push 0x4044cc
push edx
call fcn.00402110
add esp, 0x38
test eax, eax
je 0x401525
push 0x4044cc
lea eax, [esp + 0x364]
push str.c:_b
lea ecx, [esp + 0x268]
push eax
lea edx, [esp + 0x6c]
push ecx
push edx
call fcn.004019b0
lea eax, [esp + 0x74]
push 0x4044cc
push eax
lea ecx, [esp + 0x47c]
push str._s__d___s_
push ecx
call esi
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x40]
add esp, 0x24
rep stosd dword es:[edi], eax
lea edx, [esp + 0xc]
lea eax, [esp + 0x1c]
push edx
push eax
push ebx
push ebx
push ebx
push 1
push ebx
lea ecx, [esp + 0x47c]
push ebx
push ecx
push ebx
mov dword [esp + 0x70], 0x101
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
lea edx, [esp + 0x60]
lea eax, [esp + 0x460]
push edx
push str._s__s
push eax
call esi
mov ecx, dword [esp + 0x870]
lea edx, [esp + 0x46c]
push ecx
push 0x404b1f
push 0x404acf
push 0x404aaf
push edx
call fcn.00401140
add esp, 0x20
mov eax, 1
pop edi
pop esi
pop ebx
add esp, 0x854
ret
Function at 0x401570
Capabilities:
Delete file
Get common file path
Set current directory
Set file attributes

Disassembly:
sub esp, 0x110
lea eax, [esp + 0x10]
push ebx
push ebp
push esi
push edi
push 0xff
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x20]
push str.SYSTEM32
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push 0x3ff
xor ebx, ebx
push 0x4044cc
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x4016f2
mov eax, dword [esp + 0x12c]
push 0x4040c4
push 0x4040cc
push eax
call fcn.00401d80
push ebx
push 0x404938
push 0x4044cc
call fcn.00401e80
mov eax, dword [0x4040c4]
add esp, 0x18
mov ecx, 0x404aaf
cmp eax, 1
mov dword [0x4040c8], ecx
jne 0x40165e
mov eax, dword [0x4040cc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x4012f0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov esi, 0x40403c
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401641
cmp cl, bl
je 0x40163d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401641
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40161d
xor eax, eax
jmp 0x401646
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4016f2
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
mov eax, dword [0x4040c4]
cmp eax, ebx
jne 0x40167b
push 1
call fcn.004013b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0x10
cmp eax, 2
jne 0x4016f2
mov eax, dword [0x4040cc]
mov esi, 0x40406c
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4016ae
cmp cl, bl
je 0x4016aa
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4016ae
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40168a
xor eax, eax
jmp 0x4016b3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4016f2
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov ebp, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
mov eax, dword [0x4040d0]
push 0x80
push eax
call ebx
mov ecx, dword [0x4040d0]
push ecx
call ebp
test eax, eax
jne 0x4016f2
push 0x3e8
call edi
inc esi
cmp esi, 0xa
jl 0x4016cb
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x110
ret 0x10

Function at 0x401760
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, dword [esp + 0x10]
test edi, edi
jle 0x401782
mov cl, byte [esp + 0x14]
mov eax, dword [esp + 8]
push esi
mov esi, dword [esp + 0x10]
mov dl, byte [esi]
xor dl, cl
mov byte [eax], dl
inc eax
inc esi
dec edi
jne 0x401776
pop esi
pop edi
ret
Function at 0x401790
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x29c
mov eax, dword [esp + 0x2a0]
push ebx
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 8], ebx
jne 0x4017cc
xor eax, eax
pop ebx
add esp, 0x29c
ret
push ebp
mov ebp, dword [esp + 0x2ac]
push esi
push edi
test ebp, ebp
jne 0x4017fc
mov edx, dword [esp + 0x2bc]
mov eax, dword [esp + 0x2b8]
lea ecx, [esp + 0x10]
push ebp
push ecx
push edx
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x40198b
mov eax, dword [esp + 0x2c0]
test eax, eax
je 0x401935
xor ecx, ecx
lea edx, [esp + 0x18]
mov dword [esp + 0x1a], ecx
push edx
mov dword [esp + 0x22], ecx
mov word [esp + 0x1c], 0
mov dword [esp + 0x26], ecx
mov word [esp + 0x2a], cx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1a]
mov edx, dword [esp + 0x18]
and eax, 0xffff
and ecx, 0xffff
and edx, 0xffff
add eax, ecx
mov ecx, dword [esp + 0x26]
add eax, edx
and ecx, 0xffff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x22]
mov ecx, dword [esp + 0x1e]
and eax, 0xffff
add edx, eax
and ecx, 0xffff
lea edx, [edx + ecx + 0xa]
push edx
call fcn.004020ab
mov ecx, 0x9f
xor eax, eax
lea edi, [esp + 0x31]
mov byte [esp + 0x30], 0
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x2c0]
mov ecx, dword [esp + 0x2bc]
stosw word es:[edi], ax
stosb byte es:[edi], al
mov al, byte [ebp]
lea edx, [esp + 0x30]
push eax
push esi
push ecx
push edx
call fcn.00401760
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
add esp, 0x14
inc esi
push esi
push 8
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
xor edi, edi
call fcn.004020b5
and eax, 0x8000000f
jns 0x4018e1
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, dword [str.0123456789ABCDEF]
inc edi
cmp edi, 0x20
mov dl, byte [eax + ecx]
mov byte [esp + edi + 0x2b], dl
jl 0x4018d0
mov al, byte [ebp]
lea ecx, [esp + 0x2c]
push eax
push 0x280
push ecx
push esi
call fcn.00401760
mov eax, dword [esp + 0x24]
add esp, 0x10
lea edx, [esp + 0x10]
push 0
push edx
push 0x280
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [esp + 0x14]
jmp 0x40198b
mov edi, dword [esp + 0x2bc]
lea ecx, [edi + 1]
push ecx
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dl, byte [ebp]
mov esi, eax
mov eax, dword [esp + 0x2b8]
push edx
push edi
push eax
push esi
call fcn.00401760
add esp, 0x10
lea ecx, [esp + 0x10]
push 0
push ecx
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test esi, esi
je 0x40198b
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x29c
ret
Function at 0x401e80
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x78c
mov eax, dword [esp + 0x790]
push ebp
push esi
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x401fa1
lea ecx, [esp + 0xc]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x401f9a
cmp ebp, 0x280
jb 0x401f9a
mov eax, dword [esp + 0x7a0]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
test eax, eax
jne 0x401f28
mov ecx, 0x13f
xor eax, eax
lea edi, [esp + 0x29d]
mov byte [esp + 0x29c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x14]
push 0
stosb byte es:[edi], al
push edx
lea eax, [esp + 0x2a4]
push 0x500
push eax
push esi
call ebx
mov cl, byte [esp + 0x6b8]
mov byte [esp + 0x10], cl
jmp 0x401f2e
mov dl, byte [eax]
mov byte [esp + 0x10], dl
xor eax, eax
add ebp, 0xfffffd80
push eax
mov ecx, 0xa0
lea edi, [esp + 0x1d]
push eax
mov byte [esp + 0x20], 0
push ebp
rep stosd dword es:[edi], eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [esp + 0x14]
push 0
push eax
lea ecx, [esp + 0x20]
push 0x280
push ecx
push esi
call ebx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x7a4]
push edx
lea eax, [esp + 0x1c]
push 0x280
push eax
push ecx
call fcn.00401760
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop ebx
pop esi
mov eax, 1
pop ebp
add esp, 0x78c
ret
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
xor eax, eax
pop ebp
add esp, 0x78c
ret

Function at 0x401fb0
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov al, byte [esi]
cmp al, 0x22
jne 0x401fd9
mov al, byte [esi + 1]
inc esi
test al, al
je 0x401fd1
cmp al, 0x22
jne 0x401fc5
cmp byte [esi], 0x22
jne 0x401fe3
inc esi
jmp 0x401fe3
cmp al, 0x20
jle 0x401fe3
inc esi
cmp byte [esi], 0x20
jg 0x401fdd
mov al, byte [esi]
test al, al
je 0x401fed
cmp al, 0x20
jle 0x401fd6
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.0040205d
push 0x404004
push section..data
call fcn.00402043
test byte [ebp - 0x18], 1
pop ecx
pop ecx
je 0x40201d
movzx eax, word [ebp - 0x14]
jmp 0x402020
push 0xa
pop eax
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
mov esi, eax
call fcn.00402075
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x1000567b
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x424
mov eax, 0x1001ae0c
call fcn.1001a6e0
mov eax, dword [ebp + 0xc]
xor esi, esi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x428], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x430], esi
mov dword [ebp - 0x418], esi
push 0x60
push esi
push ebx
mov byte [ebp - 4], 1
call dword [sym.imp.kernel32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x424], edi
test edi, edi
jne 0x100056f8
push 2
push esi
push ebx
call dword [sym.imp.kernel32.dll_LoadLibraryExW]
mov edi, eax
mov dword [ebp - 0x424], eax
test edi, edi
jne 0x100056f8
call fcn.10003dca
mov esi, eax
jmp 0x100057fe
push dword [ebp - 0x41c]
push dword [ebp - 0x420]
push edi
call dword [sym.imp.kernel32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
jne 0x1000571b
call fcn.10003dca
jmp 0x100057f1
push ebx
push edi
call dword [sym.imp.kernel32.dll_LoadResource]
mov dword [ebp - 0x41c], eax
test eax, eax
je 0x10005711
push ebx
push edi
call dword [sym.imp.kernel32.dll_SizeofResource]
mov ebx, eax
mov dword [ebp - 0x420], ebx
lea eax, [ebx + 1]
cmp eax, ebx
jae 0x1000574e
mov esi, 0x8007000e
jmp 0x100057f3
push 2
pop ecx
mul ecx
mov byte [ebp - 4], cl
cmp edx, esi
ja 0x1000582c
jb 0x10005769
cmp eax, 0xffffffff
ja 0x1000582c
cmp eax, 0x400
jbe 0x1000577e
push eax
lea ecx, [ebp - 0x418]
call fcn.10006d4c
jmp 0x100057a0
lea eax, [ebp - 0x414]
mov dword [ebp - 0x418], eax
jmp 0x100057a0
mov dword [ebp - 4], 1
cmp dword [ebp - 0x418], 0
je 0x10005744
push ebx
push dword [ebp - 0x418]
push ebx
push dword [ebp - 0x41c]
push esi
push 3
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
je 0x10005711
mov eax, dword [ebp - 0x418]
xor edx, edx
push dword [ebp + 0x14]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x430]
push dword [ebp - 0x418]
call fcn.10006d4c
mov esi, eax
test edi, edi
je 0x100057fe
push edi
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x10005817
lea ecx, [ebp - 0x418]
call fcn.10003d92
lea ecx, [ebp - 0x428]
call fcn.10004436
mov eax, esi
call fcn.1001a631
ret 0x10
push 0x80070216
call fcn.10006d4c
int3
Function at 0x10005e6b
Capabilities:
Create thread

Disassembly:
push 8
mov eax, 0x1001aed0
call fcn.1001a63e
mov ebx, edx
mov edi, ecx
mov dword [ebp - 0x10], edi
push 0x20
call fcn.10006d4c
mov esi, eax
pop ecx
test esi, esi
je 0x10005eab
and dword [esi + 4], 0
lea ecx, [esi + 8]
mov edi, ecx
xor eax, eax
push ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
and dword [esi + 0x18], 0
mov edi, dword [ebp - 0x10]
jmp 0x10005ead
xor esi, esi
mov dword [ebp - 0x10], esi
and dword [ebp - 4], 0
test esi, esi
jne 0x10005ec2
mov ebx, 0x8007000e
jmp 0x10005fa1
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
mov dword [esi], edi
test edi, edi
je 0x10005f1b
test ebx, ebx
je 0x10005f9c
cmp dword [ebp + 8], 0
jne 0x10005f9c
push ebx
mov ebx, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
call ebx
mov edi, eax
mov eax, dword [esi + 4]
cmp edi, eax
je 0x10005f15
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
je 0x10005f0f
push edi
call ebx
mov dword [esi + 4], eax
test eax, eax
je 0x10005fe5
jmp 0x10005f37
and dword [esi + 4], 0
xor eax, eax
test eax, eax
jne 0x10005f37
jmp 0x10005eb8
test ebx, ebx
jne 0x10005f9c
cmp dword [ebp + 8], ebx
je 0x10005f9c
push dword [ebp + 8]
lea eax, [esi + 8]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantChangeType]
mov ebx, eax
test ebx, ebx
js 0x10005fa1
lea ecx, [esi + 0x18]
call fcn.10006d4c
mov ebx, eax
test ebx, ebx
js 0x10005fa1
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x10005fef
mov eax, dword [ecx]
push ecx
call dword [eax + 0xbc]
lea eax, [ebp - 0x14]
push eax
push 0
push esi
push 0x10006064
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateThread]
mov edi, eax
test edi, edi
jne 0x10005f8b
call dword [sym.imp.kernel32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
jmp 0x10005f8f
xor esi, esi
xor ebx, ebx
test edi, edi
je 0x10005fa1
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x10005fa1
mov ebx, 0x80070057
or dword [ebp - 4], 0xffffffff
test esi, esi
je 0x10005fdb
mov dword [ebp - 4], 8
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x10005fc1
and dword [esi + 0x18], 0
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea ecx, [esi + 8]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push dword [esi + 4]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push esi
call fcn.10006d4c
pop ecx
mov eax, ebx
call fcn.1001a60f
ret 4
push 0x8007000e
call fcn.10006d4c
push 0
push 0x152139a
call fcn.10006d4c
int3