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

Disassembly:
push 0x14
mov eax, 0x100b7a16
call fcn.100b4d71
and dword [ebp - 4], 0
call fcn.100b022b
call fcn.100130d0
mov edi, dword [ebp + 8]
mov eax, dword [edi]
lea ecx, [ebp - 0x13]
push ecx
push dword [ebp + 0x10]
push edi
call dword [eax + 0x2a4]
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x10093337
movzx eax, word [0x100ffb2c]
push eax
call sub.java.dll_getJavaIDFromLangID
mov esi, eax
pop ecx
test esi, esi
je 0x100932e5
push ebx
push esi
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x100932dd
mov eax, dword [edi]
push ebx
push dword [ebp + 0x10]
push edi
call dword [eax + 0x2a8]
push esi
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov al, 1
jmp 0x10093339
push esi
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov ebx, dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
push 0
push 0
call ebx
mov edi, eax
inc edi
js 0x100933e8
cmp edi, 0xffffffff
ja 0x100933e8
test edi, edi
je 0x10093313
cmp edi, 0x3fffffff
ja 0x100933e8
mov eax, edi
shl eax, 2
push eax
call fcn.100130d0
mov esi, eax
pop ecx
test esi, esi
jne 0x10093341
push dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2a8]
xor al, al
call fcn.100b4e16
ret 0x10
lea eax, [esi + 4]
push eax
lea eax, [edi - 1]
push eax
call ebx
call fcn.100130d0
and dword [ebp - 0x18], 0
mov dword [esi], eax
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 0x18]
cmp eax, edi
jge 0x100933b4
lea ebx, [esi + eax*4]
movzx eax, word [ebx]
push eax
call sub.java.dll_getJavaIDFromLangID
pop ecx
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100933e0
push dword [ebp - 0x1c]
push eax
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x100933d6
push dword [ebx]
movzx eax, byte [ebp + 0x14]
push eax
push 0x9823
mov ecx, 0x101004d8
call fcn.10019d20
test eax, eax
je 0x100933aa
push dword [ebx]
call fcn.100a4130
pop ecx
mov byte [ebp - 0x11], 1
push dword [ebp - 0x20]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
push dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
push dword [ebp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2a8]
push esi
call dword [sym.imp.MSVCR100.dll_free]
mov al, byte [ebp - 0x11]
pop ecx
jmp 0x10093339
push dword [ebp - 0x20]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
inc dword [ebp - 0x18]
jmp 0x1009335a
xor eax, eax
lea edi, [ebp + 0x17]
stosb byte es:[edi], al
mov al, byte [ebp + 0x17]
mov byte [ebp - 0x12], al
push 0x100da640
lea eax, [ebp - 0x12]
push eax
call sub.MSVCR100.dll__CxxThrowException
call fcn.100b024a
mov eax, 0x1009340d
ret
Function at 0x10093418
Capabilities:
Get keyboard layout

Disassembly:
push 0x1c
mov eax, 0x100b7a31
call fcn.100b4d71
xor edi, edi
mov dword [ebp - 4], edi
call fcn.100b022b
call fcn.100130d0
mov esi, dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
push edi
push edi
call esi
mov ebx, eax
cmp ebx, edi
jl 0x100935cc
cmp ebx, 0xffffffff
ja 0x100935cc
cmp ebx, edi
je 0x10093460
cmp ebx, 0x3fffffff
ja 0x100935cc
mov edi, ebx
shl edi, 2
push edi
call fcn.100130d0
pop ecx
mov dword [ebp - 0x28], eax
test eax, eax
je 0x100934aa
push eax
push ebx
call esi
xor esi, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], esi
cmp ebx, esi
je 0x10093492
cmp ebx, 0x3fffffff
ja 0x100935b2
push edi
call fcn.100130d0
pop ecx
mov dword [ebp - 0x1c], eax
cmp eax, esi
jne 0x100934b4
push dword [ebp - 0x28]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
xor eax, eax
call fcn.100b4e16
ret 8
cmp dword [ebp - 0x24], ebx
jge 0x1009350a
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + ecx*4]
push eax
call sub.java.dll_getJavaIDFromLangID
mov edi, eax
pop ecx
test edi, edi
je 0x10093502
xor esi, esi
cmp esi, dword [ebp - 0x20]
jge 0x100934f4
mov eax, dword [ebp - 0x1c]
push edi
push dword [eax + esi*4]
call sub.MSVCR100.dll_strcmp
pop ecx
pop ecx
test eax, eax
jne 0x10093507
push edi
call dword [sym.imp.MSVCR100.dll_free]
cmp esi, dword [ebp - 0x20]
pop ecx
jne 0x10093502
mov eax, dword [ebp - 0x1c]
inc dword [ebp - 0x18]
inc dword [ebp - 0x20]
mov dword [eax + esi*4], edi
inc dword [ebp - 0x24]
jmp 0x100934b4
inc esi
jmp 0x100934d2
mov esi, dword [ebp + 8]
mov eax, dword [esi]
and dword [ebp - 0x20], 0
push str.java_util_Locale
push esi
call dword [eax + 0x18]
xor edi, edi
mov dword [ebp + 8], eax
cmp eax, edi
je 0x10093572
mov ecx, dword [esi]
push edi
push eax
push dword [ebp - 0x18]
push esi
call dword [ecx + 0x2b0]
mov dword [ebp - 0x20], eax
cmp eax, edi
je 0x10093569
cmp edi, dword [ebp - 0x18]
jge 0x10093569
mov eax, dword [ebp - 0x1c]
push dword [eax + edi*4]
push esi
call fcn.1009310c
pop ecx
pop ecx
mov ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x390]
test al, al
mov eax, dword [esi]
je 0x10093589
push dword [ebp - 0x20]
push esi
call dword [eax + 0x5c]
and dword [ebp - 0x20], 0
push dword [ebp + 8]
mov eax, dword [esi]
push esi
call dword [eax + 0x5c]
xor esi, esi
cmp esi, dword [ebp - 0x18]
jge 0x10093598
mov eax, dword [ebp - 0x1c]
push dword [eax + esi*4]
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
inc esi
jmp 0x10093574
push ebx
push edi
push dword [ebp - 0x20]
push esi
call dword [eax + 0x2b8]
inc edi
jmp 0x1009353a
push dword [ebp - 0x28]
mov esi, dword [sym.imp.MSVCR100.dll_free]
call esi
push dword [ebp - 0x1c]
call esi
mov eax, dword [ebp - 0x20]
pop ecx
pop ecx
jmp 0x100934ac
xor eax, eax
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x11], al
push 0x100da640
lea eax, [ebp - 0x11]
push eax
call sub.MSVCR100.dll__CxxThrowException
xor eax, eax
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x12], al
push 0x100da640
lea eax, [ebp - 0x12]
jmp 0x100935c6
Function at 0x10098ab6
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x38c]
sub esp, 0x40c
mov eax, dword [0x100fd640]
xor eax, ebp
mov dword [ebp + 0x388], eax
push esi
mov esi, ecx
mov ecx, dword [esi + 0xc08]
push edi
call fcn.100a9f93
mov edi, eax
test edi, edi
je 0x10098c87
push ebx
push 0xc
push edi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, dword [esi + 0xc08]
push edi
mov ebx, eax
call fcn.100a9f9d
cmp ebx, 8
jne 0x10098b53
mov ecx, dword [esi + 0xc08]
call fcn.100a9f93
mov ebx, eax
lea eax, [ebp - 0x78]
push eax
push ebx
call fcn.1009892f
pop ecx
pop ecx
mov ecx, dword [esi + 0xc08]
push ebx
mov edi, eax
call fcn.100a9f9d
cmp edi, dword [esi + 0xc00]
jne 0x10098b5a
mov eax, edi
shl eax, 2
push eax
lea eax, [esi + 0x800]
push eax
lea eax, [ebp - 0x78]
push eax
call sub.MSVCR100.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x10098b5a
xor eax, eax
jmp 0x10098c86
mov eax, 0x100
cmp edi, eax
jle 0x10098b65
mov edi, eax
mov eax, edi
shl eax, 2
push eax
lea eax, [ebp - 0x78]
push eax
lea ebx, [esi + 0x800]
push ebx
call sub.MSVCR100.dll_memcpy
and dword [ebp - 0x80], 0
add esp, 0xc
lea eax, [edi - 1]
push ebx
mov ecx, esi
mov dword [esi + 0xc00], edi
mov dword [ebp - 0x7c], eax
call fcn.100130d0
cmp eax, 1
jne 0x10098b9f
push 2
jmp 0x10098be2
cmp eax, 2
jne 0x10098ba8
push 3
jmp 0x10098be2
push str.FORCEGRAY
call dword [sym.imp.MSVCR100.dll_getenv]
pop ecx
test eax, eax
je 0x10098be0
push 0xa
pop edx
lea eax, [esi + 0x7d8]
mov ecx, edx
and dword [eax - 0x3d8], 0
and dword [eax], 0
add eax, 4
dec ecx
jne 0x10098bc3
sub edi, 0x14
sub dword [ebp - 0x7c], edx
mov dword [ebp - 0x80], edx
push 1
jmp 0x10098be2
push 0
mov ecx, dword [esi + 0xc08]
call fcn.100aa544
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x7c]
jg 0x10098c26
lea eax, [esi + ecx*4 + 0x400]
movzx edx, byte [ebp + ecx*4 - 0x78]
movzx ebx, byte [ebp + ecx*4 - 0x77]
or edx, 0xffffff00
shl edx, 8
or edx, ebx
movzx ebx, byte [ebp + ecx*4 - 0x76]
shl edx, 8
or edx, ebx
mov dword [eax], edx
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x7c]
jle 0x10098bfc
push 0x20
lea ebx, [esi + 0x400]
push edi
push ebx
call fcn.100130d0
mov dword [esi + 0xc0c], eax
mov eax, dword [esi + 0xc08]
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov eax, dword [eax]
add esp, 0xc
cmp eax, 3
je 0x10098c55
cmp eax, 1
jne 0x10098c83
test edi, edi
je 0x10098c83
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10098c6c
push eax
call dword [sym.imp.MSVCR100.dll_free]
and dword [edi + 0x10], 0
pop ecx
mov eax, dword [esi + 0xc08]
push dword [eax + 8]
push 0x100
push ebx
call fcn.100130d0
add esp, 0xc
xor eax, eax
inc eax
pop ebx
mov ecx, dword [ebp + 0x388]
pop edi
xor ecx, ebp
pop esi
call fcn.100b4c22
add ebp, 0x38c
leave
ret
Function at 0x100a1b59
Capabilities:
Check os version

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0
mov ebx, 0x43f
mov esi, ecx
push ebx
push dword [esi + 0x28]
call edi
mov ebp, dword [esp + 0x14]
push ebp
push 0
push 0x437
push dword [esi + 0x28]
call edi
push 1
push 1
push ebx
push dword [esi + 0x28]
call edi
call dword [sym.imp.kernel32.dll_GetVersion]
cmp al, 6
jb 0x100a1bae
mov eax, dword [ebp]
cmp eax, dword [ebp + 4]
jne 0x100a1bae
push 1
push 0
push dword [esi + 0x28]
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebp
pop ebx
ret 4

Function at 0x100a29e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
push esi
mov esi, 0x205
push edi
mov edi, ecx
cmp eax, esi
je 0x100a2a30
cmp eax, 0x104
jne 0x100a2a15
cmp dword [ebx + 8], 0x79
jne 0x100a2a15
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 8
test al, al
jne 0x100a2a30
mov eax, dword [ebp + 0xc]
push eax
push ebx
mov ecx, edi
mov dword [edi + 0xbc], eax
call fcn.10075bce
and dword [edi + 0xbc], 0
jmp 0x100a2a9b
cmp dword [ebx + 4], esi
jne 0x100a2a41
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
jmp 0x100a2a49
or dword [ebp - 8], 0xffffffff
or dword [ebp - 4], 0xffffffff
movzx eax, word [ebp - 4]
movzx ecx, word [ebp - 8]
mov edi, dword [edi + 0x28]
shl eax, 0x10
or eax, ecx
push eax
push edi
push 0x7b
push edi
call dword [sym.imp.USER32.dll_PostMessageW]
test eax, eax
jne 0x100a2a91
push 0x10002
push dword [0x101004d4]
call sub.java.dll__JNU_GetEnv_8
mov esi, eax
push str.Message_not_posted__native_event_queue_may_be_full.
push esi
call sub.java.dll__JNU_ThrowInternalError_8
mov eax, dword [esi]
push esi
call dword [eax + 0x40]
mov eax, dword [esi]
push esi
call dword [eax + 0x44]
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
pop ecx
push 2
pop eax
pop edi
pop esi
pop ebx
leave
ret 8

Function at 0x100a3968
Capabilities:
Check os version

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
push edi
push 0
mov esi, ecx
push 0x437
push dword [esi + 0x28]
call dword [sym.imp.USER32.dll_SendMessageW]
call dword [sym.imp.kernel32.dll_GetVersion]
cmp al, 6
jb 0x100a399f
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jne 0x100a399f
push 1
push 0
push dword [esi + 0x28]
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
ret 4
Function at 0x100a3f20
Capabilities:
Log keystrokes via polling

Disassembly:
test byte [0x101006e4], 1
jne 0x100a3f3d
or dword [0x101006e4], 1
push 0x17
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x101006e0], eax
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
xor esi, esi
call edi
shr eax, 8
test al, al
je 0x100a3f57
mov esi, 8
push 0x10
call edi
shr eax, 8
test al, al
je 0x100a3f65
or esi, 4
push 1
call edi
shr eax, 8
test al, al
je 0x100a3f7e
xor eax, eax
cmp dword [0x101006e0], eax
setne al
inc eax
or esi, eax
push 2
call edi
shr eax, 8
test al, al
je 0x100a3f98
mov ecx, dword [0x101006e0]
neg ecx
sbb ecx, ecx
add ecx, 2
or esi, ecx
push 4
call edi
shr eax, 8
test al, al
je 0x100a3fa6
or esi, 0x10
pop edi
mov eax, esi
pop esi
ret

Function at 0x100a4f20
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x100b5f48
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100fd640]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax]
call edx
xor eax, eax
cmp dword [esi + 0x1c], eax
je 0x100a4f77
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x14], 0xffffffff
call edx
xor al, al
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 4
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov al, byte [esp + 0x1c]
push ecx
mov byte [esi + 0x20], al
mov dword [esi + 0x1c], 2
call dword [sym.imp.kernel32.dll_SetEvent]
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
mov dword [esp + 0x14], 0xffffffff
call eax
mov al, 1
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 4

Function at 0x100a4fc0
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x100b5f48
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x100fd640]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax]
call edx
cmp dword [esi + 0x1c], 0
je 0x100a5016
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x14], 0xffffffff
call edx
xor al, al
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 8
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x30], eax
neg eax
sbb eax, eax
add eax, 2
push edx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x1c], eax
call dword [sym.imp.kernel32.dll_SetEvent]
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x14], 0xffffffff
call edx
mov al, 1
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0x10
ret 8
Function at 0x100a5c50
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b8cb0
mov eax, dword fs:[0]
push eax
sub esp, 0x108
mov eax, dword [0x100fd640]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
call fcn.100b022b
call fcn.100130d0
mov esi, dword [sym.imp.kernel32.dll_GetVersion]
call esi
push eax
push eax
push str.0x_x___ld
lea eax, [ebp - 0x114]
push 0x80
push eax
call fcn.100a3e5f
add esp, 0x14
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.kernel32.dll_lstrlenW]
mov edi, eax
call esi
cmp al, 5
jb 0x100a5d17
call esi
cmp al, 5
jb 0x100a5cdc
call esi
shr eax, 8
cmp al, 1
jae 0x100a5ce2
call esi
cmp al, 5
jbe 0x100a5d03
call esi
cmp al, 6
jb 0x100a5cef
push str.__Windows_Vista_
jmp 0x100a5d1c
push str.__Windows_XP_
push 0x80
lea eax, [ebp + edi*2 - 0x114]
push eax
jmp 0x100a5d29
push str.__Windows_2000_
push 0x80
lea ecx, [ebp + edi*2 - 0x114]
push ecx
jmp 0x100a5d29
push str.__Unknown_
push 0x80
lea edx, [ebp + edi*2 - 0x114]
push edx
call fcn.100a3e5f
lea eax, [ebp - 0x114]
add esp, 0xc
push eax
call dword [sym.imp.MSVCR100.dll_wcslen]
mov ecx, dword [ebx]
add esp, 4
push eax
mov eax, dword [ecx + 0x28c]
lea edx, [ebp - 0x114]
push edx
push ebx
call eax
jmp 0x100a5d63
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100b4c22
mov esp, ebp
pop ebp
ret 8
Function at 0x100a5f20
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x94
mov eax, dword [0x100fd640]
xor eax, esp
mov dword [esp + 0x90], eax
push ebx
push esi
push edi
mov ecx, 0x10
mov esi, str.SOFTWAREMicrosoftTabletTip1.7
lea edi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x10]
push eax
push 0x20019
xor ebx, ebx
push ebx
lea ecx, [esp + 0x64]
push ecx
push SysReAllocString
movsw word es:[edi], word [esi]
mov dword [esp + 0x24], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x100a5f88
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.100b4c22
add esp, 0x94
ret
push ebx
push ebx
lea edx, [esp + 0x20]
push edx
push ebx
mov ecx, 0xe
mov esi, str.EnableDesktopModeAutoInvoke
lea edi, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x30]
push eax
push ecx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x27], bl
call esi
test eax, eax
jne 0x100a5ff6
mov eax, 4
cmp dword [esp + 0x18], eax
jne 0x100a5ff6
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x18]
push eax
push ebx
push ebx
lea ecx, [esp + 0x30]
push ecx
push edx
mov dword [esp + 0x2c], ebx
call esi
test eax, eax
jne 0x100a5ff6
cmp dword [esp + 0x14], ebx
setne byte [esp + 0xf]
mov eax, dword [esp + 0x10]
cmp eax, ebx
je 0x100a6005
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x9c]
mov al, byte [esp + 0xf]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100b4c22
add esp, 0x94
ret
Function at 0x100a6170
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Get ntdll base address
Log keystrokes via polling

Disassembly:
push 0xffffffffffffffff
push 0x100b8d55
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100fd640]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], esi
mov edi, dword [sym.imp.kernel32.dll_InitializeCriticalSection]
lea eax, [esi + 0x174]
mov ebp, vtable.CriticalSection.0
push eax
mov dword [esi + 0x170], ebp
call edi
lea ecx, [esi + 0x19c]
xor ebx, ebx
push ecx
mov dword [esp + 0x28], ebx
mov dword [esi + 0x198], ebp
call edi
lea edx, [esi + 0x1c4]
push edx
mov dword [esi + 0x1c0], ebp
call edi
mov edi, dword [sym.imp.kernel32.dll_CreateEventW]
push ebx
push ebx
mov ebp, 1
push ebp
push ebx
mov dword [esi + 0x1dc], 0xffffffff
mov byte [esi + 0x1e0], bl
mov dword [esi + 0x1e4], ebx
mov dword [esi + 0x1f0], ebx
mov dword [esi + 0x1f4], ebx
mov dword [esi + 0x1f8], ebx
mov dword [esi + 0x1fc], ebx
call edi
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x1e8], eax
call edi
mov dword [esi + 0x1ec], eax
push 0x28
mov byte [esp + 0x28], 2
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebp
mov dword [esi + 0x24], ebx
mov dword [esi + 0x44], ebx
mov dword [esi], ebx
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x1bc], ebx
mov dword [esi + 0x68], ebx
call fcn.100b0226
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0x24], 3
cmp eax, ebx
je 0x100a62a1
mov ecx, eax
call fcn.10011749
jmp 0x100a62a3
xor eax, eax
mov byte [esp + 0x24], 2
mov dword [esi + 0x6c], eax
mov dword [esi + 0x18c], ebx
mov dword [esi + 0x190], ebx
mov dword [esi + 0x194], ebx
mov dword [esi + 0x1b4], ebx
mov dword [esi + 0x1b8], ebx
call fcn.10078cd1
lea eax, [esi + 0x70]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
push ebx
push ebx
push ebx
push ebx
call edi
mov dword [esi + 4], eax
mov dword [esi + 8], ebx
mov eax, esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret

Function at 0x100a6fe0
Capabilities:
Create process on windows

Disassembly:
cmp dword [0x10100504], 0
je 0x100a7044
cmp dword [0x10100508], 0
je 0x100a7044
cmp byte [esp + 0xc], 0
jne 0x100a7015
mov ecx, 0x101004d8
call fcn.100a5f20
test al, al
je 0x100a7044
mov ecx, 0x101004d8
call fcn.100a5e30
test al, al
jne 0x100a7044
cmp dword [0x10100504], 0
je 0x100a7044
cmp dword [0x10100508], 0
je 0x100a7044
mov eax, dword [0x1010050c]
test eax, eax
je 0x100a7044
push 5
push 0
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
ret 0xc
Function at 0x100a7390
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
push esi
push edi
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
push eax
mov ebx, ecx
call fcn.1007817b
mov esi, eax
add esp, 4
test esi, esi
je 0x100a73bc
mov edx, dword [esi]
mov eax, dword [edx + 0x98]
push edi
mov ecx, esi
call eax
cmp eax, 2
je 0x100a73e8
mov eax, dword [edi + 4]
cmp eax, 0x200
jb 0x100a73cd
cmp eax, 0x20e
jbe 0x100a73db
cmp eax, 0xa0
jb 0x100a73f3
cmp eax, 0xa9
ja 0x100a73f3
push edi
push esi
mov ecx, ebx
call fcn.100a6730
test eax, eax
je 0x100a7426
pop edi
pop esi
mov eax, 1
pop ebx
ret 4
cmp eax, 0x100
jb 0x100a7426
cmp eax, 0x109
ja 0x100a7426
mov edx, dword [ebx + 0x170]
mov eax, dword [edx]
lea esi, [ebx + 0x170]
mov ecx, esi
call eax
add ebx, 0x70
push ebx
call dword [sym.imp.USER32.dll_GetKeyboardState]
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
pop edi
pop esi
xor eax, eax
pop ebx
ret 4

Function at 0x100a81d0
Capabilities:
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x100b8db8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x100fd640]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax]
call edx
cmp dword [esi + 0x1c], 0
jle 0x100a822a
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x1c], 0xffffffff
call edx
xor al, al
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10
ret 4
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x100a823a
mov eax, dword [esp + 0x24]
mov dword [esi + 0x38], eax
jmp 0x100a8251
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x100a824a
mov ecx, eax
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x100a8241
mov edx, dword [esp + 0x24]
mov dword [ecx + 0x24], edx
or ebx, 0xffffffff
cmp dword [esi + 0x1c], ebx
jle 0x100a8272
mov eax, dword [esi + 0x2c]
push eax
call dword [sym.imp.kernel32.dll_SetEvent]
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
mov dword [esp + 0x1c], ebx
call eax
jmp 0x100a82e5
mov ecx, dword [esi + 0x2c]
mov edi, dword [sym.imp.kernel32.dll_ResetEvent]
push ecx
call edi
mov edx, dword [esi + 0x28]
push edx
call edi
lea edi, [esi + 0x24]
push edi
push 0
push esi
push 0x100a74e0
push 0x100000
push 0
call dword [sym.imp.MSVCR100.dll__beginthreadex]
add esp, 0x18
test eax, eax
jne 0x100a82ca
mov dword [edi], eax
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x1c], ebx
call edx
xor al, al
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10
ret 4
push eax
mov dword [esi + 0x1c], 0
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
mov dword [esp + 0x1c], ebx
call edx
mov al, 1
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10
ret 4

Function at 0x100aa6df
Capabilities:
Query environment variable

Disassembly:
mov eax, dword [ecx]
cmp dword [eax + 4], 8
jle 0x100aa6ea
xor eax, eax
ret
mov ecx, dword [ecx + 4]
jmp fcn.10098ab6
Function at 0x100ab4e3
Capabilities:
Check os version

Disassembly:
push 0xc
mov eax, 0x100b92f3
call fcn.100b4d71
mov eax, dword [0x100fd620]
cmp eax, 0xfffffffe
jne 0x100ab568
call dword [sym.imp.kernel32.dll_GetVersion]
cmp al, 6
jae 0x100ab50e
and dword [0x100fd620], 0
xor eax, eax
jmp 0x100ab568
lea eax, [ebp - 0x14]
xor ebx, ebx
push eax
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], ebx
call fcn.100130d0
pop ecx
cmp eax, ebx
jl 0x100ab532
mov ebx, dword [ebp - 0x14]
jmp 0x100ab532
push 0x10002
push dword [0x101004d4]
mov dword [0x100fd620], ebx
call sub.java.dll__JNU_GetEnv_8
movzx ecx, bl
push ecx
push str._Z_V
push str.dwmCompositionChanged
push str.sun_awt_Win32GraphicsEnvironment
push 0
push eax
call sub.java.dll_JNU_CallStaticMethodByName
add esp, 0x18
mov eax, ebx
call fcn.100b4e16
ret