joyce8/EMBER2024-capa huggingface dataset:
Function at 0x438cb0
Capabilities:
Set global application hook

Disassembly:
cmp dword [0x49f174], 0
push esi
mov esi, dword [sym.imp.USER32.dll_SetWindowsHookExA]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
jne 0x438cda
call edi
push eax
push 0
push 0x438300
push 0xffffffffffffffff
call esi
mov dword [0x49f174], eax
cmp dword [0x49f178], 0
jne 0x438cf6
call edi
push eax
push 0
push 0x438a40
push 3
call esi
mov dword [0x49f178], eax
mov eax, dword [0x49f17c]
test eax, eax
jne 0x438d12
call edi
push eax
push 0
push 0x438b40
push 4
call esi
mov dword [0x49f17c], eax
cmp dword [0x49f174], 0
pop edi
pop esi
je 0x438d30
cmp dword [0x49f178], 0
je 0x438d30
test eax, eax
je 0x438d30
mov eax, 1
ret
xor eax, eax
ret

Function at 0x442fc7
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], ebx
je 0x44300e
call fcn.0044416a
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x44300e
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x44302a
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.00442b41
mov esi, eax
test edi, edi
je 0x443028
test ebx, ebx
je 0x443028
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x4455b9
Capabilities:
Get graphical window text

Disassembly:
push 4
mov eax, 0x475301
call fcn.0045c9c3
mov esi, ecx
cmp dword [esi + 0x50], 0
jne 0x4455de
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x445624
lea ecx, [ebp - 0x10]
call fcn.00401c25
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx]
and dword [ebp - 4], 0
lea edx, [ebp - 0x10]
push edx
call dword [eax + 0x8c]
push 0xffffffffffffffff
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00443155
add esp, 0x10
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov esi, eax
call fcn.0040135b
mov eax, esi
call fcn.0045ca9b
ret 8

Function at 0x44848a
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [edi + 0x58], ebx
test ebx, 0xffff0000
jne 0x4484ae
cmp dword [edi + 0x54], 0
jne 0x4484ae
movzx eax, bx
mov dword [edi + 0x54], eax
call fcn.0044416a
mov esi, dword [eax + 0xc]
push 5
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push dword [ebp + 0xc]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.0044844b
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x44b4d3
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0xc], ebx
je 0x44b51b
call fcn.0044416a
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x44b51b
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
test eax, eax
je 0x44b55e
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], 1
test ebx, ebx
je 0x44b547
push dword [ebp + 0x10]
mov eax, dword [edi]
push ebx
push esi
mov ecx, edi
call dword [eax + 0x20]
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], eax
je 0x44b547
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [esi + 0x4c], 0
je 0x44b55b
mov ecx, dword [esi + 0x4c]
push dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 0xc

Function at 0x45bdea
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x498fe0]
jne 0x45bdf4
repz ret
jmp fcn.004628fd
Function at 0x46cffe
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.0046347d
and dword [ebp - 4], 0
cmp dword [0x4a1aac], 0
mov ebx, eax
jne 0x46d0af
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x46d160
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x484a58
push edi
call esi
test eax, eax
je 0x46d160
push eax
call fcn.0046340b
mov dword [esp], 0x484a48
push edi
mov dword [0x4a1aac], eax
call esi
push eax
call fcn.0046340b
mov dword [esp], 0x484a34
push edi
mov dword [0x4a1ab0], eax
call esi
push eax
call fcn.0046340b
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x4a1ab4], eax
call esi
push eax
call fcn.0046340b
pop ecx
mov dword [0x4a1abc], eax
test eax, eax
je 0x46d0af
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.0046340b
pop ecx
mov dword [0x4a1ab8], eax
mov eax, dword [0x4a1ab8]
cmp eax, ebx
je 0x46d107
cmp dword [0x4a1abc], ebx
je 0x46d107
push eax
call fcn.00463486
push dword [0x4a1abc]
mov esi, eax
call fcn.00463486
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x46d107
test edi, edi
je 0x46d107
call esi
test eax, eax
je 0x46d0fe
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x46d0fe
test byte [ebp - 0xc], 1
jne 0x46d107
or dword [ebp + 0x10], 0x200000
jmp 0x46d140
mov eax, dword [0x4a1ab0]
cmp eax, ebx
je 0x46d140
push eax
call fcn.00463486
pop ecx
test eax, eax
je 0x46d140
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x46d140
mov eax, dword [0x4a1ab4]
cmp eax, ebx
je 0x46d140
push eax
call fcn.00463486
pop ecx
test eax, eax
je 0x46d140
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x4a1aac]
call fcn.00463486
pop ecx
test eax, eax
je 0x46d160
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x46d162
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4c1960
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x4c199f
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x4c199f
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4c199f
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x4c199f
cmp dword [ecx + 0x74], 0xe
jbe 0x4c199f
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret
Function at 0x4c74f3
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x4c7590
push ebx
push esi
call fcn.004c74bc
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.004c7450
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x4c753d
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x4c758f
push edi
push eax
call fcn.004c8110
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x4c755d
call fcn.004c5fb1
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x4c758e
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.004c7450
add esp, 0x20
test eax, eax
jne 0x4c757c
push edi
call fcn.004c5fb1
jmp 0x4c7584
push ebx
call fcn.004c5fb1
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x4c888d
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x4d1030
push 0x4d1028
push str.FlsAlloc
push 0x1f
call fcn.004c874c
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c88c1
push dword [ebp + 8]
mov ecx, esi
call dword [0x4cf12c]
call esi
jmp 0x4c88c7
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x4c890b
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x4d1040
push 0x4d1038
push str.FlsGetValue
push 0x21
call fcn.004c874c
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c8942
push dword [ebp + 8]
mov ecx, esi
call dword [0x4cf12c]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x4c894a
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x4d1048
push 0x4d1040
push str.FlsSetValue
push 0x22
call fcn.004c874c
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4c8984
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x4cf12c]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsSetValue]
Function at 0x4cdde0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x4cde0d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4cde0d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x40cb68
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x40cb77
pop dword [ebp - 0x50]
mov eax, 0x997a34e2
add eax, 0x66c69695
sub dword [ebp - 0x50], eax
mov dword [ebp - 0x60], 0x707b9891
sub dword [ebp - 0x60], 0x22295346
mov dword [ebp - 0x5c], 0x385d5c9d
sub dword [ebp - 0x5c], 0x62a1058
mov dword [ebp - 0x58], 0xb63caf26
sub dword [ebp - 0x58], 0x69f06af8
mov dword [ebp - 0x54], 0x2ce396c1
add dword [ebp - 0x54], 0xd31c693f
lea eax, [ebp - 0x60]
push eax
mov eax, 0x54c2b89b
add eax, 0xab7e27a9
add eax, dword [ebp - 0x50]
call dword [eax]
mov dword [ebp - 0x60], 0xd2cb1994
sub dword [ebp - 0x60], 0x5e58b03e
mov dword [ebp - 0x5c], 0xdb81ff60
sub dword [ebp - 0x5c], 0x9a159deb
mov dword [ebp - 0x58], 0xfe129deb
add dword [ebp - 0x58], 0x655cce81
mov dword [ebp - 0x54], 0x62a47b44
sub dword [ebp - 0x54], 0x62a47b44
lea ebx, [ebp - 0x60]
push ebx
push eax
mov eax, 0x8a99da77
sub eax, 0x8a58f9eb
add eax, dword [ebp - 0x50]
call dword [eax]
push 0x40
push 0x1000
push 0x39c1c
push 0
call eax
mov ecx, 0xf2e670e1
sub ecx, 0xf2e61f92
xor edx, edx
add edx, eax
mov edi, 0x41a400
add edi, dword [ebp - 0x50]
mov esi, 0xb15cd5f2
sub esi, 0xcaeae44a
sub dword [ebp - 0x2c], eax
mov ebx, dword [edi]
sub ebx, esi
add dword [ebp - 0x18], edi
mov dword [edx], ebx
xor dword [ebp - 0xc], ebx
add edx, 4
add edi, 0xcefc81a0
add edi, 0x31037e64
loop 0x40cc95
add eax, 0xd9737c2d
sub eax, 0xd972441e
xor ebx, ebx
add ebx, eax
add eax, 0xae75921
sub eax, 0xae7591c
mov ecx, 0x400000
add ecx, dword [ebp - 0x50]
call ebx
leave
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x414dd7
Capabilities:
Encode data using xor

Disassembly:
xor dword [ecx], eax
add ecx, 4
add esi, 1
sub edi, esi
cmp ecx, ebx
jne fcn.00414dd7
add esi, 0x9c26ecf8
ret
Function at 0x406570
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44de78
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x46ab5c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x24]
call fcn.004068d0
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 0
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
mov ecx, dword [ebp - 0x2c]
add ecx, 0x14
call fcn.0040f280
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x4065fc
jmp 0x406699
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 0x18], 0
jne 0x40664b
mov ecx, dword [ebp + 8]
call fcn.0040f280
push eax
lea ecx, [ebp - 0x24]
call fcn.004068f0
lea ecx, [ebp - 0x24]
call fcn.00406970
mov dword [ebp - 0x20], eax
push 0
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x20]
push edx
lea ecx, [ebp - 0x24]
call fcn.0040f280
push eax
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x406649
jmp 0x406699
jmp 0x406692
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x2c]
call fcn.004066e0
test eax, eax
jne 0x40665d
jmp 0x406699
mov ecx, dword [ebp + 8]
call fcn.00406970
shl eax, 1
mov dword [ebp - 0x20], eax
push 0
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp + 8]
call fcn.0040f280
push eax
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x406692
jmp 0x406699
mov dword [ebp - 0x18], 1
cmp dword [ebp - 0x14], 0xffffffff
je 0x4066b0
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00401080
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4

Function at 0x4066e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], 0
mov byte [ebp - 0xc], 0xff
mov byte [ebp - 0xb], 0xfe
mov dword [ebp - 4], 0
push 0
lea eax, [ebp - 4]
push eax
push 2
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x40671d
jmp 0x406724
mov dword [ebp - 8], 1
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 4
Function at 0x406730
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 0
xor eax, eax
mov byte [ebp - 3], al
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 0
push 0x80
push 3
push 0
push 1
push closesocket
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x406787
jmp 0x4067e0
push 0
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 2
jae 0x4067a0
jmp 0x4067e0
push 0
lea eax, [ebp - 0xc]
push eax
push 2
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4067be
jmp 0x4067e0
movzx eax, byte [ebp - 4]
cmp eax, 0xff
jne 0x4067d5
movzx ecx, byte [ebp - 3]
cmp ecx, 0xfe
je 0x4067d9
jmp 0x4067e0
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x10], 0xffffffff
je 0x4067f7
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret 4
Function at 0x409bc0
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44dfc8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x46ab5c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x14]
call fcn.00401000
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x409c2c
mov dword [ebp - 0x18], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401080
mov eax, dword [ebp - 0x18]
jmp 0x409d1a
push 0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x409d01
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x409d01
lea eax, [ebp - 0x14]
push eax
call fcn.00416520
add esp, 4
lea ecx, [ebp - 0x14]
call fcn.00403440
movzx ecx, al
test ecx, ecx
je 0x409c8f
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401080
mov eax, dword [ebp - 0x1c]
jmp 0x409d1a
lea ecx, [ebp - 0x14]
call fcn.0040f280
push eax
call fcn.00409bc0
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x409cc4
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401080
mov eax, dword [ebp - 0x20]
jmp 0x409d1a
push 0
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x409d01
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x409d01
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401080
mov eax, dword [ebp - 0x24]
jmp 0x409d1a
mov dword [ebp - 0x28], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00401080
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x409dd0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x18]
cmp dword [eax], 0
jne 0x409df9
jmp 0x409e88
lea ecx, [ebp - 0xc]
push ecx
push 0
lea edx, [ebp - 8]
push edx
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 8], 1
je 0x409e22
jmp 0x409e88
mov ecx, dword [ebp + 0xc]
call fcn.00401210
mov eax, dword [ebp - 0xc]
shr eax, 1
add eax, 1
push eax
mov ecx, dword [ebp + 0xc]
call fcn.004012e0
mov dword [ebp - 4], eax
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
lea eax, [ebp - 8]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x409e69
jmp 0x409e88
mov ecx, dword [ebp - 0xc]
shr ecx, 1
mov edx, dword [ebp - 4]
mov word [edx + ecx*2], 0
push 0xffffffffffffffff
mov ecx, dword [ebp + 0xc]
call fcn.0040a360
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 8
Function at 0x40ae80
Capabilities:
Create tcp socket
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
mov eax, dword [0x46ab5c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1a0], ecx
mov word [ebp - 0x198], 0
push 0x18e
push 0
lea eax, [ebp - 0x196]
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x198]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x40aef8
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x19c], eax
mov edx, dword [ebp - 0x19c]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
push str.localhost
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044be2c
mov esp, ebp
pop ebp
ret

Function at 0x40af30
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 8], 0
cmp dword [ebp + 8], 0
jne 0x40af5f
mov dword [ebp + 8], str.kdump.dll
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40af76
jmp 0x40afce
push str.KxEOpenDumpMonitorEx2
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x40af92
jmp 0x40afce
push 0
push 0
mov edx, dword [ebp - 8]
push edx
push 0x40afe0
push 0
push 0
call dword [sym.imp.MSVCR80.dll__beginthreadex]
add esp, 0x18
mov dword [ebp - 0x10], eax
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x10], 0
je 0x40afce
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x40b0a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44e189
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x46ab5c]
xor eax, ebp
mov dword [ebp - 0x18], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov dword [ebp - 4], 0
push str.SOFTWAREMyDriversDriverGenius
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
push 1
push 0
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP80.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
push closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x40b13b
mov dword [ebp - 0xc4], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0xc4]
jmp 0x40b1de
mov dword [ebp - 0xc0], 0
mov word [ebp - 0xbc], 0
push 0x7e
push 0
lea ecx, [ebp - 0xba]
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
mov dword [ebp - 0x3c], 0x80
mov dword [ebp - 0x10], 0
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0x10]
push ecx
push 0
push str.UUID
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x40b1b2
lea eax, [ebp - 0xbc]
push eax
mov ecx, dword [ebp + 8]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov dword [ebp - 0xc0], 1
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x18]
xor ecx, ebp
call fcn.0044be2c
mov esp, ebp
pop ebp
ret