joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4afce4
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffb4
mov dword [esp], eax
lea esi, [esp + 0x30]
lea eax, [esp + 0xc]
push eax
call sub.kernel32.dll_GetSystemInfo
mov edi, dword [esp]
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x4afdaf
jmp 0x4afda3
cmp dword [esi + 0x10], 0x1000
jne 0x4afd8f
test byte [esi + 0x15], 1
jne 0x4afd8f
mov byte [esp + 4], 0
mov ebp, dword [esi + 0x14]
cmp ebp, 1
je 0x4afd40
cmp ebp, 2
je 0x4afd40
cmp ebp, 0x10
je 0x4afd40
cmp ebp, 0x20
jne 0x4afd5c
lea eax, [esp + 8]
push eax
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x4afd5c
mov byte [esp + 4], 1
xor ebx, ebx
jmp 0x4afd6d
mov eax, dword [esi]
add eax, ebx
call fcn.004afcdc
add ebx, dword [esp + 0x10]
cmp ebx, dword [esi + 0xc]
jb 0x4afd60
cmp byte [esp + 4], 0
je 0x4afd8f
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov edi, eax
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x4afdaf
mov eax, dword [esi + 4]
cmp eax, dword [esp]
je 0x4afd15
add esp, 0x4c
pop ebp
pop edi
pop esi
pop ebx
ret

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

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
nop
nop
mov ecx, 0x4c583af8
nop
nop
nop
nop
test eax, eax
nop
je 0x43304e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x433024
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
nop
mov ecx, 0x4b60322
nop
nop
nop
nop
nop
test eax, eax
nop
je 0x433084
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
add eax, 4
nop
cmp eax, ebx
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x40233f
Capabilities:
Terminate process

Disassembly:
push 0x14
push 0x4051f8
call fcn.00402861
push 1
call fcn.004023c2
pop ecx
test al, al
jne 0x4021e8
push 7
call fcn.00402a74
xor bl, bl
mov byte [ebp - 0x19], bl
and dword [ebp - 4], 0
call fcn.0040238d
mov byte [ebp - 0x24], al
mov eax, dword [0x40633c]
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x4021e1
test eax, eax
jne 0x402252
mov dword [0x40633c], ecx
push 0x40429c
push 0x404284
call sub.api_ms_win_crt_runtime_l1_1_0.dll__initterm_e
pop ecx
pop ecx
test eax, eax
je 0x402235
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x402339
push 0x404280
push 0x40426c
call sub.api_ms_win_crt_runtime_l1_1_0.dll__initterm
pop ecx
pop ecx
mov dword [0x40633c], 2
jmp 0x402257
mov bl, cl
mov byte [ebp - 0x19], bl
push dword [ebp - 0x24]
call fcn.0040251f
pop ecx
call fcn.00402a68
mov esi, eax
xor edi, edi
cmp dword [esi], edi
je 0x402287
push esi
call fcn.00402492
pop ecx
test al, al
je 0x402287
push edi
push 2
push edi
mov esi, dword [esi]
mov ecx, esi
call fcn.00402ca3
call esi
call fcn.00402a6e
mov esi, eax
cmp dword [esi], edi
je 0x4022a5
push esi
call fcn.00402492
pop ecx
test al, al
je 0x4022a5
push dword [esi]
call sub.api_ms_win_crt_runtime_l1_1_0.dll__register_thread_local_exe_atexit_callback
pop ecx
push edi
call sub.VCRUNTIME140.dll___telemetry_main_invoke_trigger
pop ecx
call fcn.00402b89
movzx eax, ax
push eax
call sub.api_ms_win_crt_runtime_l1_1_0.dll__get_wide_winmain_command_line
push eax
push edi
push 0x400000
call main
mov esi, eax
push edi
call sub.VCRUNTIME140.dll___telemetry_main_return_trigger
pop ecx
call fcn.00402bbc
test al, al
jne 0x4022de
push esi
call sub.api_ms_win_crt_runtime_l1_1_0.dll_exit
test bl, bl
jne 0x4022e7
call sub.api_ms_win_crt_runtime_l1_1_0.dll__cexit
push edi
push 1
call fcn.0040253c
pop ecx
pop ecx
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
jmp 0x402339
call fcn.004028a7
ret
call fcn.00402059
jmp 0x4021c9

Function at 0x54846e
Capabilities:
Encode data using xor

Disassembly:
call fcn.00549414
call fcn.00542c4a
stosd dword es:[edi], eax
xor al, byte [ecx + 0x37]
daa
ror byte [edx + edi*2], 1
cmp al, 0xd5
invalid

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x401000
Capabilities:
Create shortcut via ishelllink
Get common file path

Disassembly:
mov eax, 0x4110c8
call fcn.00410c00
sub esp, 0x210
push ebx
push esi
push edi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], esp
push eax
xor ebx, ebx
push 0x4123c8
push 1
push ebx
push 0x4123b8
mov dword [ebp - 4], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x18], ebx
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x40111b
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x18]
push edx
push 0x4123d8
mov ecx, dword [eax]
push eax
call dword [ecx]
cmp eax, ebx
jl 0x40111b
mov eax, dword [ebp - 0x14]
push dword [ebp + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
cmp eax, ebx
jl 0x40111b
lea eax, [ebp - 0x1c]
push eax
push dword [ebp + 0x10]
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, ebx
jne 0x40111b
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
cmp eax, ebx
je 0x40111b
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edi, 0x4150b8
lea eax, [ebp - 0x21c]
push edi
push eax
call esi
cmp dword [ebp + 0x10], 0x17
je 0x4010bc
cmp dword [ebp + 0x10], 2
jne 0x4010d4
lea eax, [ebp - 0x21c]
push 0x41d010
push eax
call esi
lea eax, [ebp - 0x21c]
push edi
push eax
call esi
push dword [ebp + 0xc]
lea eax, [ebp - 0x21c]
push eax
call esi
lea eax, [ebp - 0x21c]
push 0x4150b0
push eax
call fcn.00406275
mov eax, dword [ebp - 0x18]
pop ecx
pop ecx
lea edx, [ebp - 0x21c]
mov ecx, dword [eax]
push 1
push edx
push eax
call dword [ecx + 0x18]
cmp eax, ebx
jl 0x40111b
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x21c]
push 1
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x401128
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x401135
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x4028de
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x4110ec
call fcn.00410c00
sub esp, 0x214
push ebx
push esi
push edi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x10], esp
xor esi, esi
push eax
push 0x20019
push esi
push str.SoftwareDownloadManager
push 0x80000001
mov dword [ebp - 4], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x40291c
or eax, 0xffffffff
jmp 0x40297a
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0x208
push eax
lea eax, [ebp - 0x220]
push eax
push esi
push esi
push str.TempPath
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40296f
lea eax, [ebp - 0x220]
push str.DwnlData
push eax
lea eax, [ebp - 0x220]
push 0x4160bc
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x220]
push eax
call fcn.0041081f
add esp, 0x14
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x4039d1
Capabilities:
Check os version

Disassembly:
mov eax, 0x411104
call fcn.00410c00
sub esp, 0x320
push ebx
push esi
push edi
lea eax, [ebp - 0x124]
mov dword [ebp - 0x10], esp
xor edi, edi
push eax
mov dword [ebp - 4], edi
xor esi, esi
mov dword [ebp - 0x124], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x403a74
cmp dword [ebp - 0x114], 2
jne 0x403a74
cmp dword [ebp - 0x120], 6
jb 0x403a1e
push 1
pop esi
cmp dword [ebp + 8], edi
jne 0x403a2c
push edi
push edi
call fcn.0040314e
pop ecx
pop ecx
lea eax, [ebp - 0x32c]
push 0x104
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x403a74
push esi
lea eax, [ebp - 0x32c]
push dword [ebp + 8]
push eax
call fcn.004036a0
add esp, 0xc
cmp eax, edi
je 0x403a74
cmp dword [ebp + 8], edi
je 0x403a69
push edi
push 1
call fcn.0040314e
pop ecx
pop ecx
push 1
pop eax
jmp 0x403a76
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret

Function at 0x403ae1
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x11c]
xor esi, esi
push eax
mov dword [edi], esi
xor ebx, ebx
mov dword [ebp - 0x11c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x403be1
cmp dword [ebp - 0x10c], 2
jne 0x403be1
cmp dword [ebp - 0x118], 6
jb 0x403b41
push 1
pop ebx
push esi
push esi
push 3
push esi
push 3
push 0xc0000000
push str..IDMWFP
jmp 0x403b52
push esi
push esi
push 3
push esi
push 3
push 0xc0000000
push str..IDMTDI
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x403b6b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
pop eax
mov dword [edi], eax
jmp 0x403be3
call fcn.00403110
neg eax
sbb eax, eax
lea ecx, [ebp + 8]
and eax, 0x100
push ecx
add eax, 0x20019
cmp ebx, esi
push eax
mov dword [edi], esi
push esi
je 0x403b91
push str.SYSTEMCurrentControlSetServicesIDMWFP
jmp 0x403b96
push str.SYSTEMCurrentControlSetServicesIDMTDI
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, esi
jne 0x403be1
lea eax, [ebp - 8]
mov dword [ebp - 8], 4
push eax
lea eax, [ebp - 4]
push eax
push esi
push esi
push str.Start
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x403bd8
push 1
pop eax
cmp dword [ebp - 4], eax
je 0x403bd8
cmp dword [ebp - 4], 2
je 0x403bd8
mov dword [edi], eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x405d3b
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
mov eax, 0x411158
call fcn.00410c00
sub esp, 0x210
or dword [ebp - 0x14], 0xffffffff
and dword [ebp - 4], 0
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x10], esp
push edi
call esi
cmp eax, 0xffffffff
jne 0x405dfd
lea eax, [edi + 6]
push 0x5c
push eax
call sub.MSVCRT.dll_wcschr
pop ecx
mov ebx, eax
pop ecx
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
test ebx, ebx
je 0x405d9f
mov eax, ebx
sub eax, edi
sar eax, 1
jmp 0x405da6
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x21c]
push edi
push eax
call sub.MSVCRT.dll_wcsncpy
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
call esi
cmp eax, 0xffffffff
jne 0x405dee
lea eax, [ebp - 0x21c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x405dee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x14], eax
push edi
call esi
cmp eax, 0xffffffff
jne 0x405dfd
mov eax, dword [ebp - 0x14]
jmp 0x405e17
test ebx, ebx
je 0x405de1
add ebx, 2
push 0x5c
push ebx
jmp 0x405d74
push 0x4150b0
push edi
call fcn.00406275
pop ecx
xor eax, eax
pop ecx
jmp 0x405e17
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret

Function at 0x405e26
Capabilities:
Delete directory
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x66c
push ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push esi
mov esi, 0x41d424
push esi
lea eax, [ebp - 0x464]
push 0x417374
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x464]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
je 0x405ee8
lea ecx, [ebp - 0x25c]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
push ecx
push eax
call edi
and dword [ebp - 8], 0
and dword [ebp - 0xc], 0
lea eax, [ebp - 0x25c]
push eax
push dword [ebp - 4]
call edi
test eax, eax
je 0x405ec4
lea eax, [ebp - 0x230]
push eax
push esi
lea eax, [ebp - 0x66c]
push 0x4156e4
push eax
call ebx
add esp, 0x10
lea eax, [ebp - 0xc]
push 0
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x66c]
push eax
call fcn.00405ef6
jmp 0x405e83
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
pop edi
jne 0x405ee8
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push esi
call fcn.00405ef6
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
pop esi
xor eax, eax
pop ebx
leave
ret
Function at 0x406275
Capabilities:
Get file size
Write file on windows

Disassembly:
mov eax, 0x411164
call fcn.00410c00
sub esp, 0x14
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x10], esp
push esi
push esi
push 3
push esi
push 3
push 0xc0000000
push 0x41c4f8
mov dword [ebp - 4], esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0x1c], ebx
jne 0x4062b6
push 0xfffffffffffffffe
pop eax
jmp 0x4063bb
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
call edi
push dword [ebp + 0xc]
mov edx, eax
mov dword [ebp - 0x18], edx
call edi
mov ecx, dword [ebp - 0x18]
add ecx, eax
lea eax, [ecx + ecx + 2]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
mov dword [ebp - 0x18], esi
push dword [ebp + 8]
push 0x4156e4
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, esi
jbe 0x406382
push esi
push edi
push esi
push 4
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
cmp eax, esi
mov dword [ebp + 8], eax
je 0x406382
push esi
push esi
push esi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, esi
mov dword [ebp + 0xc], eax
je 0x406374
lea eax, [edi + edi + 2]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
pop ecx
cmp ebx, esi
je 0x406368
push edi
push dword [ebp + 0xc]
push ebx
call sub.MSVCRT.dll_memcpy
push dword [ebp - 0x14]
mov word [ebx + edi*2], si
push ebx
call sub.MSVCRT.dll_wcsstr
add esp, 0x14
test eax, eax
je 0x406361
mov dword [ebp - 0x18], 1
push ebx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ebx, dword [ebp - 0x1c]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x18], esi
jne 0x4063a8
push 2
push esi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x20]
push esi
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
shl eax, 1
push eax
push dword [ebp - 0x14]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push dword [ebp - 0x14]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x4063d0
Capabilities:
Write file on windows

Disassembly:
mov eax, 0x411170
call fcn.00410c00
sub esp, 0x7f4
push ebx
push esi
push edi
xor edi, edi
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], edi
je 0x40640d
push edi
lea eax, [ebp - 0x14]
push edi
push eax
push 0x400
push dword [ebp + 0xc]
push edi
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
lea eax, [ebp - 0x30]
push 0xa
push eax
push dword [ebp + 0xc]
call sub.MSVCRT.dll__itow
add esp, 0xc
cmp dword [ebp + 0x14], edi
je 0x4064e0
cmp dword [ebp + 0x10], edi
jne 0x40644a
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x800]
push dword [ebp + 8]
push str._s._Error_ID_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x406479
push dword [ebp + 0x10]
call sub.MSVCRT.dll_wcslen
cmp eax, 0x104
pop ecx
ja 0x406479
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x800]
push dword [ebp + 0x10]
push dword [ebp + 8]
push str._s.__s_Error_ID_s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push edi
push edi
push 4
push edi
push 1
push 0x10000000
push 0x41dc44
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 2
mov ebx, eax
push edi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x18]
push edi
push eax
lea eax, [ebp - 0x800]
push eax
call sub.MSVCRT.dll_wcslen
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
pop ecx
shl eax, 1
push eax
lea eax, [ebp - 0x800]
push eax
push ebx
call esi
lea eax, [ebp - 0x1c]
push edi
push eax
push dword [ebp + 0x1c]
call sub.MSVCRT.dll_wcslen
pop ecx
shl eax, 1
push eax
push dword [ebp + 0x1c]
push ebx
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x18], edi
je 0x40654a
cmp dword [ebp - 0x14], edi
je 0x4064f7
push dword [ebp - 0x14]
call sub.MSVCRT.dll_wcslen
pop ecx
mov esi, eax
jmp 0x4064f9
xor esi, esi
push dword [ebp + 8]
call sub.MSVCRT.dll_wcslen
lea eax, [eax + esi + 0x64]
add eax, eax
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
mov eax, dword [ebp - 0x14]
pop ecx
cmp eax, edi
pop ecx
jne 0x40651d
mov eax, 0x41c4f4
lea ecx, [ebp - 0x30]
push ecx
push eax
push dword [ebp + 8]
push str._s_r_n_s_r_nError_ID:__s
push esi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
push 0x10
push str.Error
push esi
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push esi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
cmp dword [ebp - 0x14], edi
je 0x406558
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
add eax, ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
Function at 0x407831
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ax, word [ebp + 8]
push ebx
push esi
mov esi, ecx
push edi
and dword [esi + 0x38], 0
mov word [esi + 0x18], ax
call fcn.004078e0
mov ax, word [esi + 0x18]
cmp ax, 9
je 0x40789b
mov ebx, dword [esi + 4]
xor ecx, ecx
test ebx, ebx
jle 0x40789b
movzx edi, ax
mov eax, dword [esi + 8]
lea edx, [eax + 0x24]
cmp dword [edx], edi
je 0x407874
inc ecx
add edx, 0x28
cmp ecx, ebx
jl 0x407866
jmp 0x40789b
lea edi, [ecx + ecx*4]
mov dword [esi + 0x38], 1
shl edi, 3
lea ecx, [esi + 0x1c]
push dword [eax + edi]
call fcn.0040754e
mov eax, dword [esi + 8]
lea ecx, [esi + 0x28]
push dword [eax + edi + 0xc]
call fcn.0040754e
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
je 0x4078c7
mov eax, dword [esi + 0x3c]
cmp eax, ecx
je 0x4078d2
movzx edx, word [esi + 0x18]
mov dword [ebp + 8], edx
lea edx, [ebp + 8]
push 4
push edx
push 4
push ecx
push str.LanguageID
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x4078d2
cmp dword [esi + 0x38], ecx
jne 0x4078d2
mov word [esi + 0x18], 9
mov ecx, esi
call fcn.004081a1
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x40b655
Capabilities:
Create thread
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x45c
call fcn.0040beea
mov eax, dword [0x41cdd8]
test eax, eax
jne 0x40b671
mov eax, 0x41cddc
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0x40cfe1
push 0x6b
push eax
push ebx
call fcn.0040b976
add esp, 0x10
lea eax, [ebp - 0x45c]
push 0x41d424
push 0x417374
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x45c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov edi, eax
lea eax, [ebp - 0x254]
push eax
push edi
call esi
and dword [0x41de64], 0
lea eax, [ebp - 0x254]
push eax
push edi
call esi
test eax, eax
je 0x40b6eb
mov eax, dword [ebp - 0x234]
add dword [0x41de64], eax
jmp 0x40b6cf
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 4]
xor esi, esi
push eax
push esi
push dword [ebx]
push 0x404512
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, esi
mov dword [0x41de74], eax
jne 0x40b72f
push 0x4150b0
push 1
push 1
push esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_call_CreateThread_in_ShowInstalling
call fcn.004063d0
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret

Function at 0x40b81a
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword [0x41cfd8]
test eax, eax
jne 0x40b828
mov eax, 0x41cfdc
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
push 0x40cfe1
push 0x72
push eax
push esi
call fcn.0040b976
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 0x10
push 0x3f0
push dword [esi]
call edi
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push eax
call ebx
push 0x3f1
push dword [esi]
call edi
push 5
push eax
call ebx
pop edi
pop esi
xor eax, eax
pop ebx
ret
Function at 0x40b86e
Capabilities:
Create thread
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
lea eax, [ebp - 4]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, 0xf003f
push eax
xor esi, esi
push ebx
push esi
push str.SoftwareDownloadManagerConfigTime
push 0x80000001
call edi
test eax, eax
jne 0x40b8be
lea eax, [ebp - 0xc]
or dword [ebp - 0xc], 0xffffffff
push 4
push eax
push 4
push esi
push 0x41c4f4
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 8]
push eax
push ebx
push esi
push str.SoftwareInternet_Download_Manager
push 0x80000002
call edi
push 1
test eax, eax
pop ebx
jne 0x40b8fa
lea eax, [ebp - 0xc]
push 4
push eax
push 4
push esi
push str.InstallStatus
push dword [ebp - 8]
mov dword [ebp - 0xc], ebx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.0040beea
mov eax, dword [0x41cfd8]
cmp eax, esi
jne 0x40b90d
mov eax, 0x41cfdc
mov edi, dword [ebp + 8]
push 0x40cfe1
push 0x73
push eax
push edi
call fcn.0040b976
add esp, 0x10
push 0x3ef
push dword [edi]
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea eax, [ebp - 0x10]
push eax
push esi
push dword [edi]
push 0x40d5ac
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, esi
mov dword [0x41de78], eax
jne 0x40b96f
push 0x4150b0
push ebx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_call_CreateThread_in_uninstaller
call fcn.004063d0
add esp, 0x18
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret