joyce8/EMBER2024-capa huggingface dataset:
Function at 0x403e10
Capabilities:
Terminate process

Disassembly:
push esi
mov esi, ecx
call sub.MFC42u.DLL_CDialog::OnOK
mov eax, dword [esi + 0x290]
push eax
push str.S3D.OnCloseButton
push str._s___:___TerminateProcess___d_
push 6
call fcn.0040b7b0
mov eax, dword [esi + 0x290]
add esp, 0x10
test eax, eax
jne 0x403e4b
mov ecx, esi
call fcn.004046e0
mov ecx, esi
call fcn.00404520
mov ecx, dword [esi + 0x290]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
pop esi
ret

Function at 0x404520
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x411ea8
push 0x410340
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7e0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x20]
push eax
push 0xf003f
push ebx
mov ecx, dword [str.SOFTWAREMDCDriverInstall]
push ecx
push 0x80000002
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
call esi
test eax, eax
jne 0x40466a
push str.Reboot
mov edx, dword [ebp - 0x20]
push edx
mov edi, dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
call edi
test eax, eax
je 0x4045af
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0x408]
call fcn.0040c2c0
push eax
push str.DeleteRebootReqRegKey
push str._s:_failed_registry_key_deletion:__s
jmp 0x40467b
push str.DeleteRebootReqRegKey
push str._s____Reboot_registry_key_deleted
push 6
call fcn.0040bbc0
add esp, 0xc
lea ecx, [ebp - 0x1c]
push ecx
push 0xf003f
push ebx
mov edx, dword [str.SOFTWAREMDC]
push edx
push 0x80000002
call esi
test eax, eax
jne 0x404648
push str.DriverInstall
mov eax, dword [ebp - 0x1c]
push eax
call edi
test eax, eax
je 0x404634
push ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [ebp - 0x7f0]
call fcn.0040c2c0
push eax
push str.DeleteRebootReqRegKey
push str._s:_failed_registry_key_deletion:__s
push 6
call fcn.0040bbc0
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
push ecx
call sub.MSVCRT.dll__local_unwind2
add esp, 0x18
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.DeleteRebootReqRegKey
push str._s____DriverInstall_registry_key_deleted
push 6
call fcn.0040bbc0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
call fcn.004046a5
mov eax, 1
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [str.SOFTWAREMDCDriverInstall]
push edx
push str.DeleteRebootReqRegKey
push str._s_____s_does_not_exist
push 6
call fcn.0040bbc0
push 0xffffffffffffffff
lea eax, [ebp - 0x10]
push eax
call sub.MSVCRT.dll__local_unwind2
add esp, 0x18
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x407c90
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x3f0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x400]
push edi
push esi
push str.FC.EtCreatFile
push str._s___path__s___pf__
push 6
call fcn.0040bbc0
add esp, 0x10
mov byte [esp + 0x13], 0
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x407d3e
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
mov ecx, dword [0x459ef0]
push str.AegisP_Protocol__
mov ebx, eax
call fcn.004019c0
mov ecx, dword [0x459ef0]
push esi
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str._:
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str.Failed_to_Create
call fcn.00401ef0
push 0
push ebx
lea ecx, [esp + 0x20]
call fcn.0040c2c0
mov ecx, dword [0x459ef0]
push eax
call fcn.004019c0
jmp 0x407dcf
lea eax, [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x410]
mov dword [esp + 0x1c], 0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push ecx
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x407dc6
call edi
mov ecx, dword [0x459ef0]
push str.AegisP_Protocol__
mov ebx, eax
call fcn.004019c0
mov ecx, dword [0x459ef0]
push esi
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str._:
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str.Failed_to_write
call fcn.00401ef0
push 0
push ebx
lea ecx, [esp + 0x20]
call fcn.0040c2c0
mov ecx, dword [0x459ef0]
push eax
call fcn.004019c0
jmp 0x407dcb
mov byte [esp + 0x13], 1
test ebp, ebp
je 0x407e3a
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x407e3a
mov bl, byte [esp + 0x13]
test bl, bl
je 0x407e47
call edi
mov ecx, dword [0x459ef0]
push str.AegisP_Protocol__
mov edi, eax
call fcn.004019c0
mov ecx, dword [0x459ef0]
push esi
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str._:
call fcn.00401c80
mov ecx, dword [0x459ef0]
push str.Failed_to_close
call fcn.00401ef0
push 0
push edi
lea ecx, [esp + 0x20]
call fcn.0040c2c0
mov ecx, dword [0x459ef0]
push eax
call fcn.004019c0
mov bl, byte [esp + 0x13]
mov eax, str.true
test bl, bl
jne 0x407e4c
mov eax, str.false
push eax
push 0x412258
push 0x4183bc
push 6
call fcn.0040b7b0
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3f0
ret 8

Function at 0x408c40
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
push 0x4126ec
push str._s___
mov esi, ecx
push 6
call fcn.0040b7b0
xor ebx, ebx
add esp, 0xc
cmp word [esi], bx
jne 0x408c9a
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edi, eax
test edi, edi
je 0x408c7a
cmp edi, 0x104
jbe 0x408c9a
push str.windows_directory
push str.Windows_directory
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x105
push edi
mov ecx, esi
call fcn.00408340
jmp 0x408ca0
test esi, esi
mov ebx, esi
jne 0x408ca5
mov esi, 0x414c54
push esi
push str.FC.GetWindowsDirectoryOrNil
push str._s:____s
push 6
call fcn.0040bbc0
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
ret
Function at 0x408cc0
Capabilities:
Get common file path

Disassembly:
push ebx
push ebp
push esi
push edi
push 0x412740
push str._s___
mov ebp, ecx
push 6
call fcn.0040b7b0
lea esi, [ebp + 0x20a]
xor ebx, ebx
add esp, 0xc
cmp word [esi], bx
jne 0x408d21
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test edi, edi
je 0x408d01
cmp edi, 0x104
jbe 0x408d21
push str.windows_system32_directory
push str.Windows_system32_directory
push 0x105
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
mov ecx, ebp
call fcn.00408340
jmp 0x408d29
mov ebx, esi
test ebx, ebx
mov eax, ebx
jne 0x408d2e
mov eax, 0x414c54
push eax
push str.FC.GetSystemDirectoryOrNil
push str._s:____s
push 6
call fcn.0040bbc0
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x408f60
Capabilities:
Delete file

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
mov esi, ecx
push edi
push str.FC.RemoveBindCtlDll
push str._s___OUTPUT_error__lx___
push 6
call fcn.0040b7b0
add esp, 0x10
mov ecx, esi
xor bl, bl
mov dword [edi], 0
call fcn.00408ba0
test eax, eax
je 0x408fbe
lea ebp, [esi + 0xa32]
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x408fe1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
mov dword [edi], eax
je 0x408fbe
push ebp
push str.AegisP_network_components_installation_file
push eax
mov ecx, esi
call fcn.00408240
mov eax, str.false
push eax
push str.FC.RemoveBindCtlDll
push 0x4183bc
push 6
call fcn.0040b7b0
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
ret 4
mov bl, 1
mov eax, str.true
jmp 0x408fc3

Function at 0x408ff0
Capabilities:
Delete file
Move file

Disassembly:
sub esp, 0x20c
push ebx
push ebp
mov ebp, dword [esp + 0x218]
push esi
push edi
push ebp
push str.FC.MoveBindCtlDll
push str._s___OUTPUT_error__lx___
mov esi, ecx
push 6
call fcn.0040b7b0
add esp, 0x10
mov ecx, esi
xor bl, bl
mov dword [ebp], 0
call fcn.00408ba0
test eax, eax
je 0x40907a
lea edi, [esi + 0xa32]
lea eax, [esp + 0x10]
push edi
push eax
call dword [sym.imp.MSVCRT.dll_wcscpy]
lea ecx, [esp + 0x18]
push str..old
push ecx
call dword [sym.imp.MSVCRT.dll_wcscat]
add esp, 0x10
lea edx, [esp + 0x10]
push 1
push edx
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x4090a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push edi
push str.AegisP_network_components_installation_file
push eax
mov ecx, esi
mov dword [ebp], eax
call fcn.00408240
mov eax, str.false
push eax
push str.FC.MoveBindCtlDll
push 0x4183bc
push 6
call fcn.0040b7b0
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20c
ret 4
push 4
lea eax, [esp + 0x14]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov bl, 1
mov eax, str.true
jmp 0x40907f
Function at 0x409250
Capabilities:
Get file version info

Disassembly:
sub esp, 0x118
mov eax, dword [esp + 0x124]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x14], 0
test eax, eax
mov dword [esi], 0
je 0x40927e
mov word [eax], 0
mov ebp, dword [esp + 0x128]
lea eax, [esp + 0x1c]
push eax
push ebp
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebx, eax
test ebx, ebx
jbe 0x409375
push edi
push ebx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
push edi
push ebx
push 0
push ebp
mov dword [esp + 0x24], edi
call sub.VERSION.dll_GetFileVersionInfoW
lea ecx, [esp + 0x24]
lea edx, [esp + 0x1c]
push ecx
push edx
push str.VarFileInfoTranslation
push edi
call sub.VERSION.dll_VerQueryValueW
mov eax, dword [esp + 0x1c]
xor ecx, ecx
xor edx, edx
mov cx, word [eax + 2]
mov dx, word [eax]
push ecx
push edx
lea eax, [esp + 0x30]
push str.StringFileInfo_04x_04xProductVersion
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0x10
lea ecx, [esp + 0x18]
lea edx, [esp + 0x10]
lea eax, [esp + 0x28]
push ecx
push edx
push eax
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40936d
mov ecx, dword [esp + 0x10]
lea edi, [esi + 0xc]
lea ebx, [esi + 8]
lea ebp, [esi + 4]
push edi
push ebx
push ebp
push esi
push str._d__d__d__d
push ecx
call dword [sym.imp.MSVCRT.dll_swscanf]
add esp, 0x18
cmp eax, 1
jg 0x409342
mov edx, dword [esp + 0x10]
push edi
push ebx
push ebp
push esi
push str._d._d._d._d
push edx
call dword [sym.imp.MSVCRT.dll_swscanf]
add esp, 0x18
mov eax, dword [esp + 0x134]
test eax, eax
je 0x409369
mov ecx, dword [edi]
mov edx, dword [ebx]
push ecx
mov ecx, dword [ebp]
push edx
mov edx, dword [esi]
push ecx
push edx
push str._d._d._d._d
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0x18
mov edi, dword [esp + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x118
ret

Function at 0x409380
Capabilities:
Delete file
Get common file path

Disassembly:
sub esp, 0x400
lea eax, [esp + 0x200]
push esi
push eax
mov esi, ecx
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [esp + 4]
lea edx, [esp + 0x204]
push ecx
push 0
push 0x4192a4
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [esp + 4]
mov ecx, esi
push eax
call fcn.00408110
mov ecx, dword [esp + 0x40c]
mov edx, dword [esp + 0x408]
push ecx
lea eax, [esp + 8]
push edx
push eax
call fcn.00409250
add esp, 0xc
lea ecx, [esp + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop esi
add esp, 0x400
ret 8
Function at 0x40ab50
Capabilities:
Create thread

Disassembly:
sub esp, 0x1f8
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x20c]
mov esi, ecx
push edi
push str.S3T.BeginWorkerThread
push str._s___cwnd__lx___
push 6
call fcn.0040b7b0
mov ebp, dword [sym.imp.KERNEL32.dll_SetLastError]
add esp, 0x10
xor bl, bl
push 0
call ebp
lea edx, [esi + 4]
mov ecx, str.S3T.BeginWorkerThread
call fcn.0040ccd0
test eax, eax
jne 0x40abff
push eax
call ebp
test edi, edi
je 0x40ab9f
mov edi, dword [edi + 0x20]
lea eax, [esp + 0x10]
mov dword [esi + 0x38], edi
push eax
push 0
push 0
push 0x40aaf0
push 0x1000
push 0
call dword [sym.imp.MSVCRT.dll__beginthreadex]
add esp, 0x18
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp edi, 0xffffffff
mov dword [esi + 0x2c], eax
jne 0x40ac28
push 0
push 3
call fcn.0040b7b0
add esp, 8
test eax, eax
je 0x40abff
mov ecx, dword [esi + 0x2c]
push 0
push ecx
lea ecx, [esp + 0x1c]
call fcn.0040cae0
push eax
push str._beginthreadex:__s
push 3
call fcn.0040b7b0
add esp, 0xc
mov eax, str.false
push eax
push str.S3T.BeginWorkerThread
push 0x4183bc
push 6
call fcn.0040b7b0
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1f8
ret 4
mov edx, dword [esp + 0x10]
push 0
push 6
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edx
call fcn.0040b7b0
add esp, 8
test eax, eax
je 0x40ac5e
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
push eax
push ecx
push str.S3T.BeginWorkerThread
push str._s:_Created_Thread_Handle__lx__id__ld
push 6
call fcn.0040b7b0
add esp, 0x14
mov bl, 1
mov eax, str.true
jmp 0x40ac04
Function at 0x40ce10
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
mov ebp, 1
mov eax, dword [esi + 4]
push edi
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x14]
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esi + 8], ebp
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x28], 6
je 0x40ce49
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x10], eax
mov dword [esi + 0x34], 0xffffffff
mov eax, dword [0x45bac8]
cmp eax, ebx
je 0x40ce6f
cmp dword [esi + 0x2c], ebx
je 0x40ce6f
cmp dword [esi + 0x24], ebx
jne 0x40ce6f
cmp dword [esi + 0x14], ebx
je 0x40ce6f
mov dword [esi + 0x30], ebp
xor edi, edi
jmp 0x40ce75
mov edi, dword [esi + 0x14]
mov dword [esi + 0x30], ebx
mov eax, dword [esi + 0x24]
cmp eax, ebx
je 0x40ce81
mov dword [esi + 0x20], eax
jmp 0x40cea0
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x14]
push edi
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [esi + 0x20], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x20]
cmp eax, 0xffffffff
je 0x40cf4a
cmp eax, ebx
je 0x40cf7c
cmp eax, 0x102
jne 0x40cf63
mov eax, dword [esi + 0x14]
mov dword [esi + 0x18], ebp
neg edi
sbb edi, edi
and edi, 0xe
add edi, 0x12c
cmp eax, ebx
mov dword [esi + 8], edi
je 0x40cee9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
mov dword [esi + 0x34], eax
cmp dword [0x45bac8], ebx
je 0x40cf96
cmp dword [esi + 0x2c], ebx
je 0x40cf96
cmp dword [esi + 0x14], ebx
je 0x40cf96
cmp dword [esi + 0x24], ebx
jne 0x40cf96
mov ecx, esi
call fcn.0040cfb0
mov edi, dword [esi + 0x14]
mov dword [esi + 0x30], ebx
cmp edi, 0xffffffff
je 0x40cf33
mov eax, dword [esi + 0x34]
cmp eax, edi
jae 0x40cf96
sub edi, eax
cmp edi, 0x309
jbe 0x40cf3b
mov dword [esi + 0x30], ebp
mov edi, 0x309
mov dword [esi + 8], ebp
mov dword [esi + 0x28], 6
jmp 0x40ce75
mov ecx, esi
mov dword [esi + 8], 0x137
call fcn.0040cfb0
mov eax, dword [esi + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, esi
mov dword [esi + 8], 0x13d
call fcn.0040cfb0
mov eax, dword [esi + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0x14]
mov dword [esi + 0x1c], ebp
cmp eax, ebx
je 0x40cf93
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
mov dword [esi + 0x34], eax
mov dword [esi + 8], ebx
mov ecx, esi
call fcn.0040cfb0
mov eax, dword [esi + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x40f0d0
Capabilities:
Delete registry value

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [esp + 0x14]
xor bl, bl
mov eax, dword [esi + 0xc]
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test eax, eax
je 0x40f0fa
cmp eax, 2
mov dword [esi + 0x1c], eax
jne 0x40f11a
mov al, byte [esp + 0x18]
test al, al
je 0x40f102
pop edi
pop esi
mov al, 1
pop ebx
ret 0xc
mov ecx, dword [esi + 0x10]
push edi
add ecx, 8
mov edx, 0x74
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0040f770
jmp 0x40f131
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
push eax
add edx, 8
push edi
push edx
mov edx, 0x75
call fcn.0040f790
mov dword [esi + 0x14], 3
add esi, 0x20
push edi
push esi
xor edx, edx
mov ecx, str.Class_Key.DeleteValue.QSName
call fcn.0040ef20
pop edi
mov al, bl
pop esi
pop ebx
ret 0xc

Function at 0x40f1d0
Capabilities:
Query or enumerate registry value

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, ecx
lea eax, [esp + 0x18]
push edi
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0xc]
push eax
lea edx, [esp + 0x1c]
push ecx
mov dword [ebp], 0
mov eax, dword [esi + 0xc]
push edx
push 0
push edi
push eax
mov dword [esp + 0x34], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40f24e
cmp eax, 2
mov dword [esi + 0x1c], eax
jne 0x40f235
mov al, byte [esp + 0x20]
test al, al
je 0x40f226
pop edi
pop esi
mov al, 1
pop ebp
pop ecx
ret 0x10
mov ecx, dword [esi + 0x10]
push edi
add ecx, 8
mov edx, 0x72
push ecx
jmp 0x40f279
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
push eax
add edx, 8
push edi
push edx
mov edx, 0x6f
call fcn.0040f790
jmp 0x40f282
cmp dword [esp + 0x18], 4
jne 0x40f26c
cmp dword [esp + 0x1c], 4
jne 0x40f26c
mov eax, dword [esp + 0xc]
pop edi
mov dword [ebp], eax
pop esi
mov al, 1
pop ebp
pop ecx
ret 0x10
mov ecx, dword [esi + 0x10]
push edi
add ecx, 8
mov edx, 0x70
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0040f770
lea edx, [esi + 0x20]
push edi
push edx
xor edx, edx
mov ecx, str.Class_Key.QueryIntValue.QSName
mov dword [esi + 0x14], 5
call fcn.0040ef20
mov dword [esi + 0x24], 1
pop edi
pop esi
xor al, al
pop ebp
pop ecx
ret 0x10
Function at 0x40f2b0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x7d8
push ebx
push esi
mov esi, ecx
lea eax, [esp + 8]
push edi
mov edi, dword [esp + 0x7f0]
lea ecx, [esp + 0x14]
push eax
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0
push edi
push eax
xor bl, bl
mov dword [esp + 0x24], 0x7d0
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x40f356
cmp eax, 2
mov dword [esi + 0x1c], eax
jne 0x40f337
mov al, byte [esp + 0x7f8]
test al, al
je 0x40f319
mov ecx, dword [esp + 0x7f4]
call fcn.0040ef80
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x7d8
ret 0x14
mov ecx, dword [esi + 0x10]
push edi
add ecx, 8
mov edx, 0x72
push ecx
mov ecx, dword [esp + 0x7f4]
call fcn.0040f770
jmp 0x40f3da
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x7ec]
push eax
add edx, 8
push edi
push edx
mov edx, 0x6f
call fcn.0040f790
jmp 0x40f3da
cmp dword [esp + 0x10], 1
je 0x40f378
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x7ec]
add eax, 8
push edi
push eax
mov edx, 0x71
call fcn.0040f770
jmp 0x40f3da
mov edx, dword [esp + 0xc]
mov eax, edx
shr eax, 1
je 0x40f3c0
lea ecx, [eax + eax]
cmp edx, ecx
jne 0x40f3c0
cmp word [esp + ecx + 0x12], 0
jne 0x40f3c0
mov edx, dword [esp + 0x7f4]
dec eax
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x7f0]
push edx
xor edx, edx
call fcn.0040ee20
test al, al
je 0x40f3da
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x7d8
ret 0x14
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x7ec]
push edx
add eax, 8
push edi
push eax
mov edx, 0x79
call fcn.0040f780
lea ecx, [esi + 0x20]
push edi
push ecx
xor edx, edx
mov ecx, str.Class_Key.QueryTextValueT.QSName
mov dword [esi + 0x14], 5
call fcn.0040ef20
mov dword [esi + 0x24], 2
pop edi
mov al, bl
pop esi
pop ebx
add esp, 0x7d8
ret 0x14

Function at 0x40f520
Capabilities:
Set registry value

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x1c]
mov esi, ecx
push 4
push eax
mov ecx, dword [esi + 0xc]
push 4
push 0
push edi
push ecx
xor bl, bl
mov dword [esp + 0x34], ebp
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x40f597
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x10]
push edx
add eax, 8
push edi
push eax
mov edx, 0x76
call fcn.0040f780
lea ecx, [esi + 0x20]
push edi
push ecx
xor edx, edx
mov ecx, str.Class_Key.SetIntValue.QSName
mov dword [esi + 0x14], 6
call fcn.0040ef20
mov dword [esi + 0x24], 1
mov dword [esi + 0x28], ebp
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
ret 0xc
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
ret 0xc
Function at 0x40f5a0
Capabilities:
Set registry value

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
mov esi, ecx
push edi
xor bl, bl
call dword [sym.imp.MSVCRT.dll_wcslen]
mov ebp, dword [esp + 0x1c]
add esp, 4
lea eax, [eax + eax + 2]
push eax
mov eax, dword [esi + 0xc]
push edi
push 1
push 0
push ebp
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x40f626
mov ecx, dword [esi + 0x10]
push edi
add ecx, 8
push ebp
push ecx
mov ecx, dword [esp + 0x20]
mov edx, 0x78
mov dword [esi + 0x1c], eax
call fcn.0040f780
lea edx, [esi + 0x20]
push ebp
push edx
xor edx, edx
mov ecx, str.Class_Key.SetStringValueT.QSName
mov dword [esi + 0x14], 6
call fcn.0040ef20
mov dword [esi + 0x24], 2
add esi, 0x2c
push edi
push esi
xor edx, edx
mov ecx, str.Key.KeySetStringValueT.value
call fcn.0040ef20
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
ret 0xc
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
ret 0xc
Function at 0x82f2b5
Capabilities:
Execute anti-debugging instructions

Disassembly:
push word [esp + 1]
push word [esp + 1]
pushal
mov dword [esp + 1], eax
clc
jmp 0x82f2f9
pushal
push dword [esp + 8]
lea eax, [ecx - 0x53]
dec ax
lea eax, [esi*4]
pop eax
jmp 0x82f351
mov eax, 0x4f30a3f8
rdtsc
xchg edx, eax
cmc
xchg edx, eax
xchg edx, eax
jmp 0x82f383
mov ax, word [esp + 0x14]
bswap eax
setne al
mov dword [esp + 9], edx
inc ax
mov dx, word [esp]
jmp 0x82f32d
xchg dh, al
mov dl, dh
bswap eax
rdtsc
neg dh
inc ch
jmp 0x82f430
bts eax, edi
clc
mov ax, 0xc41b
pushal
mov dword [esp + 0xd], ecx
mov eax, 0x8960c41b
dec esp
and al, 0xd
neg cl
jmp 0x82f367
mov dl, byte [esp]
lea ecx, [esi*4]
sub esp, 0xc
xchg dh, al
xchg word [esp + 5], dx
cmp ecx, ecx
call 0x82f408
xor ch, byte [0xcae18166]
loope 0x82f439
and cx, 0xe1ca
xchg cx, dx
xchg ecx, edx
ror edx, 0x17
mov ecx, dword [esp]
mov al, ah
mov cl, 0xea
jmp 0x82f3b0
pop ax
bswap ecx
push word [esp + 9]
pop word [esp + 9]
call fcn.0082f40a
xor edi, dword [esi + reloc.RASAPI32.dll_RasHangUpA]
pop ds
xchg ebx, eax
add esp, dword [esi - 0x6b]
jno 0x82f388
adc al, 0x8a
in eax, dx
sbb al, 0xf5
add eax, eax
jmp 0x82f3e1
rdtsc
bsf ax, si
mov dx, 0x728f
rcr edx, 3
jb 0x82f3fc
fiadd dword [ebx]
bsf ax, si
mov ecx, dword [esp]
jmp 0x82f3cd