joyce8/EMBER2024-capa huggingface dataset:
Function at 0x45b714
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
lea eax, [ebp - 0x10]
mov edx, dword [0x41506c]
call fcn.00404f94
xor eax, eax
push ebp
push 0x45b858
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x46edec], 0
jne 0x45b767
mov ecx, dword [0x46f578]
mov dl, 1
mov eax, dword [0x4078d0]
call fcn.0040c028
call fcn.00403ff0
lea eax, [ebp - 0x20]
xor ecx, ecx
mov edx, 0x10
call fcn.00403100
mov eax, ebx
call fcn.00404e64
mov dword [ebp - 0x1c], eax
push esi
push edi
mov esi, 0x45b868
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
call fcn.00405f18
xor eax, eax
mov dword [ebp - 8], eax
mov eax, ebx
call fcn.00404e74
test eax, eax
jle 0x45b7ff
mov dword [ebp - 4], 0x10
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.KERNEL32.DLL_GetComputerNameA
test eax, eax
je 0x45b7f8
lea eax, [ebp - 0x44]
mov edx, ebx
call fcn.0040485c
mov eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x40]
mov ecx, 0x10
call fcn.00404844
mov eax, dword [ebp - 0x48]
pop edx
call fcn.00408710
test eax, eax
jne 0x45b7f8
mov ebx, 0x15
jmp 0x45b804
mov ebx, 0x10
jmp 0x45b804
mov ebx, 0x15
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 0x20]
push eax
push ebx
push 0
push esi
call dword [0x46edec]
call fcn.0045b66c
mov eax, dword [ebp - 8]
call fcn.0045b66c
mov eax, edi
mov edx, dword [ebp - 0xc]
call fcn.00405f30
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45b85f
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.004045f8
lea eax, [ebp - 0x10]
mov edx, dword [0x41506c]
call fcn.00405064
ret

Function at 0x467c6c
Capabilities:
Hash data with md5

Disassembly:
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
xor edx, edx
mov dword [eax + 0x10], edx
xor edx, edx
mov dword [eax + 0x14], edx
add eax, 0x18
mov edx, 0x40
call fcn.00407314
ret
Function at 0x401670
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x401685
pop ebp
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x4016c4
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [ebp + 0x10]
lea edx, [esi + eax]
and ecx, 0xf
jbe 0x4016c0
lea ebx, [ebx]
cmp esi, edx
jae 0x4016c4
movzx eax, word [esi]
lea esi, [esi + eax*2]
add esi, 2
dec ecx
jne 0x4016b0
cmp esi, edx
jb 0x4016c9
xor eax, eax
pop esi
pop ebp
ret
xor eax, eax
cmp word [esi], ax
cmove esi, eax
mov eax, esi
pop esi
pop ebp
ret
Function at 0x403be0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
movzx eax, word [ebp + 8]
mov dword [ebp + 8], eax
pop ebp
jmp fcn.00422941

Function at 0x408c10
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56d050
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 1
push 0
push str.CInstructions::DeleteModuleIfPartial
lea ecx, [ebp - 0x1c]
call fcn.0055c1a0
xor bl, bl
cmp dword [ebp + 0xc], 0xffffffff
mov dword [ebp - 4], 0
je 0x408cc2
lea ecx, [ebp - 0x30]
call fcn.00426c87
mov esi, dword [ebp + 8]
push 0
push 0
push dword [esi]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.0042721b
cmp eax, 1
jne 0x408cb6
lea ecx, [ebp - 0x30]
call fcn.0042713e
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
cdq
cmp ecx, eax
jne 0x408c93
cmp dword [ebp - 0x10], edx
je 0x408cb6
lea ecx, [ebp - 0x30]
mov bl, 1
call fcn.00426f65
push dword [esi]
push str._CInstructions::DeleteModuleIfPartial__Deleting_incomplete_file___s__from_tmp
push 2
call fcn.0055b0c0
add esp, 0xc
push dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0
call fcn.00426cfd
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call fcn.0055c210
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409fd0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56d348
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 1
push 0
push str.CInstructions::RegisterPackageAndComponents
lea ecx, [ebp - 0x28]
call fcn.0055c1a0
lea eax, [edi + 0xc]
push eax
mov dword [ebp - 4], 0
call fcn.004072d0
mov esi, dword [edi + 0x2c]
add esp, 4
cmp esi, dword [edi + 0x30]
je 0x40a0b0
or ebx, 0xffffffff
lea ecx, [ecx]
mov ecx, dword [esi]
lea eax, [ebp - 0x10]
push eax
call fcn.00408e50
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 1
cmp dword [eax - 0xc], 0
je 0x40a0d1
mov ecx, dword [esi]
lea eax, [ebp - 0x14]
push eax
call fcn.00408ef0
lea ecx, [ebp - 0x10]
push ecx
push eax
mov byte [ebp - 4], 4
call fcn.00407030
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a088
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
add esi, 8
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40a0ab
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp esi, dword [edi + 0x30]
jne 0x40a030
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.0055c210
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004157d7
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40a0ed
push 0x80004005
call fcn.00401220
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov ecx, dword [esi]
lea eax, [ebp - 0x18]
push eax
mov byte [ebp - 4], 2
call fcn.00409390
push dword [eax]
lea eax, [ebp - 0x14]
push str.There_is_no_checksum_associated_with_module___s_.
push eax
mov byte [ebp - 4], 3
call fcn.00403f10
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
add esp, 0xc
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x40a13e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00558540
push 0x5d5ba8
lea eax, [ebp - 0x1c]
push eax
call fcn.00539d85
int3
Function at 0x40cfd0
Capabilities:
Query or enumerate registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56d92c
mov eax, dword fs:[0]
push eax
sub esp, 0xe4
mov eax, dword [0x5f4e20]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0xec]
push eax
push 1
push 0
push str.SoftwareMicrosoftInternet_Explorer
push reloc.OLEAUT32.dll_SysReAllocString
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40d1e5
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0xd8]
push eax
push 0
push 0
push str.Version
push dword [ebp - 0xec]
mov dword [ebp - 0xf0], 0xc8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40d1d5
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00401030
lea eax, [ebp - 0xe4]
push eax
push 0x587834
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 4], 0
mov dword [ebp - 0xe4], 0
call fcn.00402c90
push dword [ebp - 0xdc]
mov byte [ebp - 4], 1
call fcn.0053b07e
add esp, 4
or esi, 0xffffffff
cmp eax, 5
jle 0x40d0b9
mov bl, 1
jmp 0x40d18e
push dword [ebp - 0xdc]
call fcn.0053b07e
add esp, 4
cmp eax, 5
jne 0x40d18e
lea eax, [ebp - 0xe4]
push eax
push 0x587834
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00402c90
push eax
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 2
call fcn.00401f50
mov edx, dword [ebp - 0xe8]
add edx, 0xfffffff0
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d121
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xdc]
call fcn.0053b07e
add esp, 4
test eax, eax
jle 0x40d137
mov bl, 1
jmp 0x40d18e
lea eax, [ebp - 0xe4]
push eax
push 0x587834
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0xe0]
call fcn.00402c90
push eax
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 3
call fcn.00401f50
lea ecx, [ebp - 0xe8]
call fcn.004010f0
push dword [ebp - 0xdc]
call fcn.0053b07e
movzx ebx, bl
add esp, 4
mov ecx, 1
cmp eax, 0xc1f
cmovge ebx, ecx
mov edx, dword [ebp - 0xdc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d1b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xe0]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x40d1d5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xec]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
jne 0x40d201
push 0
push str.Installation_Error
push 0x587838
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00539682
mov esp, ebp
pop ebp
ret
Function at 0x40d220
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x5f4e20]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x11c
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.0053af40
add esp, 0xc
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x40d299
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x40d299
push eax
push str.Installation_Error
push str.Failed_to_install_as_the_OS_version_could_not_be_determined.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
cmp dword [ebp - 0x110], 1
jne 0x40d2be
push 0
push str.Installation_Error
push str.Sorry__Cannot_install_the_software_as_Windows_95__98_and_ME_are_not_supported.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00539682
mov esp, ebp
pop ebp
ret

Function at 0x40d370
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56d9a3
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.004157d7
xor edx, edx
mov ecx, eax
test ecx, ecx
setne dl
test edx, edx
jne 0x40d3b5
push 0x80004005
call fcn.00401220
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi + 8], eax
mov al, byte [ebp + 0x10]
mov byte [esi + 0xc], al
mov al, byte [ebp + 0x14]
mov byte [esi + 0xd], al
mov dword [ebp - 4], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi], 1
mov byte [esi + 4], 0
push dword [0x5ef6d8]
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call fcn.0040d960
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x40d710
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56da58
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 1
push 0
push 0x587a0c
lea ecx, [ebp - 0x24]
call fcn.0055c1a0
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 4], 1
call fcn.0055cc70
mov dword [ebp - 0x14], eax
cmp byte [esi + 0xc], 0
mov byte [ebp - 4], 2
jne 0x40d89a
push dword [0x5ef6d8]
lea ecx, [ebp - 0x14]
call fcn.0055ccf0
test al, al
je 0x40d84d
push dword [0x5ef6d8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x14]
call fcn.0040dd90
push dword [ebp - 0x10]
mov byte [ebp - 4], 3
push str._CRunModule::GetResultFile__Result.txt_file____s_
push 3
call fcn.0055b0c0
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov ecx, dword [eax - 0xc]
or ebx, 0xffffffff
test ecx, ecx
je 0x40d81e
jns 0x40d7d0
push 0x80070057
call fcn.00401220
movzx eax, word [eax]
sub eax, 0x30
mov dword [esi], eax
push 1
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x10]
call fcn.00409730
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.0040ddc0
lea edi, [esi + 8]
push eax
mov ecx, edi
call fcn.00401f50
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40d82d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40d82d
lea edi, [esi + 8]
push str.The_Result.txt_file_is_empty_
mov ecx, edi
call fcn.00401110
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x40d85e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40d85e
push 0x1e
lea edi, [esi + 8]
push str.Failed_to_load_Result.txt_file
mov ecx, edi
call fcn.004015a0
cmp byte [esi + 0xd], 0
je 0x40d885
cmp dword [esi], 0
je 0x40d885
push str._CRunModule::GetResultFile__Ignoring_failure_setting_exit_code_to_0
push 0
call fcn.0055b0c0
add esp, 8
mov ecx, edi
call fcn.00401240
mov dword [esi], 0
push dword [edi]
push dword [esi]
push str._CRunModule::GetResultFile__ExitCode___d__Message__s_
push 0
call fcn.0055b0c0
add esp, 0x10
jmp 0x40d8af
push str._CRunModule::GetResultFile__Ignoring_result_file_ExitCode_set_to_0
push 0
call fcn.0055b0c0
add esp, 8
mov dword [esi], 0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0
call fcn.0055c540
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.0055c210
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40e020
Capabilities:
Create directory
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56db98
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x18], esi
call fcn.004157d7
xor edx, edx
mov ecx, eax
test ecx, ecx
setne dl
test edx, edx
jne 0x40e068
push 0x80004005
call fcn.00401220
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x14]
push eax
mov dword [ebp - 4], 0
call fcn.0055a320
push 0x587cd0
push eax
lea eax, [ebp - 0x10]
push eax
mov byte [ebp - 4], 1
call fcn.004061c0
add esp, 0xc
push eax
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00401f50
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 1
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x40e0c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40e0e7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
push dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40e137
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40e137
lea eax, [ebp - 0x14]
push eax
call fcn.0055a320
push eax
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00401f50
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40e137
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
jne 0x40e17d
lea eax, [ebp - 0x14]
push eax
call fcn.0040e220
push dword [eax]
mov byte [ebp - 4], 4
push str._CSetExtractionDir::CSetExtractionDir__Error___s
call fcn.0055b160
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
add esp, 8
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x40e17d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x410910
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e126
mov eax, dword fs:[0]
push eax
sub esp, 0x2ac
push ebx
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x5fa450], 0
jne 0x410a2d
call fcn.00409640
mov al, byte [eax + 0x4e]
test al, al
mov al, byte [0x5fa415]
je 0x410968
test al, al
je 0x4109a3
cmp byte [0x5fa416], 0
jne 0x4109f0
test al, al
jne 0x410a0b
push 0
lea ecx, [ebp - 0x160]
call fcn.00406b70
lea ecx, [ebp - 0x160]
mov dword [ebp - 4], 1
call fcn.00422caa
lea ecx, [ebp - 0x160]
mov dword [ebp - 4], 0xffffffff
call fcn.00406ba0
jmp 0x410a12
cmp byte [0x5fa416], 0
jne 0x4109f0
push 0
push 1
lea ecx, [ebp - 0x2b8]
call fcn.0040bc60
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 4], 0
call fcn.00422caa
test eax, eax
lea ecx, [ebp - 0x2b8]
setne bl
mov dword [ebp - 4], 0xffffffff
call fcn.0040bca0
test bl, bl
jne 0x4109f0
cmp byte [0x5fa416], bl
je 0x410a12
push str._CRunInstructions::RunStep__Rebooting...
push 0
call fcn.0055b0c0
add esp, 8
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
jmp 0x410a12
mov byte [0x5fa414], 1
mov eax, dword [0x5ef724]
mov ecx, 3
test eax, eax
cmove eax, ecx
mov dword [0x5ef724], eax
mov byte [0x5fa450], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x411010
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e22b
mov eax, dword fs:[0]
push eax
sub esp, 0x158
push ebx
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x5fa459], 0
jne 0x4110e9
call fcn.00406e80
mov ecx, eax
call fcn.00406e40
test al, al
jne 0x4110e9
call fcn.00409640
mov ecx, eax
call fcn.0040a3f0
call fcn.00409640
mov al, byte [eax + 0x4e]
test al, al
je 0x4110e2
cmp byte [0x5fa415], 0
jne 0x4110c0
cmp byte [0x5fa416], 0
jne 0x4110c9
push 0
push 0
lea ecx, [ebp - 0x164]
call fcn.0040bc60
lea ecx, [ebp - 0x164]
mov dword [ebp - 4], 0
call fcn.00422caa
test eax, eax
lea ecx, [ebp - 0x164]
setne bl
mov dword [ebp - 4], 0xffffffff
call fcn.0040bca0
test bl, bl
jne 0x4110c9
cmp byte [0x5fa416], 0
je 0x4110e2
push str._CRunInstructions::RunStep__Rebooting...
push 0
call fcn.0055b0c0
add esp, 8
push 0
push 2
call dword [sym.imp.USER32.dll_ExitWindowsEx]
mov byte [0x5fa459], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x411810
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e380
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 1
push 0
push str.CInstructions::AppendPSLogFile
lea ecx, [ebp - 0x1c]
call fcn.0055c1a0
lea ecx, [ebp - 0x30]
mov dword [ebp - 4], 0
call fcn.00426c87
push 0
push 0x2041
push dword [0x5fa464]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.0042721b
cmp eax, 1
jne 0x4118d4
mov dword [ebp - 0x10], 0
mov byte [ebp - 4], 2
call fcn.0055cc70
mov dword [ebp - 0x10], eax
push dword [0x5fa468]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.0055ccf0
test al, al
je 0x4118c8
mov eax, dword [ebp - 0x30]
push 2
push 0
push 0
lea ecx, [ebp - 0x30]
call dword [eax + 0x2c]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x30]
push dword [eax + 8]
push dword [eax + 4]
call fcn.0042757c
push dword [0x5fa468]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.0055c540
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0
call fcn.00426cfd
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
call fcn.0055c210
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x412a40
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e6bc
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push esi
push edi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 8]
mov dword [edi], vtable.Downloader::CFileRetriever.0
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004020e0
add eax, 0x10
mov dword [edi + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004020e0
add eax, 0x10
add esp, 8
mov dword [edi + 8], eax
mov byte [ebp - 4], 1
call fcn.0053b3a2
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov word [edi + 0x18], 0
mov byte [edi + 0x1a], 0
call fcn.004157d7
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x412ae4
push 0x80004005
call fcn.00401220
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi + 0x1c], eax
lea esi, [edi + 0x24]
push 0
mov ecx, esi
mov byte [ebp - 4], 2
mov dword [edi + 0x20], 0
mov dword [ebp + 8], esi
call fcn.00428477
push 0
lea eax, [esi + 8]
push eax
mov byte [ebp - 4], 3
mov dword [esi], vtable.CCriticalSection.0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x412b41
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x412b39
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x412b41
push eax
call fcn.00401220
push 1
push 0
push 0x5887ac
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call fcn.0055c1a0
push 0
push 4
push 0
push 0
push edi
push 0x412f00
mov byte [ebp - 4], 5
call fcn.00416fd2
mov dword [edi + 0x20], eax
mov dword [eax + 0x28], 0
mov eax, dword [edi + 0x20]
push dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call fcn.0055c210
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8

Function at 0x413050
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56e798
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
mov eax, dword [0x5f4e20]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 1
push 0
push str.CFileRetriever::WaitForThreadToDie
lea ecx, [ebp - 0x18]
call fcn.0055c1a0
mov eax, dword [esi + 0x20]
mov dword [ebp - 4], 0
test eax, eax
je 0x4130c9
push 0x7530
push dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4130c9
push str._CFileRetriever::WaitForThreadToDie__Thread_wont_die____using_::TerminateThread__
push 0
call fcn.0055b0c0
mov eax, dword [esi + 0x20]
add esp, 8
push 0
push dword [eax + 0x2c]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
call fcn.0055c210
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret