joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100301e0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1864
call fcn.10081560
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x1808], 0
mov dword [ebp - 0x181c], 0x400
push 0x800
push 0
lea eax, [ebp - 0x804]
push eax
call fcn.1008e2a0
add esp, 0xc
cmp dword [ebp + 0x24], 0
je 0x10030250
push 0x400
lea ecx, [ebp - 0x804]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.100300f0
add esp, 0x10
test eax, eax
jne 0x1003024e
xor eax, eax
jmp 0x100303d3
jmp 0x10030263
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x804]
push edx
call fcn.100bd37a
add esp, 8
cmp dword [ebp + 0x20], 0
je 0x10030283
lea eax, [ebp - 0x804]
push eax
call fcn.1006a430
add esp, 4
test eax, eax
jne 0x10030283
xor eax, eax
jmp 0x100303d3
push 0x44
push 0
lea ecx, [ebp - 0x1864]
push ecx
call fcn.1008e2a0
add esp, 0xc
push 0x44
push 0
lea edx, [ebp - 0x1864]
push edx
call fcn.1008e2a0
add esp, 0xc
mov dword [ebp - 0x1864], 0x44
lea eax, [ebp - 0x1864]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov dword [ebp - 0x1838], 1
mov cx, word [ebp + 0x14]
mov word [ebp - 0x1834], cx
xor edx, edx
mov dword [ebp - 0x1818], edx
mov dword [ebp - 0x1814], edx
mov dword [ebp - 0x1810], edx
mov dword [ebp - 0x180c], edx
push 0x10
push 0
lea eax, [ebp - 0x1818]
push eax
call fcn.1008e2a0
add esp, 0xc
mov dword [ebp - 0x1820], 0x800
push 0x1000
push 0
lea ecx, [ebp - 0x1804]
push ecx
call fcn.1008e2a0
add esp, 0xc
cmp dword [ebp + 0x10], 0
je 0x10030349
mov edx, dword [ebp + 0x10]
push edx
lea eax, [ebp - 0x804]
push eax
push str.__s___s
lea ecx, [ebp - 0x1804]
push ecx
call fcn.10030560
add esp, 0x10
jmp 0x10030364
lea edx, [ebp - 0x804]
push edx
push 0x101117b8
lea eax, [ebp - 0x1804]
push eax
call fcn.10030560
add esp, 0xc
lea ecx, [ebp - 0x1818]
push ecx
lea edx, [ebp - 0x1864]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1804]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov dword [ebp - 0x1808], eax
cmp dword [ebp - 0x1808], 0
je 0x100303cd
cmp dword [ebp + 0x18], 0
je 0x100303b3
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp - 0x1818]
push edx
call dword [sym.imp.USER32.dll_WaitForInputIdle]
mov eax, dword [ebp - 0x1814]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x1818]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1808]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret
Function at 0x10033b10
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x118], 0x114
push 0x110
push 0
lea eax, [ebp - 0x114]
push eax
call fcn.1008e2a0
add esp, 0xc
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x120], eax
cmp dword [ebp - 0x120], 0
je 0x10033b74
cmp dword [ebp - 0x114], 6
jb 0x10033b74
mov dword [ebp - 0x11c], 1
jmp 0x10033b7e
mov dword [ebp - 0x11c], 0
mov al, byte [ebp - 0x11c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret

Function at 0x10034230
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 4]
call fcn.10032d20
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
mov edx, dword [eax + 0x40]
call edx
cmp dword [ebp - 0xc], 1
jne 0x100343cd
mov eax, dword [ebp - 4]
cmp dword [eax + 0x68], 0
je 0x100343cd
lea ecx, [ebp + 8]
push ecx
mov ecx, dword [ebp - 4]
add ecx, 4
call fcn.10034d20
mov ecx, dword [ebp - 4]
call fcn.100336a0
mov dword [ebp - 0x10], eax
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [eax + 0xf4]
call ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x100342c5
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [eax + 0x84]
call edx
test eax, eax
je 0x100343cd
mov dword [ebp - 0xc], 2
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
je 0x100342e5
mov dword [ebp - 0x14], 1
jmp 0x100342ec
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0
je 0x10034325
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x58], 0
jne 0x10034325
mov edx, dword [ebp - 4]
mov dword [edx + 0x58], 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], 0
push 1
push 0
push 0x3401
mov ecx, dword [ebp - 4]
add ecx, 4
call fcn.10034a80
jmp 0x1003434b
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x58], 0
je 0x1003434b
mov edx, dword [ebp - 4]
cmp dword [edx + 0x5c], 0
jne 0x1003434b
mov eax, dword [ebp - 4]
mov dword [eax + 0x58], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x5c], 1
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx edx, ax
and edx, 0x8000
je 0x10034367
mov dword [ebp - 0x18], 1
jmp 0x1003436e
mov dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 0
je 0x100343a7
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0
jne 0x100343a7
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x60], 1
mov edx, dword [ebp - 4]
mov dword [edx + 0x5c], 0
push 1
push 1
push 0x3401
mov ecx, dword [ebp - 4]
add ecx, 4
call fcn.10034a80
jmp 0x100343cd
mov eax, dword [ebp - 4]
cmp dword [eax + 0x60], 0
je 0x100343cd
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x5c], 0
jne 0x100343cd
mov edx, dword [ebp - 4]
mov dword [edx + 0x60], 0
mov eax, dword [ebp - 4]
mov dword [eax + 0x5c], 1
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret 8
Function at 0x10037270
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x24], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 4
call fcn.1003a9a0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push str.Start_run__cmd___s
call fcn.100440d0
add esp, 8
push 0
mov eax, dword [0x1014ba14]
push eax
push 0
mov ecx, 0x1014ba44
call fcn.1003b8b0
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x28]
call fcn.10010220
call fcn.10033500
mov ecx, eax
call fcn.1007a8d0
call fcn.1003b5a0
mov ecx, eax
call fcn.1004c570
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.1003b320
mov ecx, eax
call fcn.1002b840
call fcn.1003b320
mov ecx, eax
call fcn.1002bc30
push eax
call fcn.1004a750
mov ecx, 0x1014ba80
call fcn.10010350
test eax, eax
jne 0x1003733e
push str.CheckSingleInstance_failed__exit
call fcn.100440d0
add esp, 4
push 0
push 0x10112714
push 0
call fcn.1004a760
jmp 0x1003748a
call fcn.10038160
test eax, eax
jne 0x100373a3
lea ecx, [ebp - 0x20]
call fcn.10006720
lea edx, [ebp - 0x1c]
push edx
call fcn.1004b6c0
add esp, 4
mov ecx, eax
call fcn.1003efe0
push eax
push 0x10112774
lea eax, [ebp - 0x20]
push eax
call fcn.10007f10
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.10029430
push 0
lea ecx, [ebp - 0x20]
call fcn.10007150
push eax
push 0
call fcn.1004a760
lea ecx, [ebp - 0x20]
call fcn.10006cb0
jmp 0x1003748a
call fcn.100380d0
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x30], esp
push 0
call fcn.10028fe0
push 0
push 0
push str.install_1
call fcn.10029b90
mov ecx, eax
call fcn.10020920
call fcn.1003b320
mov ecx, eax
call fcn.1002c180
test eax, eax
jne 0x10037420
push 0x101127ac
call fcn.100273d0
add esp, 4
test eax, eax
jne 0x10037420
push str.cef_check_fail
call fcn.100440d0
add esp, 4
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x34], esp
push 0
call fcn.10028fe0
push 0
push 0
push str.cef_chk_fail
call fcn.10029b90
mov ecx, eax
call fcn.10020920
jmp 0x1003748a
call fcn.100377e0
test eax, eax
jne 0x10037440
mov ecx, 0x1014ba80
call fcn.10010440
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1003748a
call fcn.10037e80
test eax, eax
jne 0x1003746f
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x38], esp
push 0
call fcn.10028fe0
push 0
push 0
push str.install_file_fail
call fcn.10029b90
mov ecx, eax
call fcn.10020920
jmp 0x1003748a
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.100374f0
add esp, 8
mov dword [ebp - 0x3c], eax
xor eax, eax
jne 0x10037310
call fcn.1003b5a0
mov ecx, eax
call fcn.1004c890
call fcn.10033500
mov ecx, eax
call fcn.1007aa40
call fcn.1003b460
mov ecx, eax
call fcn.1003f3f0
mov ecx, 0x1014ba80
call fcn.10010440
mov ecx, 0x1014ba44
call fcn.1003e370
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x28]
call fcn.10010240
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret 0x10
Function at 0x100377a0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push 4
push 0x10111b58
push 0
call fcn.1004a760
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 6
jne 0x100377d3
push 1
push 0
push 0
push str.http:__cdn_ali_file.dolphinpaper.com_dolphin_dolphinwallpaper_home.exe
push 0x10111b84
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esp, ebp
pop ebp
ret

Function at 0x10038160
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10103689
mov eax, dword fs:[0]
push eax
sub esp, 0x438
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x440], 1
mov dword [ebp - 0x428], 4
mov dword [ebp - 0x434], 0
mov dword [ebp - 0x424], 4
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
push 0x101122f4
push 0x10112308
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x100381ef
cmp dword [ebp - 0x434], 1
jne 0x100381ef
jmp 0x1003839c
push 0x208
push 0
lea eax, [ebp - 0x218]
push eax
call fcn.1008e2a0
add esp, 0xc
mov dword [ebp - 0x428], 1
mov dword [ebp - 0x424], 0x104
mov dword [ebp - 0x444], 0x10112398
lea ecx, [ebp - 0x424]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x428]
push eax
push 0x1011238c
mov ecx, dword [ebp - 0x444]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x10038258
jmp 0x1003839c
push 0x1011241c
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10038280
jmp 0x1003839c
push 0x208
push 0
lea ecx, [ebp - 0x420]
push ecx
call fcn.1008e2a0
add esp, 0xc
push 0x104
lea edx, [ebp - 0x420]
push edx
mov eax, dword [0x1014ba14]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x430]
call fcn.10006720
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x218]
push ecx
lea ecx, [ebp - 0x438]
call fcn.10006670
mov byte [ebp - 4], 1
lea edx, [ebp - 0x430]
push edx
lea eax, [ebp - 0x438]
push eax
call fcn.100081e0
add esp, 8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x438]
call fcn.10006cb0
lea ecx, [ebp - 0x42c]
call fcn.10006720
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x420]
push ecx
lea ecx, [ebp - 0x43c]
call fcn.10006670
mov byte [ebp - 4], 3
lea edx, [ebp - 0x42c]
push edx
lea eax, [ebp - 0x43c]
push eax
call fcn.100081e0
add esp, 8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x43c]
call fcn.10006cb0
lea ecx, [ebp - 0x430]
call fcn.10007150
push eax
lea ecx, [ebp - 0x42c]
call fcn.10007150
push eax
call fcn.10026580
add esp, 8
test eax, eax
jge 0x10038373
mov dword [ebp - 0x440], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
call fcn.10006cb0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x430]
call fcn.10006cb0
xor ecx, ecx
jne 0x10038195
mov eax, dword [ebp - 0x440]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret
Function at 0x10038710
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x630
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
je 0x10038739
mov eax, dword [ebp + 8]
push eax
call fcn.1003b320
mov ecx, eax
call fcn.1002b840
push 0x208
push 0
lea ecx, [ebp - 0x61c]
push ecx
call fcn.1008e2a0
add esp, 0xc
mov dword [ebp - 0x624], 1
mov dword [ebp - 0x620], 0x104
mov dword [ebp - 0x628], 0x10112510
lea edx, [ebp - 0x620]
push edx
lea eax, [ebp - 0x61c]
push eax
lea ecx, [ebp - 0x624]
push ecx
push 0x10112504
mov edx, dword [ebp - 0x628]
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x1003883e
call fcn.1003b320
mov ecx, eax
call fcn.1002bc90
push eax
call fcn.10029b90
mov ecx, eax
call fcn.10020b20
push 0x10112594
call fcn.10029b90
mov ecx, eax
call fcn.10020b00
push 0x208
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.1008e2a0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [0x1014ba14]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push eax
call fcn.10029b90
mov ecx, eax
call fcn.10020b40
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x62c], esp
push 0
call fcn.10028fe0
push 0
push 0
push 0x101125a0
call fcn.10029b90
mov ecx, eax
call fcn.10020920
mov eax, 2
jmp 0x1003892e
call fcn.1003b320
mov ecx, eax
call fcn.1002bf50
test eax, eax
jne 0x100388fd
push 1
call fcn.10026760
add esp, 4
test eax, eax
jne 0x100388fd
call fcn.1003b320
mov ecx, eax
call fcn.1002bc90
push eax
call fcn.10029b90
mov ecx, eax
call fcn.10020b20
push 0x101125b4
call fcn.10029b90
mov ecx, eax
call fcn.10020b00
push 0x208
push 0
lea ecx, [ebp - 0x414]
push ecx
call fcn.1008e2a0
add esp, 0xc
push 0x104
lea edx, [ebp - 0x414]
push edx
mov eax, dword [0x1014ba14]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x414]
push ecx
call fcn.10029b90
mov ecx, eax
call fcn.10020b40
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x630], esp
push 0
call fcn.10028fe0
push 0
push 0
push 0x101125c0
call fcn.10029b90
mov ecx, eax
call fcn.10020920
mov eax, 1
jmp 0x1003892e
cmp dword [0x1014ba40], 0
jne 0x10038929
mov edx, dword [0x1014ba40]
add edx, 1
mov dword [0x1014ba40], edx
push 0
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, dword [0x1014ba14]
push ecx
call fcn.10037270
mov eax, dword [0x10147184]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret
Function at 0x1003baa0
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp dword [eax], 0
jne 0x1003bb5d
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 4]
cmp dword [eax], 0
jne 0x1003bad3
xor eax, eax
jmp 0x1003bb8b
push str.HttpInit
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], eax
push str.HttpUninit
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], eax
push str.zlib_uncompress
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], eax
push str.zlib_compress
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14], eax
push str.zlib_compressBound
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x18], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
je 0x1003bb5d
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
call ecx
mov edx, dword [ebp - 4]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
je 0x1003bb81
mov ecx, dword [ebp - 4]
cmp dword [ecx + 4], 0
je 0x1003bb81
mov edx, dword [ebp - 4]
cmp dword [edx + 0xc], 0
je 0x1003bb81
mov dword [ebp - 8], 1
jmp 0x1003bb88
mov dword [ebp - 8], 0
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 4
Function at 0x1003c690
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x1014857c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x20c], ecx
push 0
lea ecx, [ebp - 0x21c]
call fcn.10029080
mov eax, dword [ebp - 0x20c]
mov ecx, dword [eax + 4]
or ecx, 0x2001f
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x20c]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x21c]
call fcn.10029d40
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
je 0x1003c70f
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0x220], edx
lea ecx, [ebp - 0x21c]
call fcn.10029500
mov eax, dword [ebp - 0x220]
jmp 0x1003c7c4
mov dword [ebp - 0x210], 0x100
lea eax, [ebp - 0x230]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x204]
push edx
push 0
mov eax, dword [ebp - 0x21c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x1003c793
lea ecx, [ebp - 0x204]
push ecx
lea ecx, [ebp - 0x21c]
call fcn.1003c690
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
je 0x1003c787
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0x224], edx
lea ecx, [ebp - 0x21c]
call fcn.10029500
mov eax, dword [ebp - 0x224]
jmp 0x1003c7c4
mov dword [ebp - 0x210], 0x100
jmp 0x1003c719
lea ecx, [ebp - 0x21c]
call fcn.10029990
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x20c]
call fcn.1003ae50
mov dword [ebp - 0x228], eax
lea ecx, [ebp - 0x21c]
call fcn.10029500
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100810f8
mov esp, ebp
pop ebp
ret 4

Function at 0x1003c8a0
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp dword [eax], 0
je 0x1003c8ff
push str.Advapi32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x1003c8cc
mov eax, 1
jmp 0x1003c91d
push str.RegDeleteKeyTransactedW
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x1003c8fd
push 0
mov edx, dword [ebp - 4]
mov eax, dword [edx]
push eax
push 0
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [ebp - 0xc]
jmp 0x1003c91d
jmp 0x1003c918
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x1003c918
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp 0x1003c91d
mov eax, 1
mov esp, ebp
pop ebp
ret 8
Function at 0x1003e030
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x18], ecx
xor eax, eax
jne 0x1003e039
cmp dword [ebp + 0xc], 0
je 0x1003e04c
mov dword [ebp - 0x10], 1
jmp 0x1003e053
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], 0
jne 0x1003e066
mov eax, 0xd
jmp 0x1003e0c3
xor edx, edx
jne 0x1003e03d
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.100ab667
add esp, 4
add eax, 1
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
lea ecx, [eax + edx*2]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
lea ecx, [eax + edx*2]
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 8], 1
jne 0x1003e077
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 0xc]
push eax
push 7
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esp, ebp
pop ebp
ret 8

Function at 0x1003e0d0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], ecx
xor eax, eax
jne 0x1003e0d9
cmp dword [ebp + 0xc], 0
je 0x1003e0ec
mov dword [ebp - 4], 1
jmp 0x1003e0f3
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x1003e106
mov eax, 0xd
jmp 0x1003e135
xor edx, edx
jne 0x1003e0dd
mov eax, dword [ebp + 0xc]
push eax
call fcn.100ab667
add esp, 4
lea ecx, [eax + eax + 2]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1003f420
Capabilities:
Delete registry value
Persist via app paths registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10103cb8
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x1014857c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
push 0x10112e54
push 0x10112e78
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
push str.ShortCut
push 0x10112f10
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
mov eax, dword [ebp - 0x10]
cmp dword [eax + 4], 1
jl 0x1003f49b
push 4
mov ecx, dword [ebp - 0x10]
add ecx, 4
push ecx
push 4
push str.AutoRun_Interval
push 0x10112fb8
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov ecx, dword [ebp - 0x10]
call fcn.10040280
call fcn.1004ec90
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ecx + 0x2c]
call eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1003f506
call fcn.1003b320
mov ecx, eax
call fcn.1002bd30
push eax
lea ecx, [ebp - 0x18]
call fcn.10006650
mov dword [ebp - 4], 0
push str.home
lea ecx, [ebp - 0x18]
call fcn.10007910
test eax, eax
jne 0x1003f4f7
mov ecx, dword [ebp - 0x10]
call fcn.100400b0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.10006cb0
mov ecx, dword [ebp - 0x10]
call fcn.1003fe40
mov ecx, dword [ebp - 0x10]
call fcn.10040370
mov ecx, dword [ebp - 0x10]
call fcn.10040530
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.10008ae0
movzx ecx, al
test ecx, ecx
jne 0x1003f562
call fcn.10029b90
mov dword [ebp - 0x1c], eax
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0
call fcn.10028fe0
push 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.10007150
push eax
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx]
call edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret