joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5650e8
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404be0
mov eax, dword [ebp - 8]
call fcn.00404be0
xor eax, eax
push ebp
push 0x5651b2
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x56518d
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
mov eax, dword [ebp - 8]
call fcn.004092a0
test al, al
je 0x565151
mov eax, dword [ebp - 8]
call fcn.00565038
mov eax, dword [ebp - 8]
call fcn.004092a0
test al, al
je 0x565151
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x565197
push 0
mov eax, dword [ebp - 8]
call fcn.00404bf0
push eax
mov eax, dword [ebp - 4]
call fcn.00404bf0
push eax
call sub.KERNEL32.DLL_CopyFileA
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 9], al
mov eax, dword [ebp - 8]
call fcn.004092a0
test al, al
jne 0x565183
mov byte [ebp - 9], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x565197
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5651b9
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404748
ret

Function at 0x56687c
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
test dl, dl
je 0x566891
add esp, 0xfffffff0
call fcn.00403c98
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00423af4
xor eax, eax
push ebp
push 0x566974
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov dword [eax + 0x30], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x34], 0xa
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x3d], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x3e], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x3f], 1
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x44], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x48], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x49], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c], 8
mov eax, dword [ebp - 4]
mov byte [eax + 0x50], 0
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x58], 0x7a
mov eax, dword [ebp - 4]
mov dword [eax + 0x60], 1
mov eax, dword [ebp - 4]
add eax, 0x5c
call fcn.00404724
mov eax, dword [ebp - 4]
add eax, 0x64
call fcn.00404724
mov eax, dword [ebp - 4]
add eax, 0x68
call fcn.00404724
mov eax, dword [ebp - 4]
mov byte [eax + 0x6c], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x6d], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x6e], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56697e
mov eax, dword [ebp - 4]
cmp byte [ebp - 5], 0
je 0x566996
call fcn.00403cf0
pop dword fs:[0]
add esp, 0xc
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret
Function at 0x566aec
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
xor edx, edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x566bc8
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x566bab
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00404724
mov eax, 0x104
call fcn.00409918
mov ebx, eax
push ebx
push 0x104
call sub.KERNEL32.DLL_GetTempPathA
mov eax, dword [ebp - 4]
mov edx, ebx
call fcn.00404914
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004049f8
mov edx, dword [ebp - 4]
mov edx, dword [edx]
cmp byte [edx + eax - 1], 0x5c
je 0x566b66
mov eax, dword [ebp - 4]
mov edx, 0x566bdc
call fcn.00404a00
mov eax, dword [ebp - 4]
mov eax, ebx
call fcn.00409964
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x566bb2
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x566b90
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.004092b0
test al, al
jne 0x566baa
lea edx, [ebp - 8]
mov eax, dword [0x570610]
mov eax, dword [eax]
call fcn.00466404
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.00409580
ret

Function at 0x569bb0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov esi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00404be0
xor eax, eax
push ebp
push 0x569c51
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x569c29
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x569c6c
push dword [ebp - 4]
push 0x569c6c
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404ab8
push esi
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.00404bf0
push eax
push 0x569c70
push ebx
call sub.shell32.dll_ShellExecuteA
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x569c33
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x569c58
lea eax, [ebp - 0xc]
call fcn.00404724
lea eax, [ebp - 4]
call fcn.00404724
ret
Function at 0x4013da
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [ebp + 8]
mov esi, ecx
lea ecx, [esi + 8]
call fcn.00401748
push dword [ebp + 0xc]
lea edi, [esi + 0xc]
mov ecx, edi
call fcn.0040154d
push 0x5c
mov ecx, edi
call fcn.004015ea
lea eax, [ebp - 4]
xor edi, edi
push eax
push edi
push esi
push 0x4014af
push edi
push edi
mov dword [0x41c208], esi
mov dword [0x41c210], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp dword [0x41c26c], 2
mov dword [0x41c20c], eax
je 0x401437
call fcn.0040738d
push 0xffffffffffffffff
push dword [0x41c20c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x41c210]
mov dword [0x41c278], edi
cmp eax, edi
je 0x40148a
mov ecx, eax
dec ecx
je 0x40147e
dec ecx
je 0x40147a
dec ecx
je 0x401476
push eax
push 0x14
push edi
call fcn.0040723f
add esp, 0xc
mov eax, 0x80004005
pop edi
pop esi
leave
ret 8
push 0x12
jmp 0x401480
push 0x13
jmp 0x401480
push 0x11
push edi
call fcn.0040723f
pop ecx
pop ecx
jmp 0x40146b
cmp dword [0x41c27c], edi
jne 0x40146b
lea eax, [ebp + 8]
push eax
push dword [0x41c20c]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x40146b
cmp dword [ebp + 8], edi
jne 0x40146b
xor eax, eax
jmp 0x401470

Function at 0x401939
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
push esi
mov esi, dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x401955
xor eax, eax
jmp 0x4019a4
mov eax, dword [0x41c270]
test eax, eax
je 0x401991
cmp eax, 2
jne 0x4019a1
lea eax, [ebp - 0x250]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
je 0x401991
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
push dword [ebp + 0xc]
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jge 0x4019a1
push esi
call fcn.004023a9
neg eax
sbb eax, eax
pop ecx
neg eax
dec eax
jmp 0x4019a4
push 1
pop eax
pop esi
leave
ret

Function at 0x4019a7
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push 0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4019da
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4019d7
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4019da
test al, 0x10
jne 0x4019da
xor eax, eax
ret
push 1
pop eax
ret
Function at 0x4019de
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x415000
call fcn.00414bc0
sub esp, 0xc
push ebx
push esi
push edi
xor ebx, ebx
push 0xf
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call fcn.004016a5
cmp dword [ebp - 0x10], 1
mov dword [ebp - 4], ebx
jg 0x401a16
push 2
lea ecx, [ebp - 0x18]
call fcn.004016a5
mov edi, dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push 1
push dword [ebp - 0x18]
mov eax, dword [edi]
push eax
call esi
cmp eax, ebx
je 0x401a72
lea ebx, [eax + 1]
cmp ebx, dword [ebp - 0x10]
jl 0x401a41
lea eax, [ebx + 1]
lea ecx, [ebp - 0x18]
push eax
call fcn.004016a5
mov eax, dword [edi]
push ebx
push dword [ebp - 0x18]
push eax
call esi
mov ecx, dword [ebp - 0x18]
xor esi, esi
xor eax, eax
cmp word [ecx], si
je 0x401a60
mov edx, ecx
inc eax
inc edx
inc edx
cmp word [edx], si
jne 0x401a58
mov word [ecx + eax*2], si
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
call fcn.004015ac
push dword [ebp - 0x18]
or dword [ebp - 4], 0xffffffff
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
Function at 0x402121
Capabilities:
Get file attributes

Disassembly:
mov eax, 0x4150ec
call fcn.00414bc0
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push edi
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x10], esi
call fcn.00402bab
and dword [ebp - 4], 0
cmp dword [ebp - 0x1c], 0
jg 0x40215d
push 1
lea ecx, [ebp - 0x24]
call fcn.004016a5
mov ax, word [edi + esi*2 - 2]
mov ebx, dword [ebp - 0x24]
cmp ax, 0x5c
je 0x402171
cmp ax, 0x2f
jne 0x40217b
and word [ebx + esi*2 - 2], 0
dec esi
mov dword [ebp - 0x10], esi
push ebx
call fcn.004019a7
test eax, eax
pop ecx
jne 0x4021da
test esi, esi
jle 0x4021a5
lea eax, [ebx + esi*2]
mov cx, word [eax]
cmp cx, 0x2f
je 0x4021a3
cmp cx, 0x5c
je 0x4021a3
dec esi
dec eax
dec eax
test esi, esi
jg 0x40218d
test esi, esi
je 0x4021ae
and word [ebx + esi*2], 0
jmp 0x40217b
cmp dword [ebp - 0x10], 2
jne 0x4021d0
mov ax, word [edi]
or al, 0x20
cmp ax, 0x61
jb 0x4021d0
cmp ax, 0x7a
ja 0x4021d0
cmp word [edi + 2], 0x3a
je 0x402264
push edi
push 0xc
push 0
jmp 0x40225a
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x40224a
lea eax, [ebp - 0x18]
push eax
push ebx
call fcn.00401939
pop ecx
test eax, eax
pop ecx
je 0x40224a
xor esi, esi
jmp 0x402267
cmp esi, dword [ebp - 0x10]
jge 0x402264
mov eax, dword [ebp - 0x10]
lea edi, [ebx + esi*2]
sub eax, esi
inc eax
push eax
mov eax, dword [ebp + 8]
lea eax, [eax + esi*2]
push eax
push edi
call sub.MSVCRT.dll_memcpy
add esp, 0xc
cmp word [edi], 0
je 0x402229
inc esi
lea ecx, [ebx + esi*2]
mov ax, word [ecx]
test ax, ax
je 0x402245
cmp ax, 0x5c
je 0x402245
cmp word [ecx], 0x2f
je 0x402245
inc esi
inc ecx
inc ecx
jmp 0x40222c
and word [ebx + esi*2], 0
push ebx
call fcn.004019a7
test eax, eax
pop ecx
jne 0x402203
push ebx
push 0xc
push 1
call fcn.0040723f
add esp, 0xc
jmp 0x4021ff
push 1
pop esi
push dword [ebp - 0x24]
or dword [ebp - 4], 0xffffffff
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
Function at 0x402285
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
mov eax, 0x415100
call fcn.00414bc0
sub esp, 0x25c
push ebx
push esi
push edi
lea ecx, [ebp - 0x18]
push dword [ebp + 8]
call fcn.00402bab
and dword [ebp - 4], 0
push 0x41b090
lea ecx, [ebp - 0x18]
call fcn.00402c0c
lea eax, [ebp - 0x268]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edi, eax
cmp edi, 0xffffffff
je 0x40236c
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpW]
push dword [ebp + 8]
lea ecx, [ebp - 0x18]
call fcn.0040154d
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.004015ea
lea eax, [ebp - 0x23c]
lea ecx, [ebp - 0x18]
push eax
call fcn.00402c0c
test byte [ebp - 0x268], 0x10
je 0x402337
lea eax, [ebp - 0x23c]
push 0x41b08c
push eax
call ebx
test eax, eax
je 0x40234f
lea eax, [ebp - 0x23c]
push 0x41b084
push eax
call ebx
test eax, eax
je 0x40234f
push dword [ebp - 0x18]
call fcn.00402285
pop ecx
jmp 0x40234b
push 0
push dword [ebp - 0x18]
call esi
test eax, eax
je 0x402389
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x402389
lea eax, [ebp - 0x268]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x4022db
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
push 0
push dword [ebp + 8]
call esi
test eax, eax
je 0x402389
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x402389
push 1
pop esi
jmp 0x40238b
xor esi, esi
push dword [ebp - 0x18]
or dword [ebp - 4], 0xffffffff
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret

Function at 0x4023a9
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
cmp dword [0x41c298], 0
push esi
jne 0x4023c3
mov esi, dword [esp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4023c8
push 1
pop eax
pop esi
ret
test al, 0x10
jne 0x4023e6
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x4023e2
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop esi
ret
xor eax, eax
pop esi
ret
push esi
call fcn.00402285
pop ecx
pop esi
ret
Function at 0x402fe8
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x41b0f0]
push edi
xor edi, edi
test eax, eax
je 0x40300c
mov ecx, 0x41b0f0
cmp eax, dword [ebp + 8]
je 0x40300c
mov eax, dword [ecx + 0x10]
add ecx, 0x10
inc edi
test eax, eax
jne 0x402ffc
shl edi, 4
mov eax, dword [edi + 0x41b0fc]
test eax, eax
jne 0x4030d0
cmp dword [0x41b2d4], 0xffffffff
jne 0x403031
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [0x41b2d4], eax
cmp word [0x41b2d0], 0xffff
jne 0x403048
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [0x41b2d0], ax
mov ax, word [0x41b2d8]
cmp ax, 0xffff
jne 0x40305f
call fcn.00402b55
mov word [0x41b2d8], ax
mov ecx, dword [edi + 0x41b0f8]
and dword [ebp + 8], 0
push ebx
mov ebx, dword [edi + 0x41b0f4]
test ecx, ecx
push esi
je 0x40309b
mov edx, 0x419
cmp dword [0x41b2d4], edx
je 0x403090
cmp word [0x41b2d0], dx
je 0x403090
cmp ax, dx
jne 0x40309b
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [ebp + 8], eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi + 4]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [edi + 0x41b0fc], eax
lea ecx, [esi + 1]
push ecx
push eax
push esi
push ebx
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [edi + 0x41b0fc]
pop esi
pop ebx
pop edi
pop ebp
ret
Function at 0x40334c
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
mov eax, 0x415223
call fcn.00414bc0
sub esp, 0x18
push ebx
push esi
push edi
xor ebx, ebx
push 0xf
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
call fcn.004016a5
cmp dword [ebp - 0x1c], 2
push 1
pop edi
mov dword [ebp - 4], edi
jg 0x40338a
push 3
lea ecx, [ebp - 0x24]
call fcn.004016a5
push dword [ebp - 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_GetTempPathW]
push edi
call esi
mov ecx, dword [ebp - 0x24]
mov word [ecx], bx
xor ecx, ecx
cmp eax, ebx
mov dword [ebp - 0x20], ecx
jbe 0x4033dd
lea edi, [eax + 1]
cmp edi, dword [ebp - 0x1c]
jl 0x4033b9
lea eax, [edi + 1]
lea ecx, [ebp - 0x24]
push eax
call fcn.004016a5
push dword [ebp - 0x24]
push edi
call esi
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp word [eax], bx
je 0x4033d3
mov edx, eax
inc ecx
inc edx
inc edx
cmp word [edx], bx
jne 0x4033cb
push 1
mov word [eax + ecx*2], bx
mov dword [ebp - 0x20], ecx
pop edi
lea eax, [ecx + 0xf]
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], eax
lea esi, [ecx + ecx]
jmp 0x4033ee
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jl 0x4033fd
inc eax
lea ecx, [ebp - 0x24]
push eax
call fcn.004016a5
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
add eax, esi
push dword [ebp + 0xc]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [ebp - 0x24]
add esp, 0xc
xor eax, eax
cmp word [ecx], bx
je 0x403426
mov edx, ecx
inc eax
inc edx
inc edx
cmp word [edx], bx
jne 0x40341e
mov word [ecx + eax*2], bx
push dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x403447
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xfff
jl 0x4033eb
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x24]
push eax
call fcn.0040150a
mov dword [ebp - 0x18], edi
push dword [ebp - 0x24]
mov byte [ebp - 4], bl
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 8]
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret

Function at 0x4034aa
Capabilities:
Set environment variable

Disassembly:
mov eax, 0x415238
call fcn.00414bc0
sub esp, 0xc
push esi
xor esi, esi
cmp dword [0x41c220], esi
jle 0x40350e
mov eax, dword [0x41c224]
lea ecx, [ebp - 0x18]
mov eax, dword [eax + esi*4]
add eax, 0xc
push eax
call fcn.0040150a
and dword [ebp - 4], 0
lea eax, [ebp - 0x18]
push eax
call fcn.0040348f
mov eax, dword [0x41c224]
pop ecx
push dword [ebp - 0x18]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push dword [ebp - 0x18]
or dword [ebp - 4], 0xffffffff
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
inc esi
pop ecx
cmp esi, dword [0x41c220]
jl 0x4034c2
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
leave
ret
Function at 0x405d35
Capabilities:
Inspect load icon resource

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 8]
and eax, 3
sub eax, ebx
je 0x405dbf
dec eax
je 0x405d9b
dec eax
je 0x405d6e
dec eax
jne 0x405de9
push 0x19
call fcn.00402fe8
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.0040606e
push 0x1a
jmp 0x405dd6
push 0x1a
call fcn.00402fe8
pop ecx
mov edi, 0x4b4
push eax
push edi
mov ecx, esi
call fcn.0040606e
push ebx
push 0x4b3
mov ecx, esi
call fcn.00405f7b
push edi
mov ecx, esi
call fcn.00405b7a
jmp 0x405de9
push 0x19
call fcn.00402fe8
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.0040606e
push ebx
push 0x4b4
mov ecx, esi
call fcn.00405f7b
jmp 0x405de9
push 0x1b
call fcn.00402fe8
pop ecx
push eax
push 0x4b3
mov ecx, esi
call fcn.0040606e
push 0x1c
call fcn.00402fe8
pop ecx
push eax
push 0x4b4
mov ecx, esi
call fcn.0040606e
mov eax, dword [esi + 8]
mov ebp, dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [sym.imp.USER32.dll_LoadIconW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
and eax, 0x1c
cmp eax, 4
je 0x405e2c
cmp eax, 8
je 0x405e23
cmp eax, 0xc
je 0x405e1c
cmp eax, 0x10
jne 0x405e62
push 0x7f04
jmp 0x405e28
push 0x7f01
jmp 0x405e28
push 0x7f02
push 0
jmp 0x405e33
push 0x65
push 0
call ebx
push eax
call edi
test eax, eax
mov dword [esp + 0x10], eax
je 0x405e62
push 0x4b1
mov dword [esi + 0x30], 1
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push dword [esp + 0x10]
push 1
push 0x172
push eax
call ebp
jmp 0x405e74
and dword [esi + 0x30], 0
push 0
push 0x4b1
mov ecx, esi
call fcn.00405f7b
test byte [0x41b925], 2
jne 0x405ecf
push 0x65
push 0
call ebx
push eax
call edi
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
push 0x32
mov dword [esp + 0x18], eax
call edi
push eax
push 0x31
call edi
push eax
push 1
push 0x65
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_LoadImageW]
mov ebx, eax
test ebx, ebx
jne 0x405eb5
mov ebx, dword [esp + 0x10]
push dword [esp + 0x10]
mov edi, 0x80
push 1
push edi
push dword [esi + 4]
call ebp
push ebx
push 0
push edi
push dword [esi + 4]
call ebp
push dword [esi + 0xc]
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push dword [esi + 0x10]
push 0x4b2
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
test byte [0x41b924], 8
jne 0x405efc
mov ecx, esi
call fcn.004063b8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
Function at 0x406538
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4d0
push esi
push edi
lea eax, [ebp - 0x10]
mov edi, 0x4b6
push eax
mov esi, ecx
push edi
call fcn.00405f12
mov eax, dword [ebp - 4]
push 1
sub eax, dword [ebp - 0xc]
push edi
mov ecx, esi
inc eax
inc eax
mov dword [esi + 0x40], eax
call fcn.00405f7b
inc edi
push 1
push edi
mov ecx, esi
call fcn.00405f7b
lea eax, [ebp - 0x21c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x103
lea eax, [ebp - 0x4d0]
push 0x2b4
push eax
lea eax, [ebp - 0x21c]
push 0
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [ebp - 0x4d0]
push edi
push dword [esi + 4]
mov dword [esi + 0x38], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0x4066da
push 0xfffffffffffffffc
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov ecx, esi
mov dword [esi + 0x3c], eax
call fcn.00405d35
pop edi
pop esi
leave
ret

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

Disassembly:
push esi
push edi
xor edx, edx
mov ecx, 0x41c4c0
push 8
mov eax, edx
pop esi
mov edi, eax
and edi, 1
dec edi
not edi
and edi, 0xedb88320
shr eax, 1
xor eax, edi
dec esi
jne 0x40774f
mov dword [ecx], eax
add ecx, 4
inc edx
cmp ecx, 0x41c8c0
jb 0x40774a
pop edi
pop esi
ret

Function at 0x407775
Capabilities:
Encode data using xor

Disassembly:
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 4]
test edx, edx
jbe 0x4077a2
push esi
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x41c4c0]
xor eax, esi
inc ecx
dec edx
jne 0x407783
pop edi
pop esi
ret 4

Function at 0x40d7ff
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, 0x415e1b
call fcn.00414bc0
push ecx
push ebx
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [ebp - 0x10], esi
mov dword [esi], eax
mov dword [ebp - 4], eax
mov dword [esi + 4], eax
mov ecx, dword [ebp + 8]
push 8
mov dword [esi + 8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0xc], ecx
lea ecx, [esi + 0x10]
pop edi
mov edx, 0x4175a0
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edi
mov dword [ecx], edx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
mov dword [esi + 0x24], edx
lea ebx, [esi + 0x38]
mov edx, 0x4175c8
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], 4
mov dword [ebx], edx
lea edi, [esi + 0x4c]
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 4
mov dword [edi], edx
push dword [esi + 8]
mov byte [ebp - 4], 5
call fcn.0040f4f9
push dword [esi + 8]
mov ecx, ebx
call fcn.0040f4f9
push dword [esi + 0xc]
mov ecx, edi
call fcn.0040f4f9
push dword [esi + 0xc]
mov ecx, edi
call fcn.0040f4f9
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8