joyce8/EMBER2024-capa huggingface dataset:
Function at 0x30297e9d
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
pushal
mov edx, dword [ebp + 0xc]
sub eax, eax
mov ax, word [edx + 2]
mov dword [ebp - 0x118], eax
add edx, 0x14
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x114], eax
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x110], edx
lea edx, [ebp - 0xc]
mov ebx, dword [ebp + 8]
push edx
push 4
push eax
push dword [ebp - 0x114]
call dword [ebx + 0x24]
test eax, eax
je 0x30297fee
mov byte [ebp - 0x10c], 0x53
mov byte [ebp - 0x10b], 0x65
mov byte [ebp - 0x10a], 0x74
mov byte [ebp - 0x109], 0x20
mov byte [ebp - 0x108], 0x49
mov byte [ebp - 0x107], 0x6d
mov byte [ebp - 0x106], 0x61
mov byte [ebp - 0x105], 0x67
mov byte [ebp - 0x104], 0x65
mov byte [ebp - 0x103], 0x20
mov byte [ebp - 0x102], 0x77
mov byte [ebp - 0x101], 0x72
mov byte [ebp - 0x100], 0x69
mov byte [ebp - 0xff], 0x74
mov byte [ebp - 0xfe], 0x61
mov byte [ebp - 0xfd], 0x62
mov byte [ebp - 0xfc], 0x6c
mov byte [ebp - 0xfb], 0x65
mov byte [ebp - 0xfa], 0x3a
mov byte [ebp - 0xf9], 0
mov eax, 1
mov eax, 1
test eax, eax
je 0x30297fee
mov edx, dword [ebp - 0x110]
lea ebx, [edx + 0x60]
mov eax, dword [edx + 0x5c]
mov edx, 8
mul edx
add eax, ebx
mov dword [ebp - 8], eax
mov eax, 0x28
mov edx, dword [ebp - 0x118]
mul edx
add eax, dword [ebp - 8]
mov ebx, dword [ebp + 0x10]
sub eax, ebx
mov dword [ebp - 4], eax
mov edi, dword [ebp - 0x114]
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x118]
mov ebx, dword [ebp - 8]
push dword [ebp + 0x10]
push dword [ebp - 0x114]
push ebx
push dword [ebp + 8]
call fcn.30297ff8
test eax, eax
je 0x30297fee
add ebx, 0x28
dec ecx
jne 0x30297fc7
popal
mov eax, dword [ebp - 0x114]
leave
ret 0x10
popal
mov eax, 0
leave
ret 0x10

Function at 0x3029809e
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
pushal
mov edx, dword [ebp + 0xc]
mov ebx, dword [edx + 0x24]
and ebx, 0xe0000000
cmp ebx, 0xe0000000
jne 0x302980c9
mov eax, 0x40
mov dword [ebp - 0x108], eax
jmp 0x3029812e
mov ebx, dword [edx + 0x24]
and ebx, 0x60000000
cmp ebx, 0x60000000
jne 0x302980e7
mov eax, 0x20
mov dword [ebp - 0x108], eax
jmp 0x3029812e
mov ebx, dword [edx + 0x24]
and ebx, 0xc0000000
cmp ebx, 0xc0000000
jne 0x30298105
mov eax, 4
mov dword [ebp - 0x108], eax
jmp 0x3029812e
mov ebx, dword [edx + 0x24]
and ebx, 0x40000000
cmp ebx, 0x40000000
jne 0x30298123
mov eax, 2
mov dword [ebp - 0x108], eax
jmp 0x3029812e
mov eax, 1
mov dword [ebp - 0x108], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
add eax, dword [ebp + 0x10]
mov ebx, dword [edx + 8]
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x104]
push edx
push dword [ebp - 0x108]
push ebx
push eax
call dword [ecx + 0x24]
test eax, eax
je 0x3029816b
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
add eax, dword [ebp + 0x10]
mov eax, 1
popal
mov eax, 1
leave
ret 0x10
popal
sub eax, eax
leave
ret 0x10
Function at 0x30298172
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 4
pushal
mov edx, dword [ebp + 8]
mov ax, word [edx]
cmp ax, 0x5a4d
jne 0x302981a1
mov eax, dword [edx + 0x3c]
add edx, eax
mov eax, dword [edx]
cmp eax, 0x4550
jne 0x302981a1
add edx, 4
mov dword [ebp - 4], edx
popal
mov eax, dword [ebp - 4]
leave
ret 8
popal
sub eax, eax
leave
ret 8

Function at 0x30298dff
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 4
mov ecx, 3
mov edx, 1
push ecx
push dword [ebp + 8]
call fcn.30298f04
rol eax, 8
push dword [ebp + 0xc]
push eax
call fcn.30298f20
push edx
push dword [ebp + 0x10]
push eax
call fcn.30298eec
inc edx
mov ebx, eax
push ecx
sub ecx, 3
push ecx
push dword [ebp + 8]
call fcn.30298f04
pop ecx
xor eax, ebx
inc ecx
push ecx
push dword [ebp + 8]
push eax
call fcn.30298ecb
push ecx
push dword [ebp + 8]
call fcn.30298f04
mov ebx, eax
push ecx
sub ecx, 3
push ecx
push dword [ebp + 8]
call fcn.30298f04
pop ecx
xor eax, ebx
inc ecx
push ecx
push dword [ebp + 8]
push eax
call fcn.30298ecb
push ecx
push dword [ebp + 8]
call fcn.30298f04
mov ebx, eax
push ecx
sub ecx, 3
push ecx
push dword [ebp + 8]
call fcn.30298f04
pop ecx
xor eax, ebx
inc ecx
push ecx
push dword [ebp + 8]
push eax
call fcn.30298ecb
push ecx
push dword [ebp + 8]
call fcn.30298f04
mov ebx, eax
push ecx
sub ecx, 3
push ecx
push dword [ebp + 8]
call fcn.30298f04
pop ecx
xor eax, ebx
inc ecx
push ecx
push dword [ebp + 8]
push eax
call fcn.30298ecb
cmp ecx, 0x2b
jne 0x30298e0f
leave
ret 0xc

Function at 0x3029a4b4
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
pushal
mov byte [ebp - 0x118], 0x42
mov byte [ebp - 0x117], 0x72
mov byte [ebp - 0x116], 0x75
mov byte [ebp - 0x115], 0x74
mov byte [ebp - 0x114], 0x65
mov byte [ebp - 0x113], 0x66
mov byte [ebp - 0x112], 0x6f
mov byte [ebp - 0x111], 0x72
mov byte [ebp - 0x110], 0x63
mov byte [ebp - 0x10f], 0x69
mov byte [ebp - 0x10e], 0x6e
mov byte [ebp - 0x10d], 0x67
mov byte [ebp - 0x10c], 0x20
mov byte [ebp - 0x10b], 0x4b
mov byte [ebp - 0x10a], 0x65
mov byte [ebp - 0x109], 0x79
mov byte [ebp - 0x108], 0
mov eax, 1
lea edi, [ebp - 0x14]
mov ecx, 0x10
mov al, 0
mov byte [edi], al
inc edi
dec ecx
jne 0x3029a544
mov eax, dword [ebp + 8]
push 4
push 0x3000
push 0x118810
push 0
call dword [eax + 0x20]
test eax, eax
je 0x3029a5d6
mov dword [ebp - 4], eax
mov edi, eax
mov esi, dword [ebp + 0xc]
mov ecx, 0x118810
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 0xc]
push 0x118810
call fcn.3029a3fa
push 0x118810
push dword [ebp + 0xc]
call fcn.302981a8
test eax, eax
jne 0x3029a5b8
mov esi, dword [ebp - 4]
mov edi, dword [ebp + 0xc]
mov ecx, 0x118810
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x14]
push eax
call fcn.3029a5dd
test eax, eax
je 0x3029a5d6
jmp 0x3029a574
mov eax, dword [ebp + 8]
push 0x8000
push 0
push dword [ebp - 4]
call dword [eax + 0x28]
test eax, eax
je 0x3029a5d6
popal
mov eax, 1
leave
ret 8
popal
sub eax, eax
leave
ret 8
Function at 0x3029a60b
Capabilities:
Terminate process

Disassembly:
call fcn.3029a618
push 0
call dword [sym.imp.KERNEL32.DLL_ExitProcess]
Function at 0x40119f
Capabilities:
Check if file exists
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x688
mov eax, dword [0x42f064]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x214], ax
xor ebx, ebx
lea eax, [ebp - 0x212]
mov edi, ecx
push ebx
push eax
mov dword [ebp - 0x628], edi
call fcn.00414670
add esp, 0xc
xor eax, eax
push esi
mov word [ebp - 0x41c], ax
lea eax, [ebp - 0x41a]
push ebx
push eax
call fcn.00414670
add esp, 0xc
push 0x104
lea eax, [ebp - 0x214]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0x214]
push eax
call esi
push dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push str._sUdAntiCap_d.exe
push eax
call edi
add esp, 0x10
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x401307
push 0x208
lea eax, [ebp - 0x214]
push ebx
push eax
call fcn.00414670
add esp, 0xc
push 0x104
lea eax, [ebp - 0x214]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x214]
push eax
call esi
cmp dword [ebp + 8], 0x20
jne 0x4012af
mov eax, dword [ebp - 0x628]
cmp byte [eax + 0xa8], bl
lea eax, [ebp - 0x214]
je 0x4012bb
push str.SysWOW64
jmp 0x4012c0
cmp dword [ebp + 8], 0x40
jne 0x4012ce
lea eax, [ebp - 0x214]
push str.System32
push 0x104
push eax
call fcn.004146f5
add esp, 0xc
lea eax, [ebp - 0x214]
push eax
call esi
push 0x208
lea eax, [ebp - 0x41c]
push ebx
push eax
call fcn.00414670
add esp, 0xc
push dword [ebp + 8]
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push str._sUdAntiCap_d.exe
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0x41c]
call fcn.004014b0
test al, al
je 0x4013c5
push 0x10
lea eax, [ebp - 0x638]
push ebx
push eax
call fcn.00414670
add esp, 0xc
push 0x44
pop esi
push esi
lea eax, [ebp - 0x684]
push ebx
push eax
call fcn.00414670
add esp, 0xc
mov dword [ebp - 0x684], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x628]
lea edx, [ecx + 0x58]
push edx
add ecx, 8
push ecx
push eax
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x624]
push str.__s___t:_X__n:_s__c:_s
push eax
call edi
add esp, 0x18
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x684]
push eax
push ebx
push ebx
push 0x20
push ebx
push ebx
push ebx
lea eax, [ebp - 0x624]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x4013c5
push 0x1388
push dword [ebp - 0x638]
call dword [sym.imp.USER32.dll_WaitForInputIdle]
push dword [ebp - 0x638]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x634]
call esi
mov al, 1
jmp 0x4013c7
xor al, al
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414657
leave
ret 4
Function at 0x4017b9
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push esi
push dword [ebp + 0xc]
mov esi, eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x401810
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x401802
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
add eax, edi
and esi, 0xf
jbe 0x4017fe
cmp edi, eax
jae 0x401802
dec esi
movzx ecx, word [edi]
lea edi, [edi + ecx*2 + 2]
jne 0x4017f0
cmp edi, eax
jb 0x401806
xor eax, eax
jmp 0x40180f
movzx eax, word [edi]
neg eax
sbb eax, eax
and eax, edi
pop edi
pop esi
pop ebp
ret
Function at 0x401d0d
Capabilities:
Check internet connectivity via wininet
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x42f064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push ebx
lea eax, [ebp - 0x78]
push eax
mov esi, ecx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
or dword [ebp - 0x70], 0xffffffff
mov edi, eax
mov eax, dword [0x43024c]
mov ecx, 0x43024c
call dword [eax + 0xc]
push 0x10
pop ecx
add eax, ecx
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x68]
push esi
push eax
call fcn.004025a7
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [eax]
lea eax, [ebp - 0x6c]
push str._App_GetReadCount_md5_semail_svisitor_s
call fcn.00402bdf
mov eax, dword [ebp - 0x68]
add esp, 0x18
add eax, 0xfffffff0
call fcn.004018b4
cmp edi, ebx
je 0x401e28
push 0x13
pop ecx
mov esi, str.Content_Type:_text_html__charsetUTF_8
lea edi, [ebp - 0x64]
rep movsd dword es:[edi], dword [esi]
push ebx
push ebx
push ebx
push ebx
push ebx
movsw word es:[edi], word [esi]
call dword [sym.imp.WININET.dll_InternetOpenW]
push ebx
push ebx
push 3
push ebx
push ebx
push 0x50
push 0x429cd8
push eax
mov dword [ebp - 0x74], eax
call dword [sym.imp.WININET.dll_InternetConnectW]
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x6c]
mov dword [ebp - 0x68], eax
push 0x429cf4
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
push ebx
mov esi, eax
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.0041504e
pop ecx
push eax
lea eax, [ebp - 0x64]
push eax
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x401e15
xor eax, eax
mov byte [ebp - 0x14], bl
lea edi, [ebp - 0x13]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x7c]
push eax
push 0x10
lea eax, [ebp - 0x14]
push eax
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x401e15
lea eax, [ebp - 0x14]
push eax
call fcn.00414eb7
pop ecx
mov dword [ebp - 0x70], eax
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call edi
push dword [ebp - 0x68]
call edi
push dword [ebp - 0x74]
call edi
mov eax, dword [ebp - 0x6c]
add eax, 0xfffffff0
call fcn.004018b4
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004018b4
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
call fcn.004018b4
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x70]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414657
leave
ret
Function at 0x4020c2
Capabilities:
Check internet connectivity via wininet
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov eax, dword [0x42f064]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push ebx
lea eax, [ebp - 0x78]
push eax
mov dword [ebp - 0x6c], ebx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
je 0x4021a3
push 0x13
pop ecx
mov esi, str.Content_Type:_text_html__charsetUTF_8
lea edi, [ebp - 0x68]
rep movsd dword es:[edi], dword [esi]
push ebx
push ebx
push ebx
push ebx
push ebx
movsw word es:[edi], word [esi]
call dword [sym.imp.WININET.dll_InternetOpenW]
push ebx
push ebx
push 3
push ebx
push ebx
push 0x50
push 0x429cd8
push eax
mov dword [ebp - 0x70], eax
call dword [sym.imp.WININET.dll_InternetConnectW]
push ebx
push ebx
push ebx
push ebx
push ebx
push str._App_GetTime
push 0x429cf4
push eax
mov dword [ebp - 0x74], eax
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
push ebx
mov esi, eax
lea eax, [ebp - 0x68]
push ebx
push eax
call fcn.0041504e
pop ecx
push eax
lea eax, [ebp - 0x68]
push eax
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x402190
xor eax, eax
mov byte [ebp - 0x14], bl
lea edi, [ebp - 0x13]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x7c]
push eax
push 0x10
lea eax, [ebp - 0x14]
push eax
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x402190
lea eax, [ebp - 0x14]
push eax
call fcn.00414eb7
pop ecx
mov dword [ebp - 0x6c], eax
cmp eax, ebx
jbe 0x402190
push eax
call fcn.004023c1
pop ecx
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push esi
call edi
push dword [ebp - 0x74]
call edi
push dword [ebp - 0x70]
call edi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x6c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414657
leave
ret
Function at 0x4023c1
Capabilities:
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x27c
mov eax, dword [0x42f064]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push esi
push edi
mov esi, 0x104
push esi
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x429d54
lea eax, [esp + 0x7c]
push esi
push eax
call fcn.004146f5
push 0x429d58
lea eax, [esp + 0x88]
push esi
push eax
call fcn.004146f5
add esp, 0x18
xor esi, esi
push esi
push 4
push 2
push esi
push esi
push 0x40000000
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x402486
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WriteFile]
lea eax, [esp + 0x10]
push eax
push 4
lea eax, [ebp + 8]
push eax
push ebx
call esi
test eax, eax
je 0x40247f
push 4
lea eax, [ebp + 8]
push eax
lea edi, [esp + 0x70]
lea ecx, [esp + 0x18]
call fcn.004238f0
push 0
lea eax, [esp + 0x10]
push eax
push 0x10
mov eax, edi
push eax
push ebx
call esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x402488
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x284]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00414657
mov esp, ebp
pop ebp
ret

Function at 0x40249d
Capabilities:
Get common file path
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x288
mov eax, dword [0x42f064]
xor eax, esp
mov dword [esp + 0x284], eax
push esi
push edi
mov esi, 0x104
push esi
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x429d54
lea eax, [esp + 0x84]
push esi
push eax
call fcn.004146f5
push 0x429d58
lea eax, [esp + 0x90]
push esi
push eax
call fcn.004146f5
add esp, 0x18
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x402591
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
je 0x402587
push edi
call fcn.00414ccc
pop ecx
push 0
mov esi, eax
lea eax, [esp + 0x18]
push eax
push edi
push esi
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 4
lea eax, [esp + 0x10]
push esi
push eax
call fcn.004148a0
add esp, 0xc
push 4
lea eax, [esp + 0x10]
push eax
lea edi, [esp + 0x78]
lea ecx, [esp + 0x20]
call fcn.004238f0
xor eax, eax
mov cl, byte [esp + eax + 0x70]
cmp cl, byte [esi + eax + 4]
jne 0x402587
inc eax
cmp eax, 0x10
jl 0x402571
mov eax, dword [esp + 0xc]
jmp 0x402593
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
xor ecx, esp
call fcn.00414657
mov esp, ebp
pop ebp
ret
Function at 0x40384f
Capabilities:
Extract resource via kernel32 functions
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov eax, dword [0x42f064]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x14c]
xor ebx, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ebx
cmp eax, ebx
je 0x403889
push eax
call fcn.00415069
pop ecx
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], ebx
jne 0x40390b
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x429de0
push 0x12e
push ebx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x403a66
push eax
push ebx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
je 0x403a66
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x403a66
push dword [esp + 0x14]
push ebx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push eax
mov dword [esp + 0x18], eax
call fcn.00414ccc
pop ecx
push dword [esp + 0x14]
mov esi, eax
push dword [esp + 0x14]
push esi
call fcn.004148a0
add esp, 0xc
jmp 0x403984
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
je 0x403a66
mov ecx, dword [edi + 0xc0]
call fcn.00424ec0
mov ecx, dword [edi + 0x130]
push ebx
push ebx
mov dword [esp + 0x1c], eax
call fcn.00424ec0
add eax, 0x2c
push eax
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push dword [esp + 0x14]
call fcn.00414ccc
pop ecx
push ebx
mov esi, eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
push esi
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, ebx
je 0x403a66
mov eax, dword [0x43024c]
mov ecx, 0x43024c
call dword [eax + 0xc]
push dword [edi + 0x12c]
add eax, 0x10
push dword [edi + 0x128]
mov dword [esp + 0x18], eax
push str._cn__d_cxy__dhzr
lea eax, [esp + 0x1c]
call fcn.00402bdf
add esp, 0xc
lea eax, [edi + 0x118]
push eax
lea eax, [esp + 0x1c]
push eax
push 0x10
pop ecx
call fcn.004025a7
pop ecx
pop ecx
lea ecx, [esp + 0x10]
call fcn.0040348e
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
call fcn.004018b4
mov ecx, dword [edi + 0xc0]
call fcn.00424ec0
mov ebx, eax
push ebx
call fcn.00414ccc
pop ecx
mov ecx, dword [esp + 0x10]
push ebx
mov ebx, eax
mov dword [edi + 0x14c], eax
call fcn.004251d0
pop ecx
push dword [edi + 0xc0]
lea ecx, [esp + 0x24]
push dword [edi + 0x14c]
lea edi, [esp + 0x84]
call fcn.004238f0
mov dword [esp + 0x18], 1
xor eax, eax
mov cl, byte [esp + eax + 0x7c]
mov edx, dword [esp + 0x1c]
cmp cl, byte [edx + eax + 0xc8]
jne 0x403a4e
inc eax
cmp eax, 0x10
jb 0x403a35
jmp 0x403a53
and dword [esp + 0x18], 0
push esi
call fcn.00415069
mov eax, dword [esp + 0x14]
pop ecx
add eax, 0xfffffff0
call fcn.004018b4
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004018b4
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00414657
mov esp, ebp
pop ebp
ret 4
Function at 0x4048e9
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [esi]
and dword [esi], 0
add eax, eax
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
push edi
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push 0
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40494d
cmp dword [ebp + 0xc], 1
je 0x404925
cmp dword [ebp + 0xc], 2
je 0x404925
push 0xd
pop eax
jmp 0x40494d
mov eax, dword [ebp - 4]
test edi, edi
je 0x404947
test eax, eax
je 0x404942
test al, 1
jne 0x404920
mov ecx, eax
shr ecx, 1
cmp word [edi + ecx*2 - 2], 0
je 0x404947
jmp 0x404920
xor ecx, ecx
mov word [edi], cx
shr eax, 1
mov dword [esi], eax
xor eax, eax
leave
ret 8

Function at 0x404951
Capabilities:
Delete registry key
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x42f064]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 4]
push edi
or ecx, 0x2001f
push ecx
push eax
push dword [esi]
xor ebx, ebx
lea edi, [ebp - 0x218]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x218], ebx
mov dword [ebp - 0x214], ebx
mov dword [ebp - 0x210], ebx
call fcn.004048a2
mov edi, eax
cmp edi, ebx
je 0x4049bf
cmp dword [ebp - 0x218], ebx
je 0x4049b8
push dword [ebp - 0x218]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
jmp 0x404a82
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x4049e3
lea eax, [ebp - 0x20c]
push eax
lea ecx, [ebp - 0x218]
call fcn.00404951
mov dword [ebp - 0x224], eax
cmp eax, ebx
jne 0x404a4c
lea eax, [ebp - 0x22c]
push eax
push ebx
push ebx
push ebx
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x20c]
push eax
push ebx
push dword [ebp - 0x218]
mov dword [ebp - 0x21c], 0x100
call edi
test eax, eax
je 0x4049c7
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x218], ebx
je 0x404a2e
push dword [ebp - 0x218]
call edi
mov dword [ebp - 0x218], ebx
mov eax, dword [esi + 8]
push dword [ebp - 0x220]
mov dword [ebp - 0x214], ebx
push dword [esi]
cmp eax, ebx
je 0x404a68
mov esi, eax
call fcn.00404291
jmp 0x404a6e
cmp dword [ebp - 0x218], ebx
je 0x404a60
push dword [ebp - 0x218]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x224]
jmp 0x404a82
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov esi, eax
cmp dword [ebp - 0x218], ebx
je 0x404a80
push dword [ebp - 0x218]
call edi
mov eax, esi
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00414657
leave
ret 4