joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40b7ca
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
xor edi, edi
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, dword [esp + 0x3c]
mov ebx, eax
and dword [esp + 0x10], edi
push str.PB_WindowID
push ebp
call dword [sym.imp.USER32.dll_GetPropW]
mov esi, eax
push 9
pop eax
test esi, esi
je 0x40b862
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
je 0x40b85f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x14], eax
jne 0x40b85f
lea eax, [esi - 1]
push eax
push dword [0x41fdac]
call fcn.0041753e
mov edi, eax
mov dword [esp + 0x10], 1
xor eax, eax
push 9
cmp dword [edi + 0x10], eax
jle 0x40b861
mov edx, dword [edi + 4]
xor ecx, ecx
pop esi
cmp word [ecx + edx + 2], si
jne 0x40b856
mov esi, 0xfa01
push 9
cmp word [ecx + edx + 4], si
je 0x40b949
pop esi
inc eax
add ecx, 6
cmp eax, dword [edi + 0x10]
jl 0x40b83c
push 9
pop eax
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
test ebx, ebx
je 0x40b908
push eax
call esi
test al, al
jns 0x40b908
push 0x11
call esi
test al, al
js 0x40b908
push 0x10
call esi
test al, al
js 0x40b908
push 0x12
call esi
test al, al
js 0x40b908
push 0x10
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClassNameW]
cmp dword [esp + 0x10], 0
jne 0x40b908
push 5
lea eax, [esp + 0x1c]
push str.RichE
push eax
call sub.MSVCRT.dll_wcsncmp
add esp, 0xc
test eax, eax
je 0x40b8dc
push 4
lea eax, [esp + 0x1c]
push str.RICHE
push eax
call sub.MSVCRT.dll_wcsncmp
add esp, 0xc
test eax, eax
jne 0x40b8f3
push 0
push 0
push 0x44e
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, 0x800
je 0x40b953
lea eax, [esp + 0x18]
push str.Scintilla
push eax
call sub.MSVCRT.dll_wcscmp
pop ecx
pop ecx
test eax, eax
je 0x40b953
test ebp, ebp
je 0x40b92c
push 0x11
call esi
test al, al
js 0x40b924
push 0x10
call esi
test al, al
js 0x40b924
push 0x12
call esi
test al, al
jns 0x40b92c
push 1
push ebp
call fcn.0040b95f
test ebx, ebx
je 0x40b940
push str.PB_Hotkey
push ebx
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
jne 0x40b953
test edi, edi
je 0x40b953
mov eax, dword [edi + 8]
jmp 0x40b955
and dword [esp + 0x14], 0
jmp 0x40b861
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4

Function at 0x40dad0
Capabilities:
Write file on windows

Disassembly:
push esi
mov esi, dword [esp + 0x10]
push edi
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
test eax, eax
je 0x40db02
push 0
lea ecx, [esp + 0x10]
push ecx
push esi
push dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40dafd
cmp dword [esp + 0xc], esi
je 0x40db19
pop edi
xor eax, eax
pop esi
ret
mov eax, dword [edi + 4]
add eax, dword [edi + 8]
push esi
push dword [esp + 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add dword [edi + 8], esi
pop edi
mov eax, 1
pop esi
ret
Function at 0x410de0
Capabilities:
Write file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
mov dword [esp + 4], 0
cmp dword [esi + 0x14], 0
jne 0x410e1c
push 0
lea eax, [esp + 8]
push eax
mov eax, dword [esi + 8]
sub eax, dword [esi + 0xc]
push eax
push dword [esi + 4]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esi + 8]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 4]
pop esi
pop ecx
ret 4
xor eax, eax
pop esi
pop ecx
ret 4

Function at 0x41219a
Capabilities:
Hash data using sha384

Disassembly:
mov eax, dword [esp + 4]
push 0x40
push 0x41a690
and dword [eax + 0x80], 0
and dword [eax + 0x84], 0
mov dword [eax + 0xc8], 0x30
add eax, 0x88
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret

Function at 0x4122a0
Capabilities:
Hash data using sha512

Disassembly:
mov eax, dword [esp + 4]
push 0x40
pop ecx
push ecx
and dword [eax + 0x80], 0
and dword [eax + 0x84], 0
mov dword [eax + 0xc8], ecx
add eax, 0x88
push 0x41a650
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret
Function at 0x41595c
Capabilities:
Hash data using sha256

Disassembly:
mov eax, dword [esp + 4]
push 0x20
pop ecx
push ecx
and dword [eax + 0x40], 0
and dword [eax + 0x44], 0
mov dword [eax + 0x68], ecx
add eax, 0x48
push 0x41a7d0
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
ret
Function at 0x41719c
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
push ebx
mov ebx, dword [esp + 8]
mov eax, ebx
push ebp
or eax, edx
push esi
mov esi, dword [esp + 0x18]
or eax, esi
push edi
mov edi, dword [esp + 0x20]
or eax, edi
test al, 3
jne 0x417203
lea ecx, [esi + edi]
mov eax, ecx
lea edi, [ebx + edx]
sub eax, esi
xor ebx, ebx
add eax, 3
shr eax, 2
cmp ecx, esi
sbb ebp, ebp
not ebp
and ebp, eax
jbe 0x41721b
sub edi, esi
mov ecx, dword [esi]
mov edx, ecx
shr edx, 8
mov eax, ecx
shl eax, 8
xor edx, eax
shl ecx, 8
and edx, 0xff00ff
xor edx, ecx
rol edx, 0x10
inc ebx
mov dword [edi + esi], edx
lea esi, [esi + 4]
cmp ebx, ebp
jb 0x4171da
jmp 0x41721b
add edi, edx
cmp edx, edi
jae 0x41721b
sub esi, edx
mov al, byte [esi + edx]
mov ecx, edx
xor ecx, 3
inc edx
mov byte [ecx + ebx], al
cmp edx, edi
jb 0x41720b
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x417220
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 8]
push ebx
mov ebx, dword [esp + 8]
mov eax, ebx
push ebp
or eax, edx
push esi
mov esi, dword [esp + 0x18]
or eax, esi
push edi
mov edi, dword [esp + 0x20]
or eax, edi
test al, 7
jne 0x41727b
lea ecx, [esi + edi]
mov eax, ecx
lea edi, [ebx + edx]
sub eax, esi
xor ebx, ebx
add eax, 7
shr eax, 3
cmp ecx, esi
sbb ebp, ebp
not ebp
and ebp, eax
jbe 0x417293
sub edi, esi
push dword [esi + 4]
push dword [esi]
call fcn.0041715c
inc ebx
mov dword [edi + esi], eax
mov dword [edi + esi + 4], edx
lea esi, [esi + 8]
pop ecx
pop ecx
cmp ebx, ebp
jb 0x41725e
jmp 0x417293
add edi, edx
cmp edx, edi
jae 0x417293
sub esi, edx
mov al, byte [esi + edx]
mov ecx, edx
xor ecx, 7
inc edx
mov byte [ecx + ebx], al
cmp edx, edi
jb 0x417283
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x4172f0
Capabilities:
Generate random numbers via winapi

Disassembly:
sub esp, 8
cmp dword [0x41f7fc], 0
je 0x417346
lea eax, [esp + 4]
push eax
push 4
push dword [0x41f800]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x417346
cmp dword [0x41f7fc], 0
je 0x417346
lea eax, [esp]
push eax
push 4
push dword [0x41f800]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x417346
mov ecx, dword [esp + 0xc]
mov eax, dword [esp]
inc ecx
je 0x417348
mul ecx
mov eax, edx
add esp, 8
ret 4
xor eax, eax
add esp, 8
ret 4

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

Disassembly:
pushal
call 0x43200c
nop
pop eax
nop
nop
nop
nop
add eax, 0x40729f
nop
sub eax, 0x407245
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x432030
nop
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43201e
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x1001382b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
pushal
call 0x1001383a
pop dword [ebp - 0x30]
mov eax, 0xd513e538
add eax, 0x3aed5302
sub dword [ebp - 0x30], eax
mov dword [ebp - 0x40], 0x8946b06
add dword [ebp - 0x40], 0x45bdda45
mov dword [ebp - 0x3c], 0xf1eb4c41
add dword [ebp - 0x3c], 0x40480004
mov dword [ebp - 0x38], 0x30bc54b9
sub dword [ebp - 0x38], 0xe470108b
mov dword [ebp - 0x34], 0xd13654fc
add dword [ebp - 0x34], 0x2ec9ab04
lea eax, [ebp - 0x40]
push eax
mov eax, 0x55562217
sub eax, 0x45534127
add eax, dword [ebp - 0x30]
call dword [eax]
mov dword [ebp - 0x40], 0x2db288d
add dword [ebp - 0x40], 0x719740c9
mov dword [ebp - 0x3c], 0x769cd506
sub dword [ebp - 0x3c], 0x35307391
mov dword [ebp - 0x38], 0x13dc2c0f
add dword [ebp - 0x38], 0x4f93405d
mov dword [ebp - 0x34], 0x17c13f9e
add dword [ebp - 0x34], 0xe83ec062
lea ebx, [ebp - 0x40]
push ebx
push eax
mov eax, 0xb3f23c1b
sub eax, 0xa3ef5bb3
add eax, dword [ebp - 0x30]
call dword [eax]
push 0x40
push 0x1000
push 0x435b9
push 0
call eax
mov ecx, 0xaeb607be
sub ecx, 0xaeb5c6ba
xor edx, edx
add edx, eax
mov esi, 0xe02036e2
sub esi, 0xd01bd4e2
add esi, dword [ebp - 0x30]
mov ebx, 0xc2889c9e
sub ebx, 0x87638d2f
xor dword [ebp - 0x18], ebx
mov edi, dword [esi]
mov dword [ebp - 0x2c], 0x260d6d94
xor edi, ebx
add dword [ebp - 4], 0xf3e7bc1c
mov dword [edx], edi
sub dword [ebp - 0x1c], esi
add edx, 0x26dc208c
sub edx, 0x26dc2088
add esi, 0xff75c41e
sub esi, 0xff75c41a
loop 0x1001395e
add eax, 0xf6e3
mov ebx, eax
add eax, 0x6b8c5685
sub eax, 0x6b8c5680
mov ecx, 0x10bcca56
sub ecx, 0xbcca56
add ecx, dword [ebp - 0x30]
call ebx
leave
ret
Function at 0x6d1f1a40
Capabilities:
Set registry value

Disassembly:
push 4
lea eax, [esp + 0xc]
push eax
push 4
push 0
push dword [esp + 0x14]
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
ret 8

Function at 0x6d1f1a8e
Capabilities:
Set registry value

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0x10]
mov ebx, ecx
test esi, esi
jne 0x6d1f1a9f
push 0xd
pop eax
jmp 0x6d1f1ac9
push edi
xor edi, edi
push esi
call dword [sym.imp.kernel32.dll_lstrlenA]
inc eax
add esi, eax
add edi, eax
cmp eax, 1
jne 0x6d1f1aa2
push edi
push dword [esp + 0x18]
push 7
push 0
push dword [esp + 0x20]
push dword [ebx]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop edi
pop esi
pop ebx
ret 8

Function at 0x6d1f1fbb
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x7b0]
sub esp, 0x830
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x7ac], eax
push esi
xor esi, esi
push 0x20019
push 0x6d21f894
push SysReAllocString
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
call fcn.6d212a5d
test eax, eax
je 0x6d1f202f
lea ecx, [ebp - 0x64]
call fcn.6d1f196e
lea ecx, [ebp - 0x7c]
call fcn.6d1f196e
lea ecx, [ebp - 0x70]
call fcn.6d1f196e
jmp 0x6d1f2120
push edi
mov edi, str.CAFEEFAC_DEC7_0000_0001_ABCDEFFEDCBA
push edi
lea ecx, [ebp - 0x70]
call fcn.6d1f23c7
push esi
push esi
push 0x2001f
push esi
push esi
push edi
push dword [ebp - 0x70]
lea ecx, [ebp - 0x7c]
call fcn.6d212a5d
test eax, eax
je 0x6d1f2074
lea ecx, [ebp - 0x64]
call fcn.6d1f196e
lea ecx, [ebp - 0x7c]
call fcn.6d1f196e
lea ecx, [ebp - 0x70]
call fcn.6d1f196e
jmp 0x6d1f211f
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push ebx
push 4
pop ebx
push ebx
lea eax, [ebp - 0x58]
push eax
push ebx
push esi
push 0x6d22c078
push dword [ebp - 0x7c]
mov dword [ebp - 0x58], esi
call edi
lea ecx, [ebp - 0x64]
test eax, eax
jne 0x6d1f2109
push esi
push esi
push 0x2001f
push esi
push esi
push str.InprocServer32
push dword [ebp - 0x7c]
call fcn.6d212a5d
test eax, eax
jne 0x6d1f2106
push 0x800
lea eax, [ebp - 0x54]
push eax
push dword [0x6d233750]
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
test eax, eax
je 0x6d1f2106
push ebx
lea eax, [ebp - 0x58]
push eax
push ebx
push esi
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x64]
mov dword [ebp - 0x58], esi
call edi
test eax, eax
jne 0x6d1f2106
push ebx
lea eax, [ebp - 0x58]
push eax
push ebx
push esi
push str.Apartment
push dword [ebp - 0x64]
mov dword [ebp - 0x58], str.ThreadingModel
call edi
test eax, eax
jne 0x6d1f2106
mov dword [ebp - 0x80], 1
lea ecx, [ebp - 0x64]
call fcn.6d1f196e
lea ecx, [ebp - 0x7c]
call fcn.6d1f196e
lea ecx, [ebp - 0x70]
call fcn.6d1f196e
pop ebx
pop edi
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp + 0x7ac]
neg eax
sbb eax, eax
and eax, 0x7ffbfdff
xor ecx, ebp
add eax, 0x80040201
pop esi
call fcn.6d20a065
add ebp, 0x7b0
leave
ret
Function at 0x6d1f23c7
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0xa0]
sub esp, 0x120
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x9c], eax
mov eax, dword [ebp + 0xa8]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 4]
or ecx, 0x2001f
push ecx
push eax
push dword [edi]
xor esi, esi
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
call fcn.6d212a5d
mov ebx, eax
cmp ebx, esi
je 0x6d1f243a
lea ecx, [ebp - 0x74]
call fcn.6d1f196e
mov eax, ebx
mov ecx, dword [ebp + 0x9c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.6d20a065
add ebp, 0xa0
leave
ret 4
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
jmp 0x6d1f2452
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x74]
call fcn.6d1f23c7
cmp eax, esi
jne 0x6d1f2484
lea eax, [ebp - 0x80]
push eax
push esi
push esi
push esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
push esi
push dword [ebp - 0x74]
mov dword [ebp - 0x68], 0x100
call ebx
test eax, eax
je 0x6d1f2442
lea ecx, [ebp - 0x74]
call fcn.6d1f196e
push dword [ebp - 0x78]
mov ecx, edi
call fcn.6d1f18ff
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.6d1f196e
mov eax, esi
jmp 0x6d1f2420
Function at 0x6d1f4ece
Capabilities:
Hide graphical window

Disassembly:
push esi
test ecx, ecx
je 0x6d1f4ed8
lea esi, [ecx - 0x78]
jmp 0x6d1f4eda
xor esi, esi
lea eax, [esi + 0x8c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov esi, dword [esi + 0x50]
test esi, esi
je 0x6d1f4ef6
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
pop esi
ret 8

Function at 0x6d1f60bd
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x1c
test eax, eax
je 0x6d1f60cf
add eax, 0xffffff84
jmp 0x6d1f60d1
xor eax, eax
and dword [ebp + 8], 0
push esi
mov esi, dword [ebp + 0xc]
push edi
push 7
pop ecx
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp + 8]
push ecx
push 0x6d21ffe4
lea ecx, [eax + 4]
call fcn.6d1f4ba0
test eax, eax
js 0x6d1f613a
cmp dword [ebp + 8], 0
je 0x6d1f6137
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
xor edi, edi
call esi
test ax, ax
jns 0x6d1f610f
inc edi
push 0x11
call esi
test ax, ax
jns 0x6d1f611b
add edi, 2
push 0x12
call esi
test ax, ax
jns 0x6d1f6127
add edi, 4
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push edi
lea edx, [ebp - 0x1c]
push edx
push eax
call dword [ecx + 0x1c]
jmp 0x6d1f613a
xor eax, eax
inc eax
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + 8]
setne cl
mov esi, ecx
test eax, eax
je 0x6d1f6150
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop edi
mov eax, esi
pop esi
leave
ret 8

Function at 0x6d1f8b90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x790]
sub esp, 0x810
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x78c], eax
mov eax, dword [ebp + 0x79c]
push esi
mov esi, dword [ebp + 0x7a0]
push edi
test eax, eax
jne 0x6d1f8bc1
xor edi, edi
jmp 0x6d1f8bde
cmp word [eax], 8
jne 0x6d1f8c9a
push dword [eax + 8]
call fcn.6d1fb748
mov edi, eax
pop ecx
test edi, edi
je 0x6d1f8c9a
push ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push 0x6d220364
lea eax, [ebp + 0x38c]
push 0x6d220388
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x78]
push eax
push 0x20019
push 0
push 0x6d22038c
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x6d1f8c62
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x74]
push eax
push 0
push 0
push 0x6d2203b8
push dword [ebp - 0x78]
mov dword [ebp - 0x80], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x78]
mov dword [ebp - 0x7c], eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x7c], 0
jne 0x6d1f8c62
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x38c]
push 0x6d2203c4
push eax
call ebx
add esp, 0xc
push 0
lea eax, [ebp + 0x38c]
push eax
push edi
call fcn.6d1fe197
push edi
mov ebx, eax
call fcn.6d212a5d
add esp, 0x10
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0xb
pop eax
mov word [esi], ax
xor eax, eax
cmp ebx, 1
setne al
pop ebx
dec eax
mov dword [esi + 8], eax
xor eax, eax
jmp 0x6d1f8c9f
mov eax, 0x80070057
mov ecx, dword [ebp + 0x78c]
pop edi
xor ecx, ebp
pop esi
call fcn.6d20a065
add ebp, 0x790
leave
ret 0xc
Function at 0x6d1fb555
Capabilities:
Check if file exists
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x2a8]
sub esp, 0x328
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x2a4], eax
mov eax, dword [ebp + 0x2b0]
push ebx
push esi
push edi
mov esi, 0x104
push esi
mov dword [ebp - 0x7c], eax
xor edi, edi
lea eax, [ebp + 0x9c]
push edi
push eax
call fcn.6d20a0b0
push esi
lea eax, [ebp + 0x1a0]
push edi
push eax
call fcn.6d20a0b0
push esi
lea eax, [ebp - 0x68]
push edi
push eax
call fcn.6d20a0b0
mov dword [ebp - 0x78], edi
xor eax, eax
lea edi, [ebp - 0x74]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0x24
stosd dword es:[edi], eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueA]
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp + 0x9c]
push eax
push str.CLSID08B0E5C0_4FCB_11CF_AAA5_00401C608501TreatAs
mov ebx, SysReAllocString
push ebx
mov dword [ebp - 0x80], esi
call edi
test eax, eax
jne 0x6d1fb724
push 0x6d220af4
lea eax, [ebp + 0x1a0]
push esi
push eax
call fcn.6d212a5d
push 0x6d220afc
lea eax, [ebp + 0x1a0]
push esi
push eax
call fcn.6d212a5d
lea eax, [ebp + 0x9c]
push eax
lea eax, [ebp + 0x1a0]
push esi
push eax
call fcn.6d212a5d
push 0x6d220b00
lea eax, [ebp + 0x1a0]
push esi
push eax
call fcn.6d212a5d
push 0x6d220b04
lea eax, [ebp + 0x1a0]
push esi
push eax
call fcn.6d212a5d
add esp, 0x3c
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp + 0x1a0]
push eax
push ebx
mov dword [ebp - 0x80], esi
call edi
test eax, eax
jne 0x6d1fb724
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x6d1fb724
lea eax, [ebp + 0x9c]
push eax
call dword [sym.imp.kernel32.dll_lstrlenA]
lea edi, [eax + 1]
cmp edi, 0x3fffffff
jle 0x6d1fb68b
xor eax, eax
jmp 0x6d1fb6a5
lea eax, [edi + edi]
call fcn.6d20a080
mov eax, esp
push 3
push edi
lea ecx, [ebp + 0x9c]
push ecx
push eax
call fcn.6d212a5d
lea ecx, [ebp - 0x78]
push ecx
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov edi, eax
movzx eax, byte [ebp - 0x6f]
push 0x10
cdq
pop ecx
idiv ecx
lea ecx, [eax + edx]
test edi, edi
jne 0x6d1fb724
movzx eax, word [ebp - 0x74]
test ecx, ecx
je 0x6d1fb6f8
push ecx
movzx ecx, word [ebp - 0x72]
push ecx
mov ecx, eax
and ecx, 0x8000000f
jns 0x6d1fb6e0
dec ecx
or ecx, 0xfffffff0
inc ecx
push ecx
shr eax, 4
push eax
push str._1d._1d._1d__02d
push esi
push dword [ebp - 0x7c]
call fcn.6d212a5d
add esp, 0x1c
jmp 0x6d1fb72a
movzx ecx, word [ebp - 0x72]
push ecx
mov ecx, eax
and ecx, 0x8000000f
jns 0x6d1fb70c
dec ecx
or ecx, 0xfffffff0
inc ecx
push ecx
shr eax, 4
push eax
push str._1d._1d._1d
push esi
push dword [ebp - 0x7c]
call fcn.6d212a5d
add esp, 0x18
jmp 0x6d1fb72a
mov eax, dword [ebp - 0x7c]
mov byte [eax], 0
lea esp, [ebp - 0x8c]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x2a4]
xor ecx, ebp
call fcn.6d20a065
add ebp, 0x2a8
leave
ret
Function at 0x6d1fc36c
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
lea ebp, [esp - 0x794]
sub esp, 0x814
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x790], eax
mov eax, dword [ebp + 0x79c]
push esi
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x78]
push eax
push 0x20019
xor esi, esi
push esi
push 0x6d220c78
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x78], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x6d1fc460
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0x7c], esi
push esi
jmp 0x6d1fc44b
xor ecx, ecx
xor eax, eax
cmp dword [ebp - 0x74], esi
jbe 0x6d1fc439
cmp byte [ebp + eax - 0x70], 0x2e
jne 0x6d1fc3e7
inc ecx
cmp ecx, 1
jg 0x6d1fc3f2
inc eax
cmp eax, dword [ebp - 0x74]
jb 0x6d1fc3da
cmp ecx, 1
jle 0x6d1fc439
push str.1.3.1
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
js 0x6d1fc439
lea eax, [ebp - 0x70]
push eax
call fcn.6d1fbd29
pop ecx
test al, al
je 0x6d1fc439
push dword [ebp - 0x80]
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
jle 0x6d1fc439
lea eax, [ebp - 0x70]
push eax
push dword [ebp + 0x7a0]
push dword [ebp - 0x80]
call fcn.6d212a5d
add esp, 0xc
inc dword [ebp - 0x7c]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x7c]
push dword [ebp - 0x78]
mov dword [ebp - 0x74], 0x800
call edi
test eax, eax
je 0x6d1fc3d1
pop edi
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x790]
xor ecx, ebp
pop esi
call fcn.6d20a065
add ebp, 0x794
leave
ret
Function at 0x6d1fc85e
Capabilities:
Query or enumerate registry value
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x1fc4]
mov eax, 0x2044
call fcn.6d20a9b0
mov eax, dword [0x6d22e258]
xor eax, ebp
mov dword [ebp + 0x1fc0], eax
cmp dword [0x6d2336c8], 0
je 0x6d1fc9e7
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
push edi
lea eax, [ebp - 0x78]
push eax
mov ebx, 0x20019
push ebx
push 0
push 0x6d220f0c
mov edi, reloc.OLEAUT32.dll_SysReAllocString
push edi
mov dword [ebp - 0x7c], 0x800
call esi
test eax, eax
jne 0x6d1fc9e4
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0xfc0]
push eax
push 0
push 0
push str.CurrentVersion
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x74], eax
lea eax, [ebp + 0xfc0]
push eax
push str.SOFTWAREJavaSoftJava_Runtime_Environment
lea eax, [ebp - 0x40]
push 0x6d220f74
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
cmp dword [ebp - 0x74], 0
jne 0x6d1fc9db
lea eax, [ebp - 0x80]
push eax
push ebx
push 0
lea eax, [ebp - 0x40]
push eax
push edi
call esi
test eax, eax
jne 0x6d1fc9db
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x7c0]
push eax
xor edi, edi
push edi
push edi
push 0x6d220f7c
push dword [ebp - 0x80]
mov esi, 0x800
mov dword [ebp - 0x7c], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x6d1fc9db
lea eax, [ebp + 0x7c0]
push eax
lea eax, [ebp + 0x17c0]
push str._slib_bundles
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 0x17c0]
push eax
call fcn.6d212a5d
add esp, 0x14
test eax, eax
jne 0x6d1fc9d2
push str._requested.list
lea eax, [ebp + 0x17c0]
push esi
push eax
mov dword [ebp - 0x74], edi
call fcn.6d212a5d
push 0x6d220fa8
lea eax, [ebp + 0x17c0]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.6d212a5d
add esp, 0x18
test eax, eax
jne 0x6d1fc9d2
mov ecx, dword [0x6d2336c8]
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x6d1fc9b2
push dword [ebp - 0x74]
sub eax, esi
push eax
push 1
push ecx
call fcn.6d20c102
push dword [ebp - 0x74]
call fcn.6d20bf37
add esp, 0x14
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1fc0]
xor ecx, ebp
call fcn.6d20a065
add ebp, 0x1fc4
leave
ret