joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401d80
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, dword [esp + 8]
push edi
mov edi, ecx
test ebp, ebp
mov eax, ebp
jne 0x401d93
mov eax, 0x412b48
push ebx
push esi
push eax
push 0x40f80c
push 0x412b30
push 6
call fcn.0040a790
push ebp
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 0x14
lea esi, [edi + 0xa0]
mov ecx, esi
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0x40f7fc
push str._s:_1
push 5
call fcn.0040a380
add esp, 0xc
mov ecx, esi
push 0xffffffffffffffff
call sub.MFC42u.DLL_CRichEditCtrl::LineIndex
push 0xffffffffffffffff
mov ecx, esi
mov ebx, eax
call sub.MFC42u.DLL_CRichEditCtrl::LineLength
add ebx, eax
mov eax, dword [edi + 0xc0]
push ebp
push 0
push 0xc2
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x40f7fc
push str._s:_2
push 5
call fcn.0040a380
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea edx, [ebx + ecx]
mov ecx, esi
push edx
push ebx
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0xff
mov ecx, esi
call fcn.00406a60
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0xd
mov ecx, esi
call fcn.00406990
push 0x40f7fc
push str._s:_3
push 5
call fcn.0040a380
add esp, 0xc
mov ecx, edi
call fcn.00401cc0
mov eax, dword [edi + 0x288]
pop esi
cmp eax, 1
pop ebx
jne 0x401e8b
push str._r_nlog
mov ecx, 0x44a264
call fcn.0040ec64
push ebp
mov ecx, 0x44a264
call fcn.0040ec64
push 0x40f7fc
push str._s:__
push 6
call fcn.0040a380
add esp, 0xc
pop edi
pop ebp
ret 4

Function at 0x401f30
Capabilities:
Get graphical window text

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
push esi
test ebp, ebp
push edi
mov ebx, ecx
mov eax, ebp
jne 0x401f45
mov eax, 0x412b48
push eax
push 0x40f894
push 0x412b30
push 6
call fcn.0040a790
push ebp
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 0x14
lea esi, [ebx + 0xa0]
mov ecx, esi
mov dword [esp + 0x14], eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0x40f87c
push str._s:_1
push 5
call fcn.0040a380
add esp, 0xc
mov ecx, esi
push 0xffffffffffffffff
call sub.MFC42u.DLL_CRichEditCtrl::LineIndex
push 0xffffffffffffffff
mov ecx, esi
mov edi, eax
call sub.MFC42u.DLL_CRichEditCtrl::LineLength
add edi, eax
mov eax, dword [ebx + 0xc0]
push ebp
push 0
push 0xc2
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x40f87c
push str._s:_2
push 5
call fcn.0040a380
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea edx, [edi + ecx]
mov ecx, esi
push edx
push edi
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0xff
mov ecx, esi
call fcn.00406a60
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call sub.MFC42u.DLL_CRichEditCtrl::SetSel
push 0xd
mov ecx, esi
call fcn.00406990
mov ecx, ebx
call fcn.00401d10
push 0x40f87c
push str._s:__
push 6
call fcn.0040a380
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
ret 4
Function at 0x403550
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x318
mov eax, dword [0x41359c]
push ebx
push esi
push edi
mov dword [esp + 0x224], eax
mov edx, dword [0x41298c]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x228]
xor esi, esi
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc]
mov ebx, 0x100
push ecx
push 0xf003f
push esi
push edx
push 0x80000002
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4035d6
mov ecx, dword [0x41298c]
lea eax, [esp + 0xc]
push esi
push eax
push esi
push 0xf003f
push esi
push esi
push esi
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x403720
lea edx, [esp + 0x10]
lea eax, [esp + 0x224]
push edx
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
push ecx
push esi
push esi
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x403602
mov dword [esp + 0x10], esi
jmp 0x403720
lea eax, [esp + 0x224]
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
mov dx, word [0x44a278]
mov dword [esp + 0x18], eax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x12e]
mov word [esp + 0x12c], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x2e]
mov word [esp + 0x2c], dx
rep stosd dword es:[edi], eax
add esp, 4
lea ecx, [esp + 0x20]
stosw word es:[edi], ax
lea edx, [esp + 0x28]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push esi
lea edx, [esp + 0x138]
push ecx
push edx
push esi
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], ebx
call ebp
cmp eax, 0x103
je 0x40371d
test eax, eax
jne 0x40371d
lea ecx, [esp + 0x28]
push str.single_bind
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x4036ae
inc dword [esp + 0x1c]
mov dx, word [0x44a278]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x12a]
mov word [esp + 0x128], dx
mov word [esp + 0x28], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x2a]
lea edx, [esp + 0x20]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x28]
push edx
lea ecx, [esp + 0x28]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x24]
push 0
lea eax, [esp + 0x138]
inc esi
push edx
push eax
push esi
push ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], ebx
call ebp
cmp eax, 0x103
jne 0x40368b
xor esi, esi
pop ebp
mov eax, dword [esp + 0xc]
cmp eax, esi
je 0x403734
cmp eax, 0xffffffff
je 0x403734
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 0x10]
pop edi
cmp eax, esi
pop esi
pop ebx
jne 0x403749
or eax, 0xffffffff
add esp, 0x318
ret
cmp dword [esp + 0xc], eax
sbb eax, eax
inc eax
add esp, 0x318
ret
Function at 0x403760
Capabilities:
Terminate process

Disassembly:
sub esp, 0x108
push esi
push 0x40f9b0
push str._s___
mov esi, ecx
push 6
mov dword [esp + 0x10], 0xffffffff
call fcn.0040a380
add esp, 0xc
mov ecx, esi
call fcn.00405e80
push 0x40f9b0
push str._s:_1:_DisableButtons
push 5
call fcn.0040a380
add esp, 0xc
lea eax, [esi + 0x2d8]
lea ecx, [esp + 8]
push str.___Uninstalling
push eax
push ecx
call sub.MFC42u.DLL_operator
mov eax, dword [eax]
mov ecx, esi
push eax
call fcn.004017c0
lea ecx, [esp + 8]
call fcn.0040eb62
mov edx, dword [esi + 0x294]
mov ecx, dword [0x44a270]
lea eax, [esp + 4]
push edx
push eax
push 0
push ecx
push 0xffffffffffffffff
call fcn.00403290
add esp, 0x14
test al, al
jne 0x403828
push str.Warning:_a_driver_registration_inconsistency_detected.
mov ecx, esi
call fcn.00401980
push str.Please_check_the_VendorName_you_specified.
mov ecx, esi
call fcn.00401980
push str.It_also_could_be_caused_by_errorneous_previous_installations___uninstallations.
mov ecx, esi
call fcn.00401980
push str.This_is_just_a_warning._Chances_are__you_wont_experience_any_real_problems.
mov ecx, esi
call fcn.00401980
push str.The_only_thing_it_might_have_any_impact_on__is_accidental_driver_deletion_protection.
mov ecx, esi
call fcn.00401980
mov eax, dword [esp + 4]
test eax, eax
je 0x403893
mov eax, dword [esi + 0x248]
test eax, eax
jne 0x403893
push str.Driver_uninstallation_complete.
mov ecx, esi
call fcn.00401980
push str.The_driver_will_still_appear_in_the_system__because_other_vendors_seem_to_be_using_it_yet.
mov ecx, esi
call fcn.00401980
mov edx, dword [esp + 4]
lea eax, [esp + 0xc]
push edx
push str.NOT_registered
push str.Registration_status:__s___u_registrations_total_.
push eax
call dword [sym.imp.MSVCRT.dll_swprintf]
add esp, 0x10
lea ecx, [esp + 0xc]
push ecx
mov ecx, esi
call fcn.00401980
mov ecx, esi
call fcn.00405be0
cmp dword [esi + 0x288], 1
jne 0x4038e0
push 0
call dword [sym.imp.MSVCRT.dll_exit]
push 0x40f9b0
push str._s:_2:_S3ActionUnsinstallThenStop
push 5
mov dword [0x4479f0], 6
mov dword [0x4479fc], 0x4135f0
mov dword [0x447a00], 0x4135bc
call fcn.0040a380
add esp, 0xc
mov ecx, esi
call fcn.004041d0
push 0x40f9b0
push str._s:_2:_DoRemoveProtocol
push 5
call fcn.0040a380
add esp, 0xc
push 0x40f9b0
push str._s:__
push 6
call fcn.0040a380
add esp, 0xc
pop esi
add esp, 0x108
ret
Function at 0x4071e0
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 0x4101e0
push str._s___path__s___pf__
push 6
call fcn.0040a790
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 0x40728e
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
mov ecx, dword [0x44a268]
push str.AegisP_Protocol__
mov ebx, eax
call fcn.00401980
mov ecx, dword [0x44a268]
push esi
call fcn.00401c40
mov ecx, dword [0x44a268]
push str._:
call fcn.00401c40
mov ecx, dword [0x44a268]
push str.Failed_to_Create
call fcn.00401eb0
push 0
push ebx
lea ecx, [esp + 0x20]
call fcn.0040b0f0
mov ecx, dword [0x44a268]
push eax
call fcn.00401980
jmp 0x40731f
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 0x407316
call edi
mov ecx, dword [0x44a268]
push str.AegisP_Protocol__
mov ebx, eax
call fcn.00401980
mov ecx, dword [0x44a268]
push esi
call fcn.00401c40
mov ecx, dword [0x44a268]
push str._:
call fcn.00401c40
mov ecx, dword [0x44a268]
push str.Failed_to_write
call fcn.00401eb0
push 0
push ebx
lea ecx, [esp + 0x20]
call fcn.0040b0f0
mov ecx, dword [0x44a268]
push eax
call fcn.00401980
jmp 0x40731b
mov byte [esp + 0x13], 1
test ebp, ebp
je 0x40738a
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x40738a
mov bl, byte [esp + 0x13]
test bl, bl
je 0x407397
call edi
mov ecx, dword [0x44a268]
push str.AegisP_Protocol__
mov edi, eax
call fcn.00401980
mov ecx, dword [0x44a268]
push esi
call fcn.00401c40
mov ecx, dword [0x44a268]
push str._:
call fcn.00401c40
mov ecx, dword [0x44a268]
push str.Failed_to_close
call fcn.00401eb0
push 0
push edi
lea ecx, [esp + 0x20]
call fcn.0040b0f0
mov ecx, dword [0x44a268]
push eax
call fcn.00401980
mov bl, byte [esp + 0x13]
mov eax, str.true
test bl, bl
jne 0x40739c
mov eax, str.false
push eax
push 0x4101d0
push 0x415df8
push 6
call fcn.0040a380
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3f0
ret 8

Function at 0x407cb0
Capabilities:
Get common file path

Disassembly:
push ebx
push esi
push edi
push 0x41048c
push str._s___
mov esi, ecx
push 6
call fcn.0040a380
xor ebx, ebx
add esp, 0xc
cmp word [esi], bx
jne 0x407d0a
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov edi, eax
test edi, edi
je 0x407cea
cmp edi, 0x104
jbe 0x407d0a
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.00407730
jmp 0x407d10
test esi, esi
mov ebx, esi
jne 0x407d15
mov esi, 0x412b48
push esi
push 0x4104a8
push str._s:____s
push 6
call fcn.0040a790
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
ret
Function at 0x407d30
Capabilities:
Get common file path

Disassembly:
push ebx
push ebp
push esi
push edi
push 0x4104e0
push str._s___
mov ebp, ecx
push 6
call fcn.0040a380
lea esi, [ebp + 0x20a]
xor ebx, ebx
add esp, 0xc
cmp word [esi], bx
jne 0x407d91
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test edi, edi
je 0x407d71
cmp edi, 0x104
jbe 0x407d91
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.00407730
jmp 0x407d99
mov ebx, esi
test ebx, ebx
mov eax, ebx
jne 0x407d9e
mov eax, 0x412b48
push eax
push 0x4104fc
push str._s:____s
push 6
call fcn.0040a790
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x407e50
Capabilities:
Delete file

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
mov esi, ecx
push edi
push 0x410548
push str._s___OUTPUT_error__lx___
push 6
call fcn.0040a380
add esp, 0x10
mov ecx, esi
xor bl, bl
mov dword [edi], 0
call fcn.00407c10
test eax, eax
je 0x407eae
lea ebp, [esi + 0xa32]
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x407ed1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
mov dword [edi], eax
je 0x407eae
push ebp
push str.AegisP_network_components_installation_file
push eax
mov ecx, esi
call fcn.00407630
mov eax, str.false
push eax
push 0x410548
push 0x415df8
push 6
call fcn.0040a380
add esp, 0x10
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
ret 4
mov bl, 1
mov eax, str.true
jmp 0x407eb3

Function at 0x407ee0
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 0x41055c
push str._s___OUTPUT_error__lx___
mov esi, ecx
push 6
call fcn.0040a380
add esp, 0x10
mov ecx, esi
xor bl, bl
mov dword [ebp], 0
call fcn.00407c10
test eax, eax
je 0x407f6a
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 0x407f93
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.00407630
mov eax, str.false
push eax
push 0x41055c
push 0x415df8
push 6
call fcn.0040a380
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 0x407f6f
Function at 0x408120
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 0x40814e
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 0x408245
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 0x40823d
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 0x408212
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 0x408239
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 0x408250
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 0x4169fc
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [esp + 4]
mov ecx, esi
push eax
call fcn.004074a0
mov ecx, dword [esp + 0x40c]
mov edx, dword [esp + 0x408]
push ecx
lea eax, [esp + 8]
push edx
push eax
call fcn.00408120
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 0x409760
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 0x41076c
push str._s___cwnd__lx___
push 6
call fcn.0040a380
mov ebp, dword [sym.imp.KERNEL32.dll_SetLastError]
add esp, 0x10
xor bl, bl
push 0
call ebp
lea edx, [esi + 4]
mov ecx, 0x41076c
call fcn.0040b8b0
test eax, eax
jne 0x40980f
push eax
call ebp
test edi, edi
je 0x4097af
mov edi, dword [edi + 0x20]
lea eax, [esp + 0x10]
mov dword [esi + 0x38], edi
push eax
push 0
push 0
push 0x409700
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 0x409838
push 0
push 3
call fcn.0040a380
add esp, 8
test eax, eax
je 0x40980f
mov ecx, dword [esi + 0x2c]
push 0
push ecx
lea ecx, [esp + 0x1c]
call fcn.0040b6c0
push eax
push str._beginthreadex:__s
push 3
call fcn.0040a380
add esp, 0xc
mov eax, str.false
push eax
push 0x41076c
push 0x415df8
push 6
call fcn.0040a380
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.0040a380
add esp, 8
test eax, eax
je 0x40986e
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
push eax
push ecx
push 0x41076c
push str._s:_Created_Thread_Handle__lx__id__ld
push 6
call fcn.0040a380
add esp, 0x14
mov bl, 1
mov eax, str.true
jmp 0x409814
Function at 0x40b9f0
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 0x40ba29
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x10], eax
mov dword [esi + 0x34], 0xffffffff
mov eax, dword [0x44b408]
cmp eax, ebx
je 0x40ba4f
cmp dword [esi + 0x2c], ebx
je 0x40ba4f
cmp dword [esi + 0x24], ebx
jne 0x40ba4f
cmp dword [esi + 0x14], ebx
je 0x40ba4f
mov dword [esi + 0x30], ebp
xor edi, edi
jmp 0x40ba55
mov edi, dword [esi + 0x14]
mov dword [esi + 0x30], ebx
mov eax, dword [esi + 0x24]
cmp eax, ebx
je 0x40ba61
mov dword [esi + 0x20], eax
jmp 0x40ba80
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 0x40bb2a
cmp eax, ebx
je 0x40bb5c
cmp eax, 0x102
jne 0x40bb43
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 0x40bac9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x10]
mov dword [esi + 0x34], eax
cmp dword [0x44b408], ebx
je 0x40bb76
cmp dword [esi + 0x2c], ebx
je 0x40bb76
cmp dword [esi + 0x14], ebx
je 0x40bb76
cmp dword [esi + 0x24], ebx
jne 0x40bb76
mov ecx, esi
call fcn.0040bb90
mov edi, dword [esi + 0x14]
mov dword [esi + 0x30], ebx
cmp edi, 0xffffffff
je 0x40bb13
mov eax, dword [esi + 0x34]
cmp eax, edi
jae 0x40bb76
sub edi, eax
cmp edi, 0x309
jbe 0x40bb1b
mov dword [esi + 0x30], ebp
mov edi, 0x309
mov dword [esi + 8], ebp
mov dword [esi + 0x28], 6
jmp 0x40ba55
mov ecx, esi
mov dword [esi + 8], 0x137
call fcn.0040bb90
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.0040bb90
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 0x40bb73
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.0040bb90
mov eax, dword [esi + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
Function at 0x40dcb0
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 0x40dcda
cmp eax, 2
mov dword [esi + 0x1c], eax
jne 0x40dcfa
mov al, byte [esp + 0x18]
test al, al
je 0x40dce2
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.0040e350
jmp 0x40dd11
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
push eax
add edx, 8
push edi
push edx
mov edx, 0x75
call fcn.0040e370
mov dword [esi + 0x14], 3
add esi, 0x20
push edi
push esi
xor edx, edx
mov ecx, str.Class_Key.DeleteValue.QSName
call fcn.0040db00
pop edi
mov al, bl
pop esi
pop ebx
ret 0xc

Function at 0x40ddb0
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 0x40de2e
cmp eax, 2
mov dword [esi + 0x1c], eax
jne 0x40de15
mov al, byte [esp + 0x20]
test al, al
je 0x40de06
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 0x40de59
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x14]
push eax
add edx, 8
push edi
push edx
mov edx, 0x6f
call fcn.0040e370
jmp 0x40de62
cmp dword [esp + 0x18], 4
jne 0x40de4c
cmp dword [esp + 0x1c], 4
jne 0x40de4c
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.0040e350
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.0040db00
mov dword [esi + 0x24], 1
pop edi
pop esi
xor al, al
pop ebp
pop ecx
ret 0x10