joyce8/EMBER2024-capa huggingface dataset:
Function at 0x406d21
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor edx, edx
mov dword [ebp - 0x10], edx
xor edx, edx
push ebp
push 0x406d87
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 0xb]
push edx
push 0x1004
push eax
call sub.KERNEL32.DLL_SetFileAttributesA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0xb]
mov ecx, 7
call fcn.004050a5
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.00403a91
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x406d71
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x406d8e
lea eax, [ebp - 0x10]
call fcn.00404e35
ret

Function at 0x409b05
Capabilities:
Enumerate gui resources

Disassembly:
push ebx
add esp, 0xfffffff8
mov ebx, eax
jmp 0x409b25
lea eax, [ebx + 0x18]
push eax
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_EnumWindows
test eax, eax
jne 0x409b25
call sub.user32.dll_GetLastActivePopup
jmp 0x409b64
mov eax, dword [ebx + 0x18]
and eax, dword [ebx + 0x10]
jne 0x409b0d
push esp
lea eax, [ebx + 0x2c]
push eax
call sub.user32.dll_EnableScrollBar
push ebx
lea eax, [ebx + 2]
push eax
lea eax, [esp + 8]
push eax
call sub.user32.dll_EnableMenuItem
mov eax, dword [ebx + 0x38]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x18]
mov dword [ebx + 8], eax
lea eax, [ebx + 0xc]
lea edx, [ebx + 0x44]
mov ecx, 0x104
call fcn.004050a5
xor eax, eax
pop ecx
pop edx
pop ebx
ret

Function at 0x409bb9
Capabilities:
Enumerate gui resources

Disassembly:
push ebx
mov ebx, eax
lea eax, [ebx + 0x18]
push eax
mov eax, dword [ebx + 0x14]
push eax
call sub.user32.dll_EnumWindows
test eax, eax
je 0x409bd6
mov eax, ebx
call fcn.00409b05
pop ebx
ret
call sub.user32.dll_GetLastActivePopup
pop ebx
ret

Function at 0x409d69
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
add esp, 0xfffffef8
mov esi, edx
mov ebx, eax
push esp
lea eax, [esp + 8]
push eax
push 0x104
mov eax, ebx
call fcn.004052f5
push eax
call sub.user32.dll_GetKeyboardState
mov ecx, eax
lea edx, [esp + 4]
mov eax, esi
call fcn.00404f25
add esp, 0x108
pop esi
pop ebx
ret
Function at 0x40d865
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
xor edx, edx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40d93b
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 8]
mov edx, ebx
call fcn.00404ecd
lea eax, [ebp - 8]
call fcn.00405345
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov ebx, eax
test ebx, ebx
je 0x40d925
mov eax, ebx
call fcn.00402ec1
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x40d91e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
push eax
push ebx
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
call sub.version.dll_GetFileVersionInfoA
test eax, eax
je 0x40d908
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x40d94d
mov eax, dword [ebp - 0x10]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x40d908
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40d925
mov eax, dword [ebp - 0x10]
call fcn.00402ee1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40d942
lea eax, [ebp - 8]
call fcn.00404e35
ret

Function at 0x41c699
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
add esp, 0xffffffd8
mov esi, eax
mov eax, dword [esi + 4]
mov dword [esp + 4], eax
call sub.user32.dll_GetDCEx
mov edx, dword [0x49a258]
cmp eax, dword [edx]
jne 0x41c70e
xor ebx, ebx
mov eax, dword [0x49b850]
mov dword [esp + 8], eax
cmp ebx, 2
jne 0x41c6d8
push 0
push 0
push 0
push 0
lea eax, [esp + 0x1c]
push eax
call fcn.00407b19
push pe_nt_image_headers32
push 0x3e8
push 0
lea eax, [esp + 0x10]
push eax
push 2
call fcn.00407b01
mov ebx, eax
cmp ebx, 0xffffffff
setne dl
mov eax, esi
call fcn.0041c411
cmp ebx, 1
jne 0x41c708
xor eax, eax
call fcn.0041c009
test ebx, ebx
jne 0x41c6c1
jmp 0x41c71a
push 0xffffffffffffffff
mov eax, dword [esp + 8]
push eax
call sub.user32.dll_ScreenToClient
push esp
mov eax, dword [esp + 8]
push eax
call sub.user32.dll_GetKeyState
cmp eax, 1
sbb edx, edx
inc edx
mov eax, esi
call fcn.0041c411
mov eax, dword [esp]
add esp, 0x28
pop esi
pop ebx
ret

Function at 0x41eced
Capabilities:
Encode data using xor

Disassembly:
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x41ecf3
ret
Function at 0x460be9
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x460bf1
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x460de3
push dword fs:[eax]
mov dword fs:[eax], esp
mov esi, dword [ebx + 8]
lea ecx, [ebp - 0xc]
mov edx, 0x460df9
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0xc]
lea eax, [ebx + 0xc]
call fcn.00404e89
lea ecx, [ebp - 0x10]
mov edx, 0x460e0d
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0x10]
lea eax, [ebx + 0x28]
call fcn.00404e89
lea ecx, [ebp - 0x14]
mov edx, 0x460e25
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0x14]
lea eax, [ebx + 0x10]
call fcn.00404e89
lea ecx, [ebp - 0x18]
mov edx, 0x460e41
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0x18]
lea eax, [ebx + 0x14]
call fcn.00404e89
lea ecx, [ebp - 0x1c]
mov edx, 0x460e5d
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0x1c]
lea eax, [ebx + 0x24]
call fcn.00404e89
lea ecx, [ebp - 0x24]
mov edx, 0x460e75
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 0x20]
call fcn.004091e9
mov eax, dword [ebp - 0x20]
or edx, 0xffffffff
call fcn.004095f9
mov edi, eax
mov dword [ebx + 0x18], edi
test edi, edi
setge al
mov byte [ebx + 0x4c], al
lea ecx, [ebp - 0x28]
mov edx, 0x460e8d
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x28]
call fcn.0045854d
fstp qword [ebx + 0x30]
wait
lea ecx, [ebp - 0x2c]
mov edx, 0x460e9d
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x2c]
call fcn.0045854d
fstp qword [ebx + 0x40]
wait
lea ecx, [ebp - 0x30]
mov edx, 0x460eb5
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x30]
or edx, 0xffffffff
call fcn.004095f9
inc eax
je 0x460d86
lea ecx, [ebp - 0x34]
mov edx, 0x460eb5
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x34]
call fcn.004095bd
mov edi, eax
mov eax, edi
mov ecx, 0xe10
cdq
idiv ecx
mov dword [ebp - 8], eax
mov eax, edi
mov ecx, 0xe10
cdq
idiv ecx
mov ecx, edx
mov eax, ecx
push ecx
mov ecx, 0x3c
cdq
idiv ecx
pop ecx
mov dword [ebp - 4], eax
mov eax, ecx
mov ecx, 0x3c
cdq
idiv ecx
mov edi, edx
push 0
mov ecx, edi
mov dx, word [ebp - 4]
mov ax, word [ebp - 8]
call fcn.0040aef1
fstp qword [ebp - 0x3c]
wait
call fcn.0040b2c5
fadd qword [ebp - 0x3c]
fstp qword [ebx + 0x38]
wait
jmp 0x460da1
lea ecx, [ebp - 0x40]
mov edx, 0x460eb5
mov eax, esi
call fcn.0045ea75
mov eax, dword [ebp - 0x40]
call fcn.0045854d
fstp qword [ebx + 0x38]
wait
lea ecx, [ebp - 0x44]
mov edx, 0x460ec5
mov eax, esi
call fcn.0045ea75
mov edx, dword [ebp - 0x44]
lea eax, [ebx + 0x48]
call fcn.00404e89
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x460dea
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.00404e59
lea eax, [ebp - 0x34]
mov edx, 0xb
call fcn.00404e59
ret
Function at 0x467b75
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
xor edx, edx
push ebp
push 0x467bcf
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [eax + 0x30]
call fcn.00467b65
mov ebx, eax
lea edx, [ebp - 4]
mov eax, edi
call fcn.004571b1
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xc]
call fcn.00456db1
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x467bd6
lea eax, [ebp - 4]
call fcn.00404e35
ret

Function at 0x46b041
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
mov esi, dword [eax]
mov edi, dword [ecx]
mov eax, ebx
mov ecx, 3
xor edx, edx
div ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
lea ecx, [0x49653c]
xor eax, eax
xor ebx, ebx
xor edx, edx
cmp dword [ebp - 4], 0
je 0x46b0a8
lodsw ax, word [esi]
mov bl, al
shr bl, 2
mov dl, byte [ebx + ecx]
mov bh, ah
and bh, 0xf
rol ax, 4
and ax, 0x3f
mov dh, byte [eax + ecx]
mov ax, dx
stosw word es:[edi], ax
lodsb al, byte [esi]
mov bl, al
shr bx, 6
mov dl, byte [ebx + ecx]
and al, 0x3f
xor ah, ah
mov dh, byte [eax + ecx]
mov ax, dx
stosw word es:[edi], ax
dec dword [ebp - 4]
jne 0x46b06e
cmp dword [ebp - 8], 0
je 0x46b0f8
xor eax, eax
xor ebx, ebx
xor edx, edx
lodsb al, byte [esi]
shl ax, 6
mov bl, ah
mov dl, byte [ebx + ecx]
dec dword [ebp - 8]
je 0x46b0e3
shl ax, 2
and ah, 3
lodsb al, byte [esi]
shl ax, 4
mov bl, ah
mov dh, byte [ebx + ecx]
shl edx, 0x10
shr al, 2
mov bl, al
mov dl, byte [ebx + ecx]
mov dh, 0x3d
jmp 0x46b0f2
shr al, 2
mov bl, al
mov dh, byte [ebx + ecx]
shl edx, 0x10
mov dh, 0x3d
mov dl, 0x3d
mov eax, edx
ror eax, 0x10
stosd dword es:[edi], eax
pop ecx
pop ecx
pop ebp
ret
Function at 0x4705a9
Capabilities:
Capture microphone audio

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x30], 0
je 0x4706e8
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 8]
mov eax, dword [ebp - 4]
cmp word [eax + 0xca], 0
je 0x470630
mov eax, ebx
call fcn.00402ec1
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x470629
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, ebx
call fcn.0040316d
push ebx
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xcc]
call dword [ebx + 0xc8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x470630
mov eax, dword [ebp - 0xc]
call fcn.00402ee1
ret
push 0x20
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd0]
push eax
call sub.winmm.dll_waveInUnprepareHeader
test eax, eax
je 0x470658
mov ecx, eax
mov edx, 0x470709
mov eax, dword [ebp - 4]
call fcn.004708b1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 8]
mov dword [edx + 4], eax
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 8], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x38]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00407cc5
push 0x20
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd0]
push eax
call sub.winmm.dll_waveInPrepareHeader
test eax, eax
je 0x4706be
mov ecx, eax
mov edx, 0x470729
mov eax, dword [ebp - 4]
call fcn.004708b1
push 0x20
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd0]
push eax
call sub.winmm.dll_waveInAddBuffer
test eax, eax
je 0x4706fc
mov ecx, eax
mov edx, 0x470749
mov eax, dword [ebp - 4]
call fcn.004708b1
jmp 0x4706fc
mov eax, dword [ebp - 4]
test byte [eax + 0x1c], 8
jne 0x4706fc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00470fdd
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x470759
Capabilities:
Capture microphone audio

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff7c
mov esi, edx
lea edi, [esp]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov ebx, eax
cmp byte [ebx + 0x30], 0
jne 0x470830
xor eax, eax
mov dword [ebx + 0xd0], eax
mov esi, esp
lea edi, [ebx + 0x3c]
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp word [ebx + 0x3c], 1
jne 0x47079c
or eax, 0xffffffff
jmp 0x47079e
xor eax, eax
cmp word [esp], 1
jne 0x4707c7
push 0x10000
push 0
mov edx, dword [ebx + 0xc0]
push edx
lea edx, [esp + 0xc]
push edx
push eax
lea eax, [ebx + 0xd0]
push eax
call sub.winmm.dll_waveInOpen
jmp 0x4707e7
push 0x10004
push 0
mov edx, dword [ebx + 0xc0]
push edx
lea edx, [esp + 0xc]
push edx
push eax
lea eax, [ebx + 0xd0]
push eax
call sub.winmm.dll_waveInOpen
test eax, eax
je 0x4707f9
mov ecx, eax
mov edx, 0x470845
mov eax, ebx
call fcn.004708b1
movzx esi, byte [ebx + 0xbd]
test esi, esi
jle 0x47080e
mov eax, ebx
call fcn.00470f0d
dec esi
jne 0x470804
mov eax, dword [ebx + 0xd0]
push eax
call sub.winmm.dll_waveInStart
test eax, eax
je 0x47082c
mov ecx, eax
mov edx, 0x470859
mov eax, ebx
call fcn.004708b1
mov byte [ebx + 0x30], 1
add esp, 0x84
pop edi
pop esi
pop ebx
ret

Function at 0x47125d
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 8], ecx
mov esi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471338
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0xf003f
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jbe 0x47131a
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, 0x24024
call fcn.00402ec1
mov edi, eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x24024
push edi
mov eax, dword [ebp - 8]
push eax
push esi
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegEnumKeyExA
mov ebx, dword [ebp - 0x14]
dec ebx
test ebx, ebx
jl 0x471303
inc ebx
xor esi, esi
lea eax, [esi + esi*8]
mov eax, dword [edi + eax*4 + 4]
lea edx, [ebp - 0x1c]
call fcn.0040a131
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc esi
dec ebx
jne 0x4712e5
mov bl, 1
mov edx, 0x24024
mov eax, edi
call fcn.00402ee1
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47133f
lea eax, [ebp - 0x1c]
call fcn.00404e35
lea eax, [ebp - 4]
call fcn.00404e35
ret
Function at 0x47134d
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471401
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
call fcn.00404e35
mov dword [ebp - 0xc], 0xff
push 1
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
jbe 0x4713e6
mov eax, dword [ebp - 0xc]
inc eax
call fcn.0040a145
mov esi, eax
test esi, esi
je 0x4713e0
lea eax, [ebp - 0xc]
push eax
push esi
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegEnumValueA
test eax, eax
je 0x4713d9
mov eax, dword [ebp - 0xc]
mov byte [esi + eax], 0
mov edx, edi
mov eax, esi
call fcn.0040a131
mov eax, esi
call fcn.0040a191
push ebx
call sub.advapi32.dll_RegCloseKey
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471408
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404e59
ret

Function at 0x471411
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471525
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
call fcn.00404e35
push 0xf003f
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
je case.default.0x4714ab
push 0xf01ff
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
mov ebx, eax
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push ebx
call sub.advapi32.dll_RegQueryInfoKeyA
mov eax, dword [ebp - 0xc]
call fcn.00408f15
mov esi, eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
push esi
push ebx
call sub.advapi32.dll_RegQueryInfoKeyA
mov eax, dword [esi + 4]
cmp eax, 4
ja case.default.0x4714ab
jmp dword [eax*4 + 0x4714b2]
mov eax, edi
mov edx, 0x47153d
call fcn.00404e89
jmp case.default.0x4714ab
mov eax, edi
mov edx, 0x471549
call fcn.00404e89
jmp case.default.0x4714ab
mov eax, edi
mov edx, 0x471555
call fcn.00404e89
jmp case.default.0x4714ab
mov eax, edi
mov edx, 0x471561
call fcn.00404e89
jmp case.default.0x4714ab
mov eax, edi
mov edx, 0x47156d
call fcn.00404e89
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47152c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404e59
ret
Function at 0x4717e1
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471880
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 1
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
jbe 0x471860
push 4
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
mov edi, eax
test edi, edi
jbe 0x471856
lea eax, [ebp - 0x24]
push eax
push edi
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x471850
mov esi, dword [ebp - 0x20]
push edi
call sub.advapi32.dll_RegCloseKey
push ebx
call sub.advapi32.dll_RegCloseKey
mov ebx, esi
jmp 0x471865
mov ebx, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471887
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404e59
ret

Function at 0x4718f9
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x4719d2
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x24], eax
push 1
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
jbe 0x4719b0
push 0x14
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
mov esi, eax
test esi, esi
jbe 0x4719aa
xor eax, eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push 0
push esi
call sub.advapi32.dll_RegSetValueExA
test eax, eax
je 0x4719a4
lea eax, [ebp - 0x28]
push eax
push esi
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x4719a4
jmp 0x47199e
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
push eax
call fcn.0040e5fd
lea eax, [ebp - 0x28]
push eax
push esi
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x4719a4
cmp edi, dword [ebp - 0x14]
ja 0x4719a4
cmp dword [ebp - 0x24], 4
jne 0x47197f
push esi
call sub.advapi32.dll_RegCloseKey
push ebx
call sub.advapi32.dll_RegCloseKey
cmp dword [ebp - 0x24], 4
sete bl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4719d9
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404e59
ret
Function at 0x4719e5
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471ab4
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
push 0
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
jbe 0x471a92
push 0x24
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
mov esi, eax
test esi, esi
jbe 0x471a8c
lea eax, [ebp - 0x24]
push eax
push 1
push esi
call sub.advapi32.dll_RegCreateKeyExA
test eax, eax
je 0x471a86
lea eax, [ebp - 0x24]
push eax
push esi
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x471a86
jmp 0x471a80
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040e5fd
lea eax, [ebp - 0x24]
push eax
push esi
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x471a86
cmp edi, dword [ebp - 0x10]
ja 0x471a86
cmp dword [ebp - 0x20], 1
jne 0x471a61
push esi
call sub.advapi32.dll_RegCloseKey
push ebx
call sub.advapi32.dll_RegCloseKey
cmp dword [ebp - 0x20], 1
sete bl
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471abb
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404e59
ret
Function at 0x471ac5
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
mov eax, dword [ebp - 8]
call fcn.004052e5
mov eax, dword [ebp - 0xc]
call fcn.004052e5
mov eax, dword [ebp + 8]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471c17
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xf003f
push 0
push 0x471c29
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.004052f5
push eax
push 0
push 2
push 0x110
push 0xf01ff
mov eax, dword [ebp - 8]
call fcn.004052f5
push eax
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegDeleteKeyA
mov ebx, eax
mov eax, dword [0x49a1dc]
cmp dword [eax], 0
je 0x471bec
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x400
mov edx, 1
mov eax, dword [ebp + 8]
call fcn.00405355
mov eax, 4
call fcn.00402ec1
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
call fcn.004050f5
inc eax
call fcn.00402ec1
mov esi, eax
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
xor eax, eax
push ebp
push 0x471be5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, dword [ebp - 0x18]
call fcn.00409fc1
mov eax, dword [ebp - 0x14]
push eax
push 1
push ebx
mov eax, dword [0x49a1dc]
mov eax, dword [eax]
call eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471bec
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.00402ee1
mov eax, dword [ebp - 0x14]
call fcn.00402ee1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471c1e
lea eax, [ebp - 0x18]
call fcn.00404e35
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00404e59
lea eax, [ebp + 8]
call fcn.00404e35
ret

Function at 0x471c2d
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004052e5
xor eax, eax
push ebp
push 0x471cdf
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x471cbf
push dword fs:[eax]
mov dword fs:[eax], esp
xor esi, esi
push 0xf003f
push 0
push 0x471cf1
call sub.advapi32.dll_RegFlushKey
mov ebx, eax
test ebx, ebx
je 0x471ca7
push 0xf01ff
mov eax, dword [ebp - 4]
call fcn.004052f5
push eax
push ebx
call sub.advapi32.dll_RegOpenKeyExA
mov edi, eax
test edi, edi
je 0x471ca1
push edi
call sub.advapi32.dll_RegDeleteValueA
mov esi, 1
push edi
call sub.advapi32.dll_RegCloseKey
push ebx
call sub.advapi32.dll_RegCloseKey
test esi, esi
jle 0x471cb1
mov byte [ebp - 5], 1
jmp 0x471cb5
mov byte [ebp - 5], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x471cc9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x471ce6
lea eax, [ebp - 4]
call fcn.00404e35
ret