joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5e0474
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, eax
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax]
dec al
je 0x5e04a5
dec al
je 0x5e04e0
dec al
je 0x5e0525
dec al
je 0x5e058e
jmp 0x5e0618
mov esi, dword [ebx + 0x24]
inc esi
mov edi, dword [ebx + 0x20]
sub edi, esi
jb 0x5e0618
inc edi
mov edx, esi
sub edx, dword [ebx + 0x24]
movzx ecx, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
movzx edx, byte [ecx + edx]
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
add dl, byte [eax + esi]
and dl, 0xff
mov byte [eax + esi], dl
inc esi
dec edi
jne 0x5e04b5
jmp 0x5e0618
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x5e0618
mov esi, 1
movzx eax, byte [ebx + 0x48]
mov edx, eax
xor dl, 1
and edx, 0x7f
mov edx, dword [ebx + edx*4 + 0x40]
movzx edx, byte [edx + esi]
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
add dl, byte [eax + esi]
and dl, 0xff
movzx eax, byte [ebx + 0x48]
mov eax, dword [ebx + eax*4 + 0x40]
mov byte [eax + esi], dl
inc esi
dec edi
jne 0x5e04f0
jmp 0x5e0618
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x5e0618
mov esi, 1
movzx eax, byte [ebx + 0x48]
xor al, 1
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax + esi]
mov ecx, esi
dec ecx
mov edx, dword [ebx + 0x24]
cmp ecx, edx
jae 0x5e0554
xor ebp, ebp
jmp 0x5e0564
mov ecx, esi
sub ecx, edx
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx ebp, byte [edx + ecx]
add eax, ebp
sar eax, 1
jns 0x5e056d
adc eax, 0
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
add al, byte [edx + esi]
and al, 0xff
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x5e0535
jmp 0x5e0618
xor ebp, ebp
xor eax, eax
mov dword [esp + 4], eax
mov edi, dword [ebx + 0x20]
test edi, edi
jbe 0x5e0618
mov esi, 1
movzx eax, byte [ebx + 0x48]
xor al, 1
and eax, 0x7f
mov eax, dword [ebx + eax*4 + 0x40]
movzx eax, byte [eax + esi]
mov edx, esi
dec edx
cmp edx, dword [ebx + 0x24]
jb 0x5e05e7
mov edx, esi
sub edx, dword [ebx + 0x24]
movzx ecx, byte [ebx + 0x48]
mov ecx, dword [ebx + ecx*4 + 0x40]
movzx ebp, byte [ecx + edx]
movzx edx, byte [ebx + 0x48]
xor dl, 1
and edx, 0x7f
mov edx, dword [ebx + edx*4 + 0x40]
mov ecx, esi
sub ecx, dword [ebx + 0x24]
movzx edx, byte [edx + ecx]
mov dword [esp + 4], edx
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
movzx edx, byte [edx + esi]
mov dword [esp], edx
movzx ecx, byte [esp + 4]
push eax
mov eax, ebp
pop edx
call fcn.005dd62c
add al, byte [esp]
and al, 0xff
movzx edx, byte [ebx + 0x48]
mov edx, dword [ebx + edx*4 + 0x40]
mov byte [edx + esi], al
inc esi
dec edi
jne 0x5e05a2
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x5e7ad0
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x14], 0xca
jne 0x5e7afe
mov eax, ebx
call fcn.005e858c
cmp dword [ebx + 0x40], 0
je 0x5e7af7
mov dword [ebx + 0x14], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x14], 0xcb
cmp dword [ebx + 0x14], 0xcb
jne 0x5e7b6f
mov edx, dword [ebx + 0x1b4]
cmp dword [edx + 0x10], 0
je 0x5e7b61
cmp dword [ebx + 8], 0
je 0x5e7b20
mov eax, ebx
mov edx, dword [eax + 8]
call dword [edx]
mov eax, ebx
mov edx, dword [eax + 0x1b4]
call dword [edx]
test eax, eax
jne 0x5e7b32
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x5e7b61
cmp dword [ebx + 8], 0
je 0x5e7b13
cmp eax, 3
je 0x5e7b45
dec eax
jne 0x5e7b13
mov edx, dword [ebx + 8]
inc dword [edx + 4]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 8]
jl 0x5e7b13
mov edx, dword [ebx + 0x140]
add dword [eax + 8], edx
jmp 0x5e7b13
mov ecx, dword [ebx + 0x90]
mov dword [ebx + 0x98], ecx
jmp 0x5e7b8d
cmp dword [ebx + 0x14], 0xcc
je 0x5e7b8d
mov eax, dword [ebx]
mov dword [eax + 0x14], 0x14
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x18], edx
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.005e7b98
pop ebx
ret

Function at 0x5fee2c
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
call sub.kernel32.dll_GetSystemInfo_1
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
dec ecx
js 0x5fee7d
lea eax, [ebp - 0x2c]
cmp word [eax + 0x20], 3
je 0x5fee64
mov eax, dword [edx + ecx*4]
bswap eax
shr eax, 8
mov dword [edx + ecx*4], eax
dec ecx
jns 0x5fee54
jmp 0x5fee7d
push ebx
xor ebx, ebx
mov eax, dword [edx + ecx*4]
mov bh, al
mov bl, ah
shr eax, 0x10
shl ebx, 8
mov bl, al
mov dword [edx + ecx*4], ebx
dec ecx
jns 0x5fee65
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x60d114
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x60da75
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x60da5a
mov eax, dword [ebp - 4]
call fcn.0060e520
xor eax, eax
push ebp
push 0x60da48
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0060e4e8
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040e7cc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x67a834]
call fcn.0040cfb0
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00407500
xor eax, eax
push ebp
push 0x60da2b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005fe52c
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x60d293
mov eax, dword [ebp - 4]
call fcn.0060ecec
cmp dword [eax + 8], 0
jle 0x60d203
mov eax, dword [ebp - 4]
call fcn.0060ecec
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x60da7c
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00408ebc
ret

Function at 0x60fd98
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
xor ecx, ecx
mov edx, 0x40
call fcn.00406d94
ret
Function at 0x60ff48
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00408f40
xor eax, eax
push ebp
push 0x610096
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x6c]
call fcn.0060fd98
push 0
push 0x8000080
push 3
push 0
push 3
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00409c50
push eax
call sub.kernel32.dll_CreateFileW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x610075
xor eax, eax
push ebp
push 0x61006e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 2
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CreateFileMappingW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x610057
xor eax, eax
push ebp
push 0x610050
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x610039
xor eax, eax
push ebp
push 0x610032
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetFileSize
mov ecx, eax
lea eax, [ebp - 0x6c]
mov edx, dword [ebp - 0x14]
call fcn.0060fdd0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x610039
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_UnmapViewOfFile
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x610057
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x610075
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x6c]
call fcn.0060fe58
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61009d
lea eax, [ebp - 4]
call fcn.00408e5c
ret
Function at 0x610dd0
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
mov eax, dword [ebp - 0xc]
call fcn.00408f40
xor eax, eax
push ebp
push 0x61101c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 8]
test eax, eax
je 0x610e23
sub eax, 4
mov eax, dword [eax]
dec eax
jl 0x610fec
mov eax, dword [ebp - 8]
call fcn.00420698
mov eax, dword [ebp - 4]
test eax, eax
je 0x610e3e
sub eax, 4
mov eax, dword [eax]
dec eax
jl 0x610fec
xor eax, eax
push ebp
push 0x610e74
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xff00
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x47d74c]
call fcn.0049d708
mov dword [ebp - 0x14], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x610e88
mov dl, 1
mov eax, dword [0x5d6c08]
call fcn.005d6e24
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x610ea3
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0x610eb7
mov eax, dword [ebp - 0x18]
add eax, 0x70
mov edx, dword [ebp - 0xc]
call fcn.0040923c
jmp 0x610ec7
mov eax, dword [ebp - 0x18]
add eax, 0x70
mov edx, 0x61103c
call fcn.0040923c
mov eax, dword [ebp - 0x18]
add eax, 0x48
mov edx, 0x611124
call fcn.0040923c
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x10], 0x493e0
xor eax, eax
push ebp
push 0x610f30
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [ebp - 4]
mov edx, 0x611138
mov eax, dword [ebp - 0x18]
call fcn.005d75c0
mov byte [ebp - 0xd], al
cmp byte [ebp - 0xd], 0
je 0x610f26
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x1c]
push 0
push 0
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x14]
call fcn.0049d41c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x610f9c
mov eax, dword [ebp - 0x14]
call fcn.00407240
mov eax, dword [ebp - 0x18]
call fcn.00407240
cmp byte [ebp - 0xd], 0
jne 0x610fec
mov eax, dword [ebp - 8]
call fcn.00420698
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x50], 0x11
mov eax, dword [ebp - 8]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0x11
lea edx, [ebp - 0x54]
mov ecx, 1
mov eax, 0x611180
call fcn.00420f7c
mov eax, dword [ebp - 0x44]
call fcn.0061b7c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x611023
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.00408ebc
lea eax, [ebp - 0x1c]
call fcn.00408e5c
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00408ebc
ret
Function at 0x611d18
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdbc
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x240], edx
mov dword [ebp - 0x244], edx
mov dword [ebp - 0x23c], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00408f40
xor eax, eax
push ebp
push 0x611e4d
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x23c]
mov eax, dword [ebp - 4]
call fcn.0041f2c4
mov eax, dword [ebp - 0x23c]
lea edx, [ebp - 8]
call fcn.0041f1e0
mov eax, dword [ebp - 8]
test eax, eax
je 0x611d7f
sub eax, 4
mov eax, dword [eax]
dec eax
jl 0x611e22
xor edx, edx
mov eax, 2
call fcn.005af2f0
mov esi, eax
mov dword [ebp - 0x238], 0x22c
lea edx, [ebp - 0x238]
mov eax, esi
call fcn.005af310
mov ebx, eax
jmp 0x611e18
lea eax, [ebp - 0x244]
lea edx, [ebp - 0x214]
mov ecx, 0x104
call fcn.00409d0c
mov eax, dword [ebp - 0x244]
lea edx, [ebp - 0x240]
call fcn.004207cc
mov eax, dword [ebp - 0x240]
lea edx, [ebp - 0xc]
call fcn.0041f1e0
mov edi, dword [ebp - 0x230]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
call fcn.00409ff4
jne 0x611e09
push 0
push edi
push 0
push 1
call sub.kernel32.dll_OpenProcess
push eax
call sub.kernel32.dll_TerminateProcess
lea edx, [ebp - 0x238]
mov eax, esi
call fcn.005af330
mov ebx, eax
test ebx, ebx
jne 0x611daf
push esi
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x611e54
lea eax, [ebp - 0x244]
mov edx, 3
call fcn.00408ebc
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00408ebc
ret

Function at 0x612018
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00408f40
xor eax, eax
push ebp
push 0x61205e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x80
mov eax, dword [ebp - 4]
call fcn.00409c50
push eax
call sub.kernel32.dll_SetFileAttributesW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x612065
lea eax, [ebp - 4]
call fcn.00408e5c
ret
Function at 0x61291c
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa0
push ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
xor eax, eax
push ebp
push 0x6129f8
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
xor ecx, ecx
mov edx, 0x10
call fcn.00406d94
lea eax, [ebp - 0x60]
xor ecx, ecx
mov edx, 0x44
call fcn.00406d94
mov dword [ebp - 0x60], 0x44
cmp byte [ebp + 8], 0
je 0x612981
mov word [ebp - 0x30], 0
mov dword [ebp - 0x34], 1
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.00420388
test al, al
jne 0x612997
lea eax, [ebp - 8]
call fcn.0061bb20
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 8]
call fcn.00409c50
push eax
push 0
push 0x220
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00409c50
push eax
push 0
call sub.kernel32.dll_CreateProcessW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 9], al
test bl, bl
je 0x6129dd
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
push eax
call sub.kernel32.dll_WaitForSingleObject
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6129ff
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret
Function at 0x6140f8
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 8], ebx
mov esi, ecx
mov dword [ebp - 4], edx
mov edi, eax
mov eax, dword [ebp - 4]
call fcn.00408f40
xor eax, eax
push ebp
push 0x6141f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
call fcn.00408e5c
mov eax, dword [ebp - 4]
test eax, eax
je 0x614136
sub eax, 4
mov eax, dword [eax]
dec eax
jl 0x6141da
push 0xa
mov eax, dword [ebp - 4]
call fcn.00409c50
push eax
push edi
call sub.kernel32.dll_FindResourceW
mov ebx, eax
test ebx, ebx
je 0x6141da
push ebx
push edi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x6141da
push ebx
push edi
call sub.kernel32.dll_SizeofResource
mov ebx, eax
cmp ebx, 1
jl 0x6141da
lea eax, [ebp - 8]
xor ecx, ecx
mov edx, ebx
call fcn.00409968
xor eax, eax
push ebp
push 0x6141d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_LockResource
mov edi, eax
mov eax, dword [ebp - 8]
call fcn.004098a4
mov edx, eax
mov ecx, ebx
mov eax, edi
call fcn.00406900
mov ecx, esi
mov dx, 0xfde9
mov eax, dword [ebp - 8]
call fcn.0061ec04
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6141da
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_FreeResource
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6141ff
lea eax, [ebp - 8]
call fcn.00408e80
lea eax, [ebp - 4]
call fcn.00408e5c
ret

Function at 0x616804
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
xor eax, eax
push ebp
push 0x6168a1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
test eax, eax
je 0x61683e
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0x61685d
mov eax, dword [ebp - 4]
cmp word [eax], 0x5c
jne 0x61685d
lea eax, [ebp - 4]
mov ecx, 1
mov edx, 1
call fcn.0040a074
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x616869
sub ebx, 4
mov ebx, dword [ebx]
push ebx
mov eax, dword [ebp - 8]
call fcn.00409c50
push eax
push 1
mov eax, dword [ebp - 4]
call fcn.00409c50
push eax
push esi
call sub.advapi32.dll_RegSetValueW
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6168a8
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret
Function at 0x616970
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
xor eax, eax
push ebp
push 0x616a04
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0x20019
lea eax, [ebp - 0xc]
push eax
push 0
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, esi
call fcn.006168b0
test eax, eax
jne 0x6169e9
lea eax, [ebp - 0x14]
push eax
push 0
lea eax, [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00409c50
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x6169e0
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616a0b
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret
Function at 0x616b08
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffcc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov edi, eax
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
xor eax, eax
push ebp
push 0x616c62
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
xor eax, eax
mov dword [ebx], eax
xor eax, eax
mov dword [esi], eax
push 0x20019
lea eax, [ebp - 0x10]
push eax
push 0
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.006168b0
test eax, eax
jne 0x616c3f
xor eax, eax
push ebp
push 0x616c38
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
push 0
push ebx
push 0
mov eax, dword [ebp - 8]
call fcn.00409c50
mov edi, eax
push edi
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x616c21
mov eax, dword [ebx]
cmp eax, 0xf
ja 0x616ba9
bt word [ebp + 0x18], ax
jb 0x616bba
mov ecx, dword [ebx]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00616a14
jmp 0x616c21
mov eax, dword [esi]
cmp eax, dword [ebp + 0x14]
jbe 0x616c08
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 0
mov eax, dword [esi]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x28], 0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x11
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 0x11
lea edx, [ebp - 0x34]
mov ecx, 3
mov eax, 0x616c84
call fcn.00420f7c
mov eax, dword [ebp - 0x14]
call fcn.0061b7c0
jmp 0x616c21
push esi
mov eax, dword [ebp + 0xc]
push eax
push 0
push 0
push edi
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
sete byte [ebp - 9]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616c3f
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616c69
lea eax, [ebp - 0x14]
call fcn.00408e5c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret
Function at 0x616d28
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x616d52
xor edx, edx
mov dword [eax], edx
xor eax, eax
push ebp
push 0x616e83
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x18], eax
push 0x20019
lea eax, [ebp - 0x10]
push eax
movzx eax, byte [ebp + 8]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.006168b0
test eax, eax
jne 0x616e68
xor edx, edx
push ebp
push 0x616e61
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x18]
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00409c50
mov ebx, eax
push ebx
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x616e4a
movzx eax, word [0x616e98]
cmp byte [ebp + 0x10], 0
je 0x616dda
movzx eax, word [0x616e9c]
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
ja 0x616de5
bt eax, edx
jb 0x616e05
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00616a14
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegCloseKey_1
call fcn.00408618
jmp 0x616e68
mov edx, dword [ebp - 0x18]
shr edx, 1
inc edx
mov eax, dword [ebp + 0xc]
call fcn.00409de4
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
push 0
push 0
push ebx
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
jne 0x616e42
mov edx, dword [ebp - 0x18]
shr edx, 1
mov eax, dword [ebp + 0xc]
call fcn.00409de4
mov byte [ebp - 9], 1
jmp 0x616e4a
mov eax, dword [ebp + 0xc]
call fcn.00408e5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616e68
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616e8a
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret

Function at 0x616f14
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00408f40
mov eax, dword [ebp - 8]
call fcn.00408f40
xor eax, eax
push ebp
push 0x616fa2
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0x20019
lea eax, [ebp - 0xc]
push eax
push 0
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, esi
call fcn.006168b0
test eax, eax
jne 0x616f87
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00409c50
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegQueryValueExW_1
test eax, eax
sete bl
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x616fa9
lea eax, [ebp - 8]
mov edx, 2
call fcn.00408ebc
ret