joyce8/EMBER2024-capa huggingface dataset:
Function at 0x45e218
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
test dl, dl
je 0x45e22a
add esp, 0xfffffff0
call fcn.004033f4
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0041be30
mov eax, dword [0x464ed4]
mov edx, dword [ebp - 4]
mov dword [eax + 4], edx
mov dword [eax], 0x45e788
mov eax, dword [0x464ee0]
mov edx, dword [ebp - 4]
mov dword [eax + 4], edx
mov dword [eax], 0x45e7a8
mov eax, dword [ebp - 4]
call fcn.0045e7c8
push 0
call sub.user32.dll_GetKeyboardLayout
mov edx, dword [ebp - 4]
mov dword [edx + 0x3c], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x4c], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], eax
mov dl, 1
mov eax, dword [0x4125a4]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x7c], eax
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 0x10], eax
push 0x5a
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_GetDeviceCaps
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x10]
push eax
push 0
call sub.user32.dll_ReleaseDC
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
push eax
mov eax, 0x459bd8
push eax
push 0
push 0
mov eax, dword [0x46502c]
mov eax, dword [eax]
call eax
mov dl, 1
mov eax, dword [0x41e018]
call fcn.0041f610
mov edx, dword [ebp - 4]
mov dword [edx + 0x84], eax
mov dl, 1
mov eax, dword [0x41e018]
call fcn.0041f610
mov edx, dword [ebp - 4]
mov dword [edx + 0x88], eax
mov dl, 1
mov eax, dword [0x41e018]
call fcn.0041f610
mov edx, dword [ebp - 4]
mov dword [edx + 0x80], eax
mov eax, dword [ebp - 4]
call fcn.0045ed14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov dword [eax + 8], 0x45eb60
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x88]
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov dword [eax + 8], 0x45eb60
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x80]
mov edx, dword [ebp - 4]
mov dword [eax + 0xc], edx
mov dword [eax + 8], 0x45eb60
mov eax, dword [ebp - 4]
cmp byte [ebp - 5], 0
je 0x45e3b2
call fcn.0040344c
pop dword fs:[0]
add esp, 0xc
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x45e918
Capabilities:
Get keyboard layout
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd98
push ebx
xor edx, edx
mov dword [ebp - 0x268], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x45eae3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x45eac1
mov dl, 1
mov eax, dword [0x4129c0]
call fcn.004030b8
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 4]
add eax, 0x38
call fcn.00403ea4
lea eax, [ebp - 0x11c]
push eax
push 0x40
call sub.user32.dll_GetKeyboardLayoutList
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
dec eax
test eax, eax
jl 0x45eaaa
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x11c]
call fcn.00448e50
test al, al
je 0x45ea9e
lea eax, [ebp - 0x18]
push eax
push 0x20019
push 0
push 0
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x11c]
mov dword [ebp - 0x264], eax
mov byte [ebp - 0x260], 0
lea ecx, [ebp - 0x264]
mov edx, 0x45eaf4
lea eax, [ebp - 0x25c]
call fcn.00408e98
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x45ea9e
xor eax, eax
push ebp
push 0x45ea97
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x14], pe_nt_image_headers32
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x21c]
push eax
push 0
push 0
push 0x45eb2c
mov eax, dword [ebp - 0x18]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x45ea80
lea eax, [ebp - 0x268]
lea edx, [ebp - 0x21c]
mov ecx, pe_nt_image_headers32
call fcn.00404114
mov edx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x11c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x11c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x3c]
jne 0x45ea80
mov eax, dword [ebp - 4]
add eax, 0x38
lea edx, [ebp - 0x21c]
mov ecx, pe_nt_image_headers32
call fcn.00404114
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45ea9e
mov eax, dword [ebp - 0x18]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
inc dword [ebp - 0x10]
dec dword [ebp - 0x1c]
jne 0x45e98d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov byte [eax + 0x1d], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dl, 1
call fcn.00417138
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45eaea
lea eax, [ebp - 0x268]
call fcn.00403ea4
ret
Function at 0x45f61c
Capabilities:
Create thread
Set global application hook

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [0x466bb4]
cmp byte [eax + 0xa5], 0
jne 0x45f693
cmp dword [0x466bcc], 0
jne 0x45f651
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push 0
mov eax, 0x45f5d8
push eax
push 3
call sub.user32.dll_SetWindowsHookExA
mov dword [0x466bcc], eax
cmp dword [0x466bc8], 0
jne 0x45f66c
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov dword [0x466bc8], eax
cmp dword [0x466bd0], 0
jne 0x45f693
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0x45f578
push 0x3e8
push 0
call sub.kernel32.dll_CreateThread_1
mov dword [0x466bd0], eax
pop ecx
pop ebp
ret

Function at 0x45f75c
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
call fcn.0045f6f4
mov byte [ebp - 9], al
cmp byte [ebp - 9], 0
je 0x45f77d
xor eax, eax
call fcn.0045f72c
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_ShowWindow
cmp byte [ebp - 9], 0
je 0x45f797
mov al, 1
call fcn.0045f72c
mov esp, ebp
pop ebp
ret

Function at 0x45fe5c
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [0x466bb4]
cmp dword [eax + 0x30], 0
je 0x45ff26
mov eax, dword [ebp - 4]
cmp dword [eax + 0x94], 0
jne 0x45ff1d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x14], eax
mov al, byte [ebp - 5]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x14]
push eax
push 0x45fddc
call sub.user32.dll_EnumWindows
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
cmp dword [eax + 8], 0
je 0x45ff1d
push 3
mov eax, dword [ebp - 0x14]
push eax
call sub.user32.dll_GetWindow
mov dword [ebp - 0x14], eax
push 0xffffffffffffffec
mov eax, dword [ebp - 0x14]
push eax
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x45fed7
mov dword [ebp - 0x14], 0xfffffffe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
mov eax, dword [eax + 8]
dec eax
cmp eax, 0
jl 0x45ff1d
mov dword [ebp - 0xc], eax
push 0x213
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x90]
call fcn.00414e08
push eax
call sub.user32.dll_SetWindowPos
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffff
jne 0x45feec
mov eax, dword [ebp - 4]
inc dword [eax + 0x94]
mov esp, ebp
pop ebp
ret

Function at 0x460c40
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef8
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0xa4], 0
je 0x460c85
push pe_nt_image_headers32
lea eax, [ebp - 0x108]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_GetWindowTextA
mov ecx, eax
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 8]
call fcn.00403f94
jmp 0x460c96
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x8c]
call fcn.00403ef8
mov esp, ebp
pop ebp
ret
Function at 0x46203c
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x84], 0
je 0x46208f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00443214
test al, al
je 0x46208f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00442d44
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x46208f
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00442d44
push eax
call sub.user32.dll_ShowWindow
pop ecx
pop ebp
ret
Function at 0x433007
Capabilities:
Encode data using xor

Disassembly:
add byte [eax], dl
inc eax
add byte [eax - 0x6ffb9570], dl
nop
nop
nop
nop
nop
nop
pop edi
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x433072
nop
nop
mov ebx, 0x40de38
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
nop
mov esi, 0x51c75eea
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x433060
nop
nop
nop
nop
mov eax, section..rdata
nop
nop
nop
cmp eax, 0
nop
nop
je 0x4330d2
nop
nop
nop
mov ebx, 0x4304d8
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x280c1f82
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x4330c0
nop
nop
popal
nop
nop
nop
nop
jmp 0x431219
Function at 0x406698
Capabilities:
Encode data using base64

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
push ebp
mov ebp, dword [esp + 0xc]
push edi
mov edi, eax
jne 0x406698
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, ecx
lea ecx, [edi + 2]
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
cmp edx, 0x40000000
jae 0x4066b7
add edx, edx
add edx, edx
cmp dword [ebx], edx
jae 0x4066bf
pop esi
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
ret
cmp edi, 2
mov ecx, ebp
jbe 0x40674d
lea edx, [edi - 3]
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
add edx, 1
lea esp, [esp]
movzx eax, byte [esi]
shr eax, 2
movzx eax, byte [eax + 0x41f038]
mov byte [ecx], al
movzx eax, byte [esi]
movzx ebx, byte [esi + 1]
and eax, 3
shl eax, 4
shr ebx, 4
movzx eax, byte [eax + ebx + 0x41f038]
mov byte [ecx + 1], al
movzx eax, byte [esi + 1]
movzx ebx, byte [esi + 2]
add ecx, 1
and eax, 0xf
shr ebx, 6
movzx eax, byte [ebx + eax*4 + 0x41f038]
add ecx, 1
mov byte [ecx], al
movzx eax, byte [esi + 2]
and eax, 0x3f
movzx eax, byte [eax + 0x41f038]
add ecx, 1
mov byte [ecx], al
add ecx, 1
add esi, 3
sub edi, 3
sub edx, 1
jne 0x4066e0
mov ebx, dword [esp + 0x18]
test edi, edi
je 0x4067b7
movzx edx, byte [esi]
shr edx, 2
mov al, byte [edx + 0x41f038]
mov byte [ecx], al
add ecx, 1
cmp edi, 1
jbe 0x406797
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
and edx, 3
shl edx, 4
shr eax, 4
movzx edx, byte [edx + eax + 0x41f038]
mov byte [ecx], dl
movzx eax, byte [esi + 1]
add ecx, 1
and eax, 0xf
movzx edx, byte [eax*4 + 0x41f038]
mov byte [ecx], dl
jmp 0x4067ae
movzx eax, byte [esi]
and eax, 3
shl eax, 4
mov dl, byte [eax + 0x41f038]
mov byte [ecx], dl
add ecx, 1
mov byte [ecx], 0x3d
add ecx, 1
mov byte [ecx], 0x3d
add ecx, 1
pop esi
mov eax, ecx
sub eax, ebp
pop edi
mov dword [ebx], eax
pop ebp
mov byte [ecx], 0
xor eax, eax
pop ebx
ret
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
mov ebx, 0x40de38
mov ecx, 0x76e5506f
nop
test eax, eax
nop
nop
nop
nop
je 0x43304e
nop
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
nop
mov eax, section..didat
mov ebx, 0x4304d8
nop
mov ecx, 0x3d762770
nop
nop
nop
test eax, eax
nop
nop
je 0x433084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219

Function at 0x430001
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x403daa
sub eax, 0x403d50
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
nop
jmp loc.00401219
Function at 0x4054b0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x410aed
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x190
push esi
mov esi, ecx
mov eax, dword [esi + 0x1a4]
mov dword [esp + 0x19c], 1
test eax, eax
je 0x4054fa
mov eax, dword [esp + 0x1a8]
mov ecx, dword [esp + 0x1a4]
push 0
push eax
push ecx
jmp 0x4056db
mov eax, dword [esp + 0x1a8]
lea edx, [esp + 0x7c]
push edx
push eax
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
push 0
je 0x4056cb
lea ecx, [esp + 0x18]
call fcn.0040f2f0
push 0x417614
lea ecx, [esp + 0xc]
mov byte [esp + 0x1a0], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1a8]
lea edx, [esp + 0xc]
push ecx
push eax
push edx
mov byte [esp + 0x1a8], 3
call sub.MFC42.DLL_operator_1
push 0x4175fc
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0x1a4], 4
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x1a0], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x10]
mov byte [esp + 0x19c], 4
call fcn.0040fafe
lea ecx, [esp + 0xc]
mov byte [esp + 0x19c], 3
call fcn.0040fafe
lea ecx, [esp + 8]
mov byte [esp + 0x19c], 2
call fcn.0040fafe
lea ecx, [esp + 0x14]
call fcn.0040f3b0
cmp eax, 0x3ea
jne 0x4055c9
mov dword [esi + 0x1a4], 1
jmp 0x405618
cmp eax, 7
jne 0x405613
push ecx
lea eax, [esp + 0x1ac]
mov ecx, esp
mov dword [esp + 8], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, 0x418fd8
call fcn.00407c20
lea ecx, [esp + 0x78]
mov byte [esp + 0x19c], 6
call fcn.0040fafe
lea ecx, [esp + 0x14]
mov byte [esp + 0x19c], 1
call fcn.0040faa4
jmp 0x4056fc
cmp eax, 1
jne 0x405657
mov ecx, dword [esp + 0x1a8]
mov edx, dword [esp + 0x1a4]
push 0
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [esp + 0x78]
mov byte [esp + 0x19c], 8
call fcn.0040fafe
lea ecx, [esp + 0x14]
mov byte [esp + 0x19c], 1
call fcn.0040faa4
jmp 0x4056e1
cmp eax, 2
jne 0x405630
push ecx
lea eax, [esp + 0x1ac]
mov ecx, esp
mov dword [esp + 8], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, 0x418fd8
call fcn.00407c20
lea ecx, [esp + 0x78]
mov byte [esp + 0x19c], 7
call fcn.0040fafe
lea ecx, [esp + 0x14]
mov byte [esp + 0x19c], 1
call fcn.0040faa4
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x19c], 0
call fcn.0040fafe
lea ecx, [esp + 0x1a8]
mov dword [esp + 0x19c], 0xffffffff
call fcn.0040fafe
xor eax, eax
jmp 0x40572c
mov ecx, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ecx
lea eax, [esp + 0x1ac]
mov ecx, esp
mov dword [esp + 8], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.004057a0
lea ecx, [esp + 0x1a4]
mov byte [esp + 0x19c], 0
call fcn.0040fafe
lea ecx, [esp + 0x1a8]
mov dword [esp + 0x19c], 0xffffffff
call fcn.0040fafe
mov eax, 1
mov ecx, dword [esp + 0x194]
pop esi
mov dword fs:[0], ecx
add esp, 0x19c
ret 8
Function at 0x40cc60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x3c
push esi
mov esi, dword [esp + 0x44]
push edi
push esi
lea eax, [esp + 0x14]
push 0x417dac
push eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 8]
lea edx, [esp + 0x10]
push ecx
push 0x20019
push 0
push edx
push 0x80000000
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edx, dword [esp + 8]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x10]
push esi
push ecx
push 0
push 0
push edx
mov dword [esp + 0x60], 0x32
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x48], ecx
dec ecx
test ecx, ecx
jle 0x40ccf7
mov dl, byte [eax + esi + 1]
mov byte [eax + esi], dl
inc eax
cmp eax, ecx
jl 0x40cceb
mov byte [eax + esi - 1], 0
mov eax, dword [esp + 0x4c]
push eax
push esi
call dword [sym.imp.RPCRT4.dll_UuidFromStringA]
pop edi
pop esi
add esp, 0x3c
ret 8

Function at 0x40cd10
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x41176f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push esi
mov esi, ecx
xor ebx, ebx
lea ecx, [esp + 8]
mov dword [esp + 0xc], ebx
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ebx
push ecx
push 0x418334
push edx
mov ecx, esi
mov dword [esp + 0x4c], 1
mov word [esp + 0x24], bx
mov dword [esp + 0x2c], ebx
call fcn.0040ce30
test eax, eax
je 0x40cd7a
mov eax, dword [esp + 0x28]
lea ecx, [esp + 8]
push eax
call sub.MFC42.DLL_CString::operator_2
mov esi, dword [esp + 0x40]
lea ecx, [esp + 8]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
mov dword [esp + 0xc], 1
lea ecx, [esp + 8]
mov byte [esp + 0x38], bl
call fcn.0040fafe
mov ecx, dword [esp + 0x30]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret 8

Function at 0x40cf60
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4117a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
lea eax, [esp]
push esi
mov esi, ecx
push eax
call sub.MFC42.DLL_AfxVariantInit
mov edx, dword [esp + 0x24]
lea ecx, [esp + 4]
push ecx
push 0
push 0
push 0x41830c
push edx
mov ecx, esi
mov dword [esp + 0x30], 0
call fcn.0040ce30
mov esi, dword [esp + 0xc]
lea eax, [esp + 4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ecx, dword [esp + 0x14]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x1c
ret 4
Function at 0x40cfd0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4117ff
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push esi
push edi
lea ecx, [esp + 0xc]
mov dword [esp + 0x14], 0
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 1
call sub.MFC42.DLL_CString::CString_1
mov edi, dword [esp + 0x30]
mov bl, 2
mov ecx, edi
mov byte [esp + 0x20], bl
call sub.MFC42.DLL_CString::Empty
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0xc]
push eax
call sub.MFC42.DLL_CString::operator_1
push 0x28
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
lea ecx, [esp + 0x30]
push eax
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x24], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x30]
mov byte [esp + 0x20], bl
call fcn.0040fafe
lea edx, [esp + 0xc]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::operator
push 0x7c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
je 0x40d0f4
mov eax, dword [esp + 0xc]
push 0x7c
lea ecx, [esp + 0x10]
mov esi, dword [eax - 8]
call sub.MFC42.DLL_CString::Find_1
sub esi, eax
lea ecx, [esp + 0x30]
dec esi
push esi
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x24], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x30]
mov byte [esp + 0x20], bl
call fcn.0040fafe
push 0x7c
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
lea edx, [esp + 0x30]
push eax
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
push eax
mov ecx, edi
mov byte [esp + 0x24], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x30]
mov byte [esp + 0x20], bl
call fcn.0040fafe
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::MakeUpper
mov esi, dword [esp + 0x28]
lea eax, [esp + 0x10]
push eax
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
mov dword [esp + 0x14], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x20], 1
call fcn.0040fafe
lea ecx, [esp + 0xc]
mov byte [esp + 0x20], 0
call fcn.0040fafe
mov ecx, dword [esp + 0x18]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret 0xc

Function at 0x40d300
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x411868
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 8]
sub esp, 0x10
mov esi, esp
lea eax, [esp + 0x30]
mov dword [esp + 0x1c], esp
push eax
mov ecx, esi
mov dword [esp + 0x2c], 0
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x34]
push ebx
mov dword [esi + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esi + 8], edx
mov eax, dword [esp + 0x40]
mov ecx, edi
mov dword [esi + 0xc], eax
call fcn.0040d890
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], 0xffffffff
call fcn.0040fafe
mov ecx, dword [esp + 0x10]
pop edi
mov eax, ebx
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x10
ret 0x10