joyce8/EMBER2024-capa huggingface dataset:
Function at 0x49336c
Capabilities:
Connect to http server
Parse url

Disassembly:
push 0x2a0
mov eax, 0x4b2938
call fcn.00454652
mov esi, ecx
mov dword [ebp - 0x268], esi
mov eax, dword [ebp + 8]
push 1
lea ecx, [ebp - 0x2ac]
mov dword [ebp - 0x270], eax
mov dword [ebp - 0x2ac], 0x3c
call fcn.004936b4
mov edi, dword [esi + 0x3c]
push 0x10000000
xor ebx, ebx
push edi
lea ecx, [ebp - 0x2ac]
mov dword [ebp - 4], ebx
mov byte [ebp - 0x261], bl
call fcn.00493f72
test eax, eax
je 0x493505
lea eax, [ebp - 0x2ac]
push eax
push 0x10000000
push ebx
push edi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
je 0x493505
push 0x2c
call fcn.004554e7
pop ecx
test eax, eax
je 0x4933fb
mov ecx, eax
call fcn.0041edf2
mov ebx, eax
push 0x2c
call fcn.004554e7
pop ecx
test eax, eax
je 0x493412
mov ecx, eax
call fcn.0041edf2
mov edi, eax
jmp 0x493414
xor edi, edi
push ebx
push 0x8000000
push 1
push dword [ebp - 0x288]
push dword [ebp - 0x290]
push 0x15
push dword [ebp - 0x29c]
push dword [esi + 0x30]
call dword [sym.imp.WININET.dll_InternetConnectW]
test eax, eax
jne 0x493454
mov edx, dword [ebx]
push eax
lea eax, [ebx + 0xc]
push eax
push dword [esi + 0x28]
mov ecx, ebx
call dword [edx + 8]
test al, al
je 0x4934f7
mov eax, dword [ebp - 0x280]
mov dword [ebp - 0x26c], eax
test eax, eax
je 0x493473
push eax
call fcn.00454574
inc eax
pop ecx
cmp eax, 0x3fffffff
jle 0x493477
xor eax, eax
jmp 0x493498
lea esi, [eax + eax]
mov eax, esi
call fcn.004558c0
mov eax, esp
push 3
push esi
push dword [ebp - 0x26c]
push eax
call fcn.00492ee6
mov esi, dword [ebp - 0x268]
push edi
push 0
push dword [ebp - 0x270]
push eax
push dword [ebx + 4]
call dword [sym.imp.WININET.dll_FtpFindFirstFileA]
test eax, eax
jne 0x4934c9
mov edx, dword [edi]
push eax
lea eax, [edi + 0xc]
push eax
push dword [esi + 0x28]
mov ecx, edi
call dword [edx + 8]
mov byte [ebp - 0x261], 0
test al, al
je 0x4934d0
mov byte [ebp - 0x261], 1
lea eax, [ebp - 0x260]
push eax
push dword [edi + 4]
call dword [sym.imp.WININET.dll_InternetFindNextFileW]
test eax, eax
jne 0x4934d0
mov edx, dword [edi]
push eax
lea eax, [edi + 0xc]
push eax
push dword [esi + 0x28]
mov ecx, edi
call dword [edx + 8]
test al, al
jne 0x4934d0
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 4]
lea ecx, [ebp - 0x2ac]
call fcn.00493320
mov al, byte [ebp - 0x261]
lea esp, [ebp - 0x2bc]
call fcn.00454601
ret 4
Function at 0x49390b
Capabilities:
Create http request
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x840
mov eax, dword [0x4ed8d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp + 0x18]
push edi
mov edi, ecx
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x840], eax
call fcn.0041fefb
cmp eax, 1
jne 0x493a03
and dword [ebp - 0x82c], 0
lea eax, [ebp - 0x82c]
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionInternet_Settings
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4939f8
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x834]
push eax
push 0
push 0
push str.ProxyEnable
push dword [ebp - 0x82c]
mov dword [ebp - 0x830], 4
call esi
mov ecx, dword [ebp - 0x834]
xor edx, edx
test eax, eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x828]
push eax
push edx
push edx
push str.AutoConfigURL
push dword [ebp - 0x82c]
cmovne ecx, edx
mov dword [ebp - 0x834], ecx
mov dword [ebp - 0x830], 0x824
call esi
movzx ecx, byte [ebp - 0x828]
mov esi, dword [ebp - 0x838]
xor edx, edx
test eax, eax
cmovne ecx, edx
mov byte [ebp - 0x828], cl
lea ecx, [ebp - 0x82c]
call fcn.0048259a
push dword [ebp - 0x840]
push dword [ebp - 0x83c]
push esi
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.WININET.dll_InternetOpenW]
xor ecx, ecx
test eax, eax
mov dword [edi + 4], eax
setne al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004535b3
leave
ret 0x14
Function at 0x493a75
Capabilities:
Check internet connectivity via wininet

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
xor edi, edi
push edi
lea eax, [ebp - 4]
push eax
mov ebx, ecx
mov dword [ebp - 4], edi
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
jne 0x493ab5
test byte [ebp - 4], 0x41
je 0x493ab5
push edi
push dword [ebx + 0x78]
call dword [sym.imp.WININET.dll_InternetAutodial]
test eax, eax
jne 0x493ab5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx + 8], eax
xor al, al
jmp 0x493b9b
mov eax, dword [ebx + 0x44]
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x493ae2
push eax
cmp dword [ebx + 0x40], edi
je 0x493ad1
push str.Range:_bytes_d__r_n
jmp 0x493ad6
push str.Range:_bytes_d_
push dword [ebx + 0x44]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp dword [ebx + 0x40], edi
je 0x493af3
push dword [ebx + 0x40]
push dword [ebx + 0x44]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push esi
cmp dword [ebx + 4], edi
jne 0x493b58
push dword [ebx + 0xc]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push ebx
push dword [ebx + 0x50]
jmp 0x493b27
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x493b4c
mov eax, dword [ebx + 0x50]
test eax, 0x100
je 0x493b4c
and eax, 0xfffffeff
push ebx
mov dword [ebx + 0x50], eax
push eax
push dword [ebx + 0x44]
mov esi, dword [ebx + 0x30]
mov edi, dword [ebx]
call fcn.00454574
pop ecx
push eax
push dword [ebx + 0x44]
mov ecx, ebx
push dword [ebx + 0x3c]
push esi
call dword [edi + 0x2c]
test eax, eax
je 0x493b08
mov eax, dword [ebx]
mov ecx, ebx
jmp 0x493b89
mov eax, dword [ebx]
lea ecx, [ebx + 0xc]
push 0
push ecx
mov ecx, ebx
jmp 0x493b90
cmp byte [ebp + 8], 0
je 0x493b98
lea esi, [ebx + 0xc]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push edi
push edi
push dword [ebx + 0x44]
call fcn.00454574
pop ecx
push eax
push dword [ebx + 0x44]
push dword [ebx + 4]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
mov eax, dword [ebx]
mov ecx, ebx
je 0x493b8e
call dword [eax + 0x28]
jmp 0x493b9a
push edi
push esi
push dword [ebx + 0x28]
call dword [eax + 8]
jmp 0x493b9a
mov al, 1
pop esi
pop edi
pop ebx
leave
ret 4
Function at 0x493d47
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
xor eax, eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, ecx
inc eax
and dword [esi + 0x24], 0
and dword [ebx], 0
cmp dword [ebp + 0xc], 0
push edi
jbe 0x493f07
cmp dword [esi + 0x5c], 0x2710
jbe 0x493d86
cmp dword [esi + 0x54], 0
je 0x493d86
mov ecx, esi
call fcn.004940e3
mov edi, eax
imul edi, edi, 0xf
jmp 0x493d8b
mov edi, 0x5dc
push 1
test edi, edi
pop eax
cmove edi, eax
cmp byte [esi + 0x90], 0
je 0x493da8
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jmp 0x493db5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], eax
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 4]
mov dword [esi + 0x24], eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebx]
cmp eax, edi
cmovb edi, eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 8]
add eax, dword [ebx]
push edi
push eax
push dword [esi + 4]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x493dfe
mov eax, dword [esi]
push 0
lea ecx, [esi + 0xc]
push ecx
push dword [esi + 0x28]
mov ecx, esi
call dword [eax + 8]
test al, al
je 0x493f0e
cmp byte [esi + 0x90], 0
je 0x493e19
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
jmp 0x493e29
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
xor ebx, ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 4]
test eax, eax
je 0x493f04
mov ecx, dword [ebp + 0x10]
add dword [ecx], eax
add dword [esi + 0x4c], eax
add dword [esi + 0x54], eax
add dword [esi + 0x60], eax
sub edi, dword [ebp - 0x20]
sbb ebx, dword [ebp - 0x1c]
mov eax, edi
or eax, ebx
jne 0x493e53
push 5
pop edi
xor ebx, ebx
push 0
push 0x3e8
push ebx
push edi
call fcn.004579c0
mov ecx, dword [esi + 0x8c]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x88]
mov dword [ebp - 0xc], edx
cmp edx, ecx
jl 0x493ea6
mov edx, dword [ebp - 8]
jg 0x493e80
cmp edx, eax
jb 0x493ea6
push ecx
push eax
push dword [ebp - 0xc]
push edx
call fcn.00477e20
add dword [esi + 0x5c], eax
add dword [esi + 0x68], eax
push 0
push 0x3e8
push ebx
push ecx
mov dword [ebp - 0xc], edx
call fcn.00457260
mov edi, eax
mov ebx, edx
push 0
push 0xf4240
push ebx
push edi
call fcn.004579c0
push dword [esi + 0x8c]
push dword [esi + 0x88]
push edx
push eax
call fcn.00457260
add dword [esi + 0x58], eax
add dword [esi + 0x64], eax
mov ecx, 0x3e8
cmp dword [esi + 0x58], ecx
jbe 0x493ee4
mov eax, dword [esi + 0x58]
xor edx, edx
div ecx
add dword [esi + 0x5c], eax
mov dword [esi + 0x58], edx
cmp dword [esi + 0x64], ecx
jbe 0x493ef6
mov eax, dword [esi + 0x64]
xor edx, edx
div ecx
add dword [esi + 0x68], eax
mov dword [esi + 0x64], edx
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp dword [ebx], eax
jb 0x493d69
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0xc
xor al, al
jmp 0x493f07
Function at 0x493f72
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
xor edi, edi
push edi
mov esi, ecx
call fcn.004936b4
push esi
push edi
push edi
push dword [ebp + 8]
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
mov edi, eax
test edi, edi
je 0x49403b
inc dword [esi + 8]
mov eax, dword [esi + 8]
push ebx
xor ecx, ecx
push 2
pop ebx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
inc dword [esi + 0x14]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x14]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
inc dword [esi + 0x20]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x20]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
inc dword [esi + 0x28]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x28]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
inc dword [esi + 0x30]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x30]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
inc dword [esi + 0x38]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x38]
xor ecx, ecx
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
add esp, 0x18
mov dword [esi + 0x34], eax
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
ret 8

Function at 0x49407e
Capabilities:
Get http content length

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 8], 4
call fcn.00493a35
movzx edi, al
test al, al
je 0x4940b5
push 0
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x20000005
push dword [esi + 4]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test edi, edi
jne 0x4940c7
or dword [ebp - 4], 0xffffffff
jmp 0x4940cd
mov eax, dword [esi + 0x48]
add dword [ebp - 4], eax
mov ecx, esi
call fcn.004932c1
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4940e3
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
push edi
mov esi, ecx
call ebx
sub eax, dword [esi + 0x6c]
xor edi, edi
cmp eax, 0x7530
jbe 0x494120
mov eax, dword [esi + 0x60]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x68]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x64]
mov dword [esi + 0x60], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x58], eax
mov dword [esi + 0x64], edi
call ebx
mov dword [esi + 0x6c], eax
mov ecx, dword [esi + 0x5c]
test ecx, ecx
jne 0x49412c
mov eax, dword [esi + 0x54]
jmp 0x494178
push 0xa
pop ebx
mov dword [ebp - 4], edi
test edi, edi
jne 0x494176
or eax, 0xffffffff
xor edx, edx
div ebx
mov edi, dword [esi + 0x54]
cmp edi, eax
jbe 0x49414e
shr edi, 1
shr ecx, 1
mov dword [esi + 0x54], edi
mov dword [esi + 0x5c], ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x5c]
imul eax, ebx
xor edx, edx
div ecx
xor edx, edx
imul eax, eax, 0x3e8
div ebx
imul ebx, ebx, 0xa
mov edi, eax
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, 3
jb 0x494132
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret
Function at 0x496728
Capabilities:
Create new key via cryptacquirecontext
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x4ed8d0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
call fcn.00496b46
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
push 0x28
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
push 0x28
lea eax, [ebp - 0x54]
push eax
lea esi, [ebx + 0x1c]
push esi
call fcn.0045591b
add esp, 0xc
push 8
push 1
push edi
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
lea eax, [ebx + 0x10]
push eax
push 0
push 0
push dword [ebx + 0x80]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004535b3
leave
ret 4

Function at 0x496ea5
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
xor eax, eax
push edi
mov edi, ecx
test ebx, ebx
je 0x496ec7
push 1
push eax
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [ebx], eax
xor eax, eax
lea esi, [edi + 0x70]
push esi
push eax
push eax
push eax
push 2
push dword [edi + 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptSignHashW]
test eax, eax
jne 0x496eed
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 0x74], eax
xor al, al
jmp 0x496f8c
push dword [esi]
call fcn.004554e7
mov esi, eax
pop ecx
cmp esi, dword [edi + 0x6c]
je 0x496f05
push dword [edi + 0x6c]
call fcn.00453342
pop ecx
push 0
mov dword [edi + 0x6c], esi
call fcn.00453342
pop ecx
lea esi, [edi + 0x70]
push esi
push dword [edi + 0x6c]
push 0
push 0
push 2
push dword [edi + 0x10]
call dword [sym.imp.ADVAPI32.dll_CryptSignHashW]
test eax, eax
je 0x496edd
push 0
lea eax, [ebp + 0xc]
push eax
push 4
push esi
push dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
call esi
push 0
lea eax, [edi + 0x70]
push eax
push dword [eax]
push dword [edi + 0x6c]
push dword [ebp + 8]
call esi
test byte [ebp + 0x10], 1
jne 0x496f73
push 0
push dword [ebp + 8]
push 1
push 1
push 0x10001
push dword [edi + 0xc]
call dword [sym.imp.CRYPT32.dll_CertSaveStore]
test eax, eax
je 0x496edd
test ebx, ebx
je 0x496f8a
push 1
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
sub eax, dword [ebx]
mov dword [ebx], eax
mov al, 1
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
Function at 0x49791d
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocStringLen
push dword [ebp + 8]
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x49794f
xor eax, eax
jmp 0x497a01
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
lea eax, [ebx + 1]
push eax
call fcn.00452d2b
pop ecx
push 0
lea ecx, [ebp + 8]
push ecx
push ebx
push eax
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp ebx, dword [ebp + 8]
jne 0x497948
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [edi + 0x2c]
call fcn.00498507
lea esi, [edi + 0x20]
mov ecx, esi
push dword [esi + 4]
push dword [esi]
call fcn.00481190
mov eax, dword [esi]
push 0
push 0x4cbd00
mov ecx, edi
mov dword [esi + 4], eax
call fcn.00404c70
mov esi, dword [ebp - 4]
mov ecx, edi
mov byte [esi + ebx], 0
mov dword [edi + 0x38], esi
call fcn.0049775f
push eax
push 0
mov ecx, edi
call fcn.00497a08
test eax, eax
je 0x497948
mov ecx, edi
call fcn.0049775f
push eax
push 9
mov ecx, edi
call fcn.00497a08
test eax, eax
je 0x497948
push edi
mov ecx, edi
call fcn.00497f4e
test eax, eax
je 0x497948
push esi
call fcn.0045458d
xor eax, eax
pop ecx
inc eax
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x498d53
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
and dword [eax + 0x14], 0
and dword [eax + 0x10], 0
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
pop ebp
ret

Function at 0x4996f9
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
lea eax, [ebp - 8]
push eax
push dword [ebp + 8]
mov ebx, ecx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 4], eax
test eax, eax
jne 0x49971c
xor al, al
jmp 0x4997b6
push eax
call fcn.00452d2b
pop ecx
push eax
push dword [ebp - 4]
mov dword [ebx + 0x40], eax
push dword [ebp - 8]
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x499715
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0xc]
push eax
push 0x4b7ea0
push dword [ebx + 0x40]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x499715
push esi
mov esi, dword [ebp - 0xc]
push edi
push 0xd
pop ecx
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
lea edi, [ebx + 4]
push str.VarFileInfoTranslation
rep movsd dword es:[edi], dword [esi]
push dword [ebx + 0x40]
call sub.VERSION.dll_VerQueryValueW
pop edi
pop esi
test eax, eax
je 0x4997b4
mov eax, dword [ebp - 4]
shr eax, 2
xor ecx, ecx
push 4
pop edx
mov dword [ebx + 0x3c], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452d2b
xor edx, edx
pop ecx
mov dword [ebx + 0x38], eax
cmp dword [ebx + 0x3c], edx
jbe 0x4997b4
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, dword [ebx + 0x3c]
jb 0x4997a2
mov al, 1
pop ebx
leave
ret 4
Function at 0x49bc60
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b3778
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4ed8d0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
or esi, 0xffffffff
mov dword [ebp - 4], 0
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocStringLen
push dword [ebp + 8]
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, esi
je 0x49bd19
push edi
push edi
push edi
push 2
push edi
mov esi, ebx
push ebx
mov dword [ebp - 0x14], esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
test eax, eax
je 0x49bd19
push 0
push 0
push 0
push 4
mov edi, eax
push eax
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp + 8], eax
test eax, eax
je 0x49bd19
push dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push eax
push ebx
call fcn.0049ba00
mov eax, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov byte [ebp + 0xb], 1
test eax, eax
je 0x49bd1d
push ebx
call eax
jmp 0x49bd1d
mov byte [ebp + 0xb], 0
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x49bd2e
test ebx, ebx
je 0x49bd2e
push edi
call ebx
cmp esi, 0xffffffff
je 0x49bd3a
test ebx, ebx
je 0x49bd3a
push esi
call ebx
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

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

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
nop
nop
nop
nop
push 4
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
je 0x431072
nop
nop
nop
nop
nop
mov ebx, 0x40915c
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x7884053a
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x431060
mov eax, section..data
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x4310d2
nop
nop
mov ebx, 0x42f3f8
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
mov esi, 0x248171a3
nop
nop
nop
xor dword [eax], esi
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x4310c0
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x401fb0
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x401ff9
push 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
push 0
push esi
call fcn.0040a5d8
test eax, eax
jne 0x401fec
push 0x4382cc
call fcn.00419cb6
add esp, 4
mov eax, 1
pop esi
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
pop esi
pop ebp
jmp fcn.00401d70
push 0x4382f8
call fcn.00419cb6
add esp, 4
mov eax, 1
pop esi
pop ebp
ret