joyce8/EMBER2024-capa huggingface dataset:
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 0x4031be
Capabilities:
Get common file path

Disassembly:
mov eax, 0x4151e4
call fcn.00414bc0
sub esp, 0x2a4
push ebx
push esi
push edi
push 3
call fcn.00402fe8
push 2
mov dword [0x41c268], eax
call fcn.00402fe8
push 5
mov dword [0x41c264], eax
call fcn.00402fe8
push 0x15
mov dword [0x41c260], eax
call fcn.00402fe8
push 0x16
mov dword [0x41c25c], eax
call fcn.00402fe8
push 0x17
mov dword [0x41c258], eax
call fcn.00402fe8
xor edi, edi
add esp, 0x18
mov dword [0x41c254], eax
mov dword [0x41c24c], edi
mov dword [0x41c250], edi
xor ebx, ebx
mov esi, 0x41c218
push edi
lea eax, [ebp - 0x2b0]
push ebx
push eax
push edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4032eb
push ebx
lea eax, [ebp - 0xa4]
push str.7zSfxFolder_02d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x24]
call fcn.00403304
lea eax, [ebp - 0xa4]
lea ecx, [ebp - 0x24]
push eax
mov dword [ebp - 4], edi
call fcn.0040154d
lea eax, [ebp - 0x2b0]
lea ecx, [ebp - 0x18]
push eax
call fcn.0040154d
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.00402d6b
mov edi, 0x41b93c
cmp dword [edi - 4], ebx
jne 0x4032c1
push dword [edi]
lea ecx, [ebp - 0x24]
call fcn.0040154d
lea eax, [ebp - 0x2b0]
lea ecx, [ebp - 0x18]
push eax
call fcn.0040154d
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.00402d6b
add edi, 8
cmp edi, str.MyDocs
jb 0x403298
push dword [ebp - 0x18]
mov dword [ebp - 4], 1
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
or dword [ebp - 4], 0xffffffff
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
xor edi, edi
pop ecx
inc ebx
cmp ebx, 0x40
jl 0x403231
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
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
Function at 0x40d80b
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

Function at 0x40e5bf
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push esi
push eax
push dword [ecx]
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40e5e5
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
je 0x40e5e5
xor al, al
jmp 0x40e605
push 1
push 0
push 0
push dword [ebp - 4]
call fcn.00414d20
mov ecx, eax
xor eax, eax
add ecx, esi
adc edx, eax
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov al, 1
pop esi
leave
ret 4

Function at 0x40fce3
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0x10]
push eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push 0
push 0
call dword [sym.imp.MSVCRT.dll__beginthreadex]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
push ecx
call fcn.0040fcb1
add esp, 0x1c
pop ebp
ret
Function at 0x4137ba
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, dword [ebp + 0x14]
xor eax, eax
mov edx, dword [ecx]
and edx, 7
cmp dword [ebp + 0xc], 5
jae 0x4137d1
leave
ret
add dword [ebp + 0x10], 5
or dword [ebp - 4], 0xffffffff
push ebx
push esi
push edi
mov ecx, dword [ebp + 8]
lea esi, [eax + ecx]
mov eax, dword [ebp + 0xc]
lea edi, [ecx + eax - 4]
cmp esi, edi
jae 0x4137f8
mov al, byte [esi]
and al, 0xfe
cmp al, 0xe8
je 0x4137f8
inc esi
jmp 0x4137e9
mov eax, esi
sub eax, ecx
cmp esi, edi
mov dword [ebp - 8], eax
jae 0x4138e8
mov ecx, eax
sub ecx, dword [ebp - 4]
cmp ecx, 3
jbe 0x41382d
xor edx, edx
mov cl, byte [esi + 4]
mov dword [ebp - 4], eax
test cl, cl
je 0x41385a
cmp cl, 0xff
je 0x41385a
and edx, 3
shl edx, 1
or edx, 1
inc eax
jmp 0x4137dc
dec ecx
shl edx, cl
and edx, 7
je 0x413813
movzx ecx, byte [edx + 0x4179e0]
mov edi, esi
sub edi, ecx
cmp byte [edx + 0x4179d8], 0
mov cl, byte [edi + 4]
je 0x413855
test cl, cl
je 0x413855
cmp cl, 0xff
jne 0x413813
mov dword [ebp - 4], eax
jmp 0x413822
xor ebx, ebx
mov bh, cl
mov bl, byte [esi + 3]
movzx ecx, byte [esi + 2]
shl ebx, 8
or ebx, ecx
movzx ecx, byte [esi + 1]
shl ebx, 8
or ebx, ecx
mov edi, ebx
cmp dword [ebp + 0x18], 0
je 0x413883
lea ebx, [edi + eax]
add ebx, dword [ebp + 0x10]
jmp 0x41388a
sub edi, eax
sub edi, dword [ebp + 0x10]
mov ebx, edi
test edx, edx
je 0x4138be
movzx edi, byte [edx + 0x4179e0]
push 0x18
mov eax, ebx
shl edi, 3
pop ecx
sub ecx, edi
shr eax, cl
test al, al
je 0x4138a9
cmp al, 0xff
jne 0x4138bb
push 0x20
mov eax, dword [ebp - 8]
pop ecx
push 1
sub ecx, edi
pop edi
shl edi, cl
dec edi
xor edi, ebx
jmp 0x413875
mov eax, dword [ebp - 8]
mov ecx, ebx
mov byte [esi + 1], bl
shr ecx, 0x18
and cl, 1
dec cl
not cl
mov byte [esi + 4], cl
mov ecx, ebx
shr ecx, 0x10
mov byte [esi + 3], cl
mov ecx, ebx
shr ecx, 8
mov byte [esi + 2], cl
add eax, 5
jmp 0x4137dc
mov esi, eax
push 3
sub esi, dword [ebp - 4]
pop edi
lea ecx, [esi - 1]
shl edx, cl
and edx, 7
cmp edi, esi
sbb ecx, ecx
pop edi
not ecx
and ecx, edx
mov edx, dword [ebp + 0x14]
pop esi
pop ebx
mov dword [edx], ecx
leave
ret

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

Disassembly:
pushal
nop
call 0x43100c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x403e6a
sub eax, 0x403e10
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x431030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43101e
nop
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp loc.00401219