joyce8/EMBER2024-capa huggingface dataset:
Function at 0x410d30
Capabilities:
Encrypt data using rc4 via winapi
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x8003
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x410dc1
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410d63
push 0
sub ecx, edx
push ecx
push edi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x410dc1
lea eax, [ebp - 0xc]
push eax
push 0x800000
push dword [ebp - 8]
push 0x6801
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
je 0x410dc1
mov eax, dword [ebp - 8]
test eax, eax
je 0x410dad
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
test eax, eax
je 0x410dc1
mov eax, dword [ebp - 0xc]
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
pop edi
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 8

Function at 0x411000
Capabilities:
Check if file exists
Delete file
Extract resource via kernel32 functions
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
push 0x4efca0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov ebx, eax
test ebx, ebx
je 0x41109c
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push ebx
push edi
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push esi
mov edi, eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x41105d
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0
push 0x80
push 1
push 0
push 1
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x41109c
push 0
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push edi
push dword [ebp - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4115f0
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x108]
push 0x104
push 0
push eax
call fcn.004c0a60
add esp, 0xc
cmp dword [esi + 0x10], 0
jbe 0x411682
cmp dword [esi + 0x14], 0x10
jb 0x41162b
mov esi, dword [esi]
movsx eax, byte [esi]
push eax
lea eax, [ebp - 0x108]
push str._c:_
push eax
call fcn.0040f1b0
add esp, 0xc
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x110]
xor ecx, ebp
mov edx, dword [ebp - 0x10c]
pop esi
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 4
call fcn.00403750
int3
Function at 0x4119f0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ea6bd
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
test esi, esi
je 0x411be3
cmp byte [esi], 0
je 0x411be3
push 0x5c
push esi
call fcn.004c1250
mov edi, eax
add esp, 8
test edi, edi
je 0x411be3
mov ecx, esi
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411a61
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00403ee0
sub edi, esi
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
lea eax, [edi + 1]
push eax
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.00403110
mov edi, eax
lea eax, [ebp - 0x28]
cmp eax, edi
je 0x411ac4
mov ecx, eax
call fcn.004043a0
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
lea ecx, [ebp - 0x58]
call fcn.004043a0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
je 0x411bd2
cmp eax, 5
je 0x411bd2
push esi
lea ecx, [ebp - 0x58]
call fcn.00403470
push 0xffffffffffffffff
push dword [ebp - 0x60]
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x58]
call fcn.00403110
push eax
lea ecx, [ebp - 0x58]
call fcn.004033f0
lea ecx, [ebp - 0x40]
call fcn.004043a0
push 8
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x40]
push 0x4efc8c
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.00403ee0
mov ecx, dword [ebp - 0x30]
or eax, 0xffffffff
xor esi, esi
mov byte [ebp - 4], 2
test ecx, ecx
je 0x411bae
mov edx, dword [ebp - 0x48]
nop word [eax + eax]
cmp ecx, esi
jbe 0x411c02
cmp dword [ebp - 0x2c], 0x10
lea eax, [ebp - 0x40]
lea edi, [ebp - 0x58]
cmovae eax, dword [ebp - 0x40]
cmp dword [ebp - 0x44], 0x10
cmovae edi, dword [ebp - 0x58]
mov al, byte [eax + esi]
test edx, edx
je 0x411ba3
push edx
movsx eax, al
push eax
push edi
call fcn.004c1380
add esp, 0xc
test eax, eax
je 0x411ba0
sub eax, edi
jns 0x411bae
mov ecx, dword [ebp - 0x30]
jmp 0x411ba6
mov ecx, dword [ebp - 0x30]
or eax, 0xffffffff
mov edx, dword [ebp - 0x48]
inc esi
cmp esi, ecx
jb 0x411b60
cmp eax, 0xffffffff
lea ecx, [ebp - 0x40]
sete byte [ebp - 0x59]
call fcn.004043a0
lea ecx, [ebp - 0x58]
call fcn.004043a0
lea ecx, [ebp - 0x28]
call fcn.004043a0
mov al, byte [ebp - 0x59]
jmp 0x411be5
lea ecx, [ebp - 0x28]
mov byte [ebp - 0x59], 0
call fcn.004043a0
mov al, byte [ebp - 0x59]
jmp 0x411be5
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 4
call fcn.00403750
int3
Function at 0x411ff0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ea77d
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov ecx, esi
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412042
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00403ee0
mov ecx, edi
mov dword [ebp - 4], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412061
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x28]
call fcn.00403390
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0x3c
cmovae eax, dword [ebp - 0x28]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x64]
push eax
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x30], xmm0
mov dword [ebp - 0x60], 0x440
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4120de
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x41210e
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x412104
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41212c
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 0xc
call fcn.004c8fd6
int3
Function at 0x416d10
Capabilities:
Create thread

Disassembly:
push esi
push 0
push 0
mov esi, ecx
push esi
push 0x416b00
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x1c], eax
pop esi
ret
Function at 0x416d30
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
lea eax, [ebp - 8]
push eax
push dword [ebx + 0x1c]
call edi
test eax, eax
je 0x416d67
cmp dword [ebp - 8], 0x103
jne 0x416d6d
push 0x64
call esi
jmp 0x416d51
mov eax, dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
mov dword [ebp - 8], eax
cmp edi, eax
je 0x416f5e
nop
mov eax, dword [edi]
cmp dword [eax + 0x1f4], 0
jne 0x416e3a
cmp byte [eax + 0x1e4], 0
jne 0x416e3a
push 0x24
call fcn.004bec3b
mov esi, eax
add esp, 4
mov dword [ebp - 0xc], esi
test esi, esi
je 0x416dea
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov word [esi + 0x20], 0
jmp 0x416dec
xor esi, esi
mov eax, dword [edi]
cmp esi, eax
je 0x416e07
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x416dfc
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, esi
call fcn.00403ee0
mov dword [esi + 0x18], 0
push dword [edi]
call fcn.004185c0
mov byte [esi + 0x1c], al
mov dword [esi + 0x1d], 0
push dword [edi]
call fcn.004185c0
add esp, 8
mov byte [esi + 0x21], al
lea ecx, [ebx + 0x140]
push dword [ebx]
push esi
call fcn.004125e0
mov eax, dword [edi]
cmp dword [eax + 0x1f4], 0
je 0x416ee7
cmp byte [eax + 0x1e4], 0
jne 0x416ee7
push 0x24
call fcn.004bec3b
mov esi, eax
add esp, 4
mov dword [ebp - 0xc], esi
test esi, esi
je 0x416ea4
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov word [esi + 0x20], 0
jmp 0x416ea6
xor esi, esi
mov eax, dword [edi]
cmp esi, eax
je 0x416ec1
cmp dword [eax + 0x14], 0x10
mov ecx, eax
jb 0x416eb6
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
mov ecx, esi
call fcn.00403ee0
mov eax, dword [edi]
lea ecx, [ebx + 0x140]
mov eax, dword [eax + 0x1f4]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], 0x100
mov word [esi + 0x20], 0
push dword [ebx]
push esi
call fcn.004125e0
mov eax, dword [edi]
cmp dword [eax + 0x1f4], 0
je 0x416f52
cmp byte [eax + 0x1e4], 0
je 0x416f52
push 0xc
call fcn.004bec3b
mov ecx, dword [edi]
mov edx, eax
add esp, 4
mov dword [edx], ecx
lea ecx, [ebx + 0x140]
push 0
mov dword [edx + 4], ecx
mov ecx, dword [ebx]
push 0
mov dword [edx + 8], ecx
mov esi, dword [ebx + 0x12c]
push edx
push 0x417650
push 0
lea eax, [esi + 1]
push 0
mov dword [ebx + 0x12c], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebx + esi*4 + 0x2c], eax
mov eax, dword [ebx + 0x12c]
push 0xffffffffffffffff
push dword [ebx + eax*4 + 0x28]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
add edi, 4
cmp edi, dword [ebp - 8]
jne 0x416d80
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
Function at 0x417430
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ead70
mov eax, dword fs:[0]
push eax
sub esp, 0x178
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edx, esi
cmp dword [esi + 0x14], 0x10
jb 0x41746a
mov edx, dword [esi]
mov ecx, edx
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0xf
mov byte [ebp - 0x12c], 0
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417494
sub ecx, edi
push ecx
push edx
lea ecx, [ebp - 0x12c]
call fcn.00403ee0
cmp dword [esi + 0x178], 0
mov dword [ebp - 4], 0
mov byte [ebp - 0x181], 0
je 0x4174e3
cmp dword [esi + 0x17c], 0x10
lea eax, [esi + 0x168]
jb 0x4174d2
mov eax, dword [eax]
push eax
call fcn.00418330
add esp, 4
test al, al
je 0x4175f3
cmp dword [esi + 0x14c], 0x10
lea eax, [esi + 0x138]
jb 0x4174f4
mov eax, dword [eax]
push eax
call fcn.00418330
add esp, 4
test al, al
jne 0x4175dc
cmp dword [esi + 0xbc], 0x10
lea edi, [esi + 0xa8]
jb 0x417516
mov edi, dword [edi]
add esi, 0x120
cmp dword [esi + 0x14], 0x10
jb 0x417524
mov esi, dword [esi]
push 0x44
lea eax, [ebp - 0x170]
push 0
push eax
call fcn.004c0a60
xor eax, eax
mov dword [ebp - 0x170], 0x44
push 0x104
push eax
mov word [ebp - 0x140], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x114]
push eax
movups xmmword [ebp - 0x180], xmm0
call fcn.004c0a60
push edi
push esi
lea eax, [ebp - 0x114]
push 0x4f02ac
push eax
call fcn.0040f1b0
add esp, 0x28
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x170]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x114]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4175d3
push 0xffffffffffffffff
push dword [ebp - 0x180]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x180]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x17c]
call esi
mov byte [ebp - 0x181], 1
jmp 0x4175f3
mov byte [ebp - 0x181], 0
jmp 0x4175f3
add esi, 0x150
cmp dword [esi + 0x14], 0x10
jb 0x4175ea
mov esi, dword [esi]
push esi
call fcn.00418330
add esp, 4
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x10
jb 0x417629
mov edx, dword [ebp - 0x12c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41761f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41764a
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov al, byte [ebp - 0x181]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
call fcn.004c8fd6
int3
Function at 0x4188c0
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
mov eax, esi
lea edx, [eax + 1]
nop dword [eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4188e0
sub eax, edx
je 0x418944
push 0x104
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.004c0a60
add esp, 0xc
lea eax, [ebp - 0x108]
push 0
push dword [ebp + 8]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
push esi
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
pop esi
setne al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
xor ecx, ebp
pop esi
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
Function at 0x418970
Capabilities:
Check http status code
Create http request
Get http content length
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push 0
push 0
push 0
push 0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x10]
push str.VsyDownload_1.0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 4
mov dword [ebp - 0xc], 0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
je 0x418ae7
push edi
push 0
push 0x84000002
push 0
push 0
push esi
push ebx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov edi, eax
test edi, edi
je 0x4189fa
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
push 0x20000013
push edi
call esi
test eax, eax
jne 0x418a16
mov dword [ebp - 8], eax
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp - 8], 0xc8
jne 0x4189fa
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x20000005
push edi
call esi
neg eax
sbb eax, eax
and eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
inc eax
push eax
call fcn.004beca1
mov ecx, dword [ebp - 0x18]
mov esi, eax
inc ecx
mov dword [ebp - 0x20], esi
push ecx
push 0
push esi
call fcn.004c0a60
mov eax, dword [ebp - 0x1c]
add esp, 0x10
test eax, eax
je 0x418a62
mov dword [eax], esi
mov ebx, dword [ebp - 0x20]
xor esi, esi
nop word [eax + eax]
push 0
mov dword [ebp - 0x14], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x18]
mov ecx, 0x400
sub eax, esi
cmp eax, 0x400
cmovae eax, ecx
lea ecx, [ebp - 0x14]
push ecx
push eax
lea eax, [esi + ebx]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
mov eax, dword [ebp - 0x14]
add esi, eax
test eax, eax
jne 0x418a70
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
call esi
mov ebx, dword [ebp - 0x24]
push ebx
call esi
cmp dword [ebp - 0x1c], 0
jne 0x418aca
push dword [ebp - 0x20]
call fcn.004bec9c
add esp, 4
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
pop edi
pop esi
mov dword [ecx], eax
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 4]
xor al, al
pop esi
xor ecx, ebp
pop ebx
call fcn.004bebdd
mov esp, ebp
pop ebp
ret 0xc
Function at 0x419640
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x108]
push edi
mov edi, dword [ebp + 8]
push 0x104
push 0
push eax
call fcn.004c0a60
add esp, 0xc
lea eax, [ebp - 0x108]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x110], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x10c], 0xf
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4196c0
sub ecx, edx
lea eax, [ebp - 0x108]
push ecx
push eax
lea ecx, [ebp - 0x120]
call fcn.00403ee0
lea esi, [edi + 0x120]
lea eax, [ebp - 0x120]
cmp esi, eax
je 0x41971a
mov ecx, esi
call fcn.004043a0
movups xmm0, xmmword [ebp - 0x120]
pop edi
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x110]
movq qword [esi + 0x10], xmm0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x10c]
cmp ecx, 0x10
jb 0x419750
mov edx, dword [ebp - 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x419746
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x419760
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
call fcn.004c8fd6
int3
Function at 0x4199c0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov dword [ebp - 8], ecx
push edi
nop dword [eax]
mov edi, dword [ecx]
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp eax, 0x270
jne 0x419a26
lea eax, [edi + 8]
mov esi, 0x270
mov edx, dword [eax - 4]
lea eax, [eax + 4]
xor edx, dword [eax - 4]
and edx, 0x7fffffff
xor edx, dword [eax - 8]
mov ecx, edx
and cl, 1
movzx ecx, cl
neg ecx
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [eax + 0x62c]
xor ecx, edx
mov dword [eax + 0x9b8], ecx
sub esi, 1
jne 0x4199e6
mov eax, dword [edi]
jmp 0x419b08
cmp eax, 0x4e0
jb 0x419b08
mov eax, dword [edi + 0x9c4]
lea ebx, [edi + 0x9c4]
mov edi, 0xe3
mov ecx, dword [ebx + 4]
lea edx, [ebx + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx + 0x634]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x419a42
mov ebx, dword [ebp - 4]
mov edi, 0x18c
add ebx, 0xd50
mov eax, dword [ebx]
nop dword [eax + eax]
mov ecx, eax
lea edx, [ebx + 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx - 0xd4c]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x419a90
mov edi, dword [ebp - 4]
mov ecx, dword [edi + 0x1380]
xor ecx, dword [edi + 4]
and ecx, 0x7fffffff
xor ecx, dword [edi + 0x1380]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x634]
xor eax, ecx
mov dword [edi + 0x9c0], eax
xor eax, eax
mov dword [edi], 0
mov edx, dword [edi + eax*4 + 4]
inc eax
mov dword [edi], eax
mov ecx, edx
mov eax, dword [edi + 0x1384]
shr ecx, 0xb
and eax, ecx
mov ecx, dword [ebp - 8]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
cmp eax, dword [ecx + 8]
ja 0x4199d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41a990
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eb13b
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x5383c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004c0a60
add esp, 0xc
lea eax, [ebp - 0x218]
push 0
push 0xb
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x4f0388
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x260]
push eax
call fcn.00401d00
push 0x4efb20
lea eax, [ebp - 0x260]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00403760
push str.Uninst.exe
lea eax, [ebp - 0x260]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.00403760
add esp, 0x20
lea eax, [ebp - 0x248]
cmp dword [ebp - 0x234], 0x10
cmovae eax, dword [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x21c], 0x10
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 0x21c]
cmp ecx, 0x10
jb 0x41aac4
mov edx, dword [ebp - 0x230]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41aaba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab7f
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0xf
mov byte [ebp - 0x230], 0
cmp ecx, 0x10
jb 0x41ab15
mov edx, dword [ebp - 0x248]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41ab0b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab7f
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0xf
mov byte [ebp - 0x248], 0
cmp ecx, 0x10
jb 0x41ab66
mov edx, dword [ebp - 0x260]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41ab5c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41ab7f
push ecx
push edx
call fcn.004bec6b
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004bebdd
mov esp, ebp
pop ebp
ret
call fcn.004c8fd6
int3