joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1006f650
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x10172e09
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x48], ebx
mov esi, dword [esp + 0x50]
mov dword [esp + 0xc], ebx
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov dword [esp + 0x10], esi
mov byte [esi + 4], bl
mov dword [esp + 0x48], ebx
mov dword [esp + 0xc], 1
mov edx, edx
mov al, al
mov byte [esp + 0x14], 0x25
mov byte [esp + 0x15], 0x49
mov byte [esp + 0x16], 0x36
mov byte [esp + 0x17], 0x34
mov byte [esp + 0x18], 0x58
mov byte [esp + 0x19], bl
mov bh, bh
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.1010fdb0
add esp, 0x10
push ecx
pop ecx
lea eax, [esp + 0x1c]
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x1006f6f3
sub eax, edx
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call fcn.1000a180
mov ch, ch
mov eax, esi
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x40
ret
Function at 0x10084120
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x101734c2
mov eax, dword fs:[0]
push eax
sub esp, 0x144
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x154]
mov dword fs:[0], eax
mov esi, dword [esp + 0x164]
mov edi, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
xor ebx, ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], ebx
mov edi, edi
mov dword [esp + 0x10], ebx
nop
push ebx
pop ebx
push ebx
push ebx
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x30]
push ecx
push eax
push edi
call fcn.10076830
add esp, 0x1c
test eax, eax
jne 0x100841c0
push ebx
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
push 0x10178a34
mov ecx, esi
mov byte [esi + 4], bl
call fcn.1000a180
jmp 0x10084248
mov bh, bh
mov cl, 0x25
mov al, 0x64
mov byte [esp + 0x48], cl
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], 0x2c
mov byte [esp + 0x4b], cl
mov byte [esp + 0x4c], al
mov byte [esp + 0x4d], bl
mov cl, cl
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.1010fdb0
add esp, 0x10
mov cl, cl
cmp dword [edi + 0x32f4], ebx
jne 0x10084216
mov eax, dword [esp + 0x10]
push eax
call fcn.1010dffc
add esp, 4
mov ah, ah
lea eax, [esp + 0x50]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov byte [esi + 4], bl
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x10084230
sub eax, edx
push eax
lea ecx, [esp + 0x54]
push ecx
mov ecx, esi
call fcn.1000a180
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x14], 1
mov eax, esi
mov ecx, dword [esp + 0x154]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x150
ret
Function at 0x1008a8a0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10173888
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov eax, dword [esp + 0x5c]
cmp eax, 2
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x60]
jne 0x1008a91e
mov esi, dword [ebp + 0x3300]
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x1008a8f6
call fcn.10110295
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x1008a903
call fcn.10110295
push edi
push esi
push ebx
push esi
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.100674d0
nop
mov eax, 1
jmp 0x1008aa41
cmp eax, 1
jne 0x1008a944
add ebp, 0x32fc
push ebp
push 0x101798c0
push esi
call fcn.10110865
add esp, 0xc
push eax
pop eax
mov eax, 1
jmp 0x1008aa41
xor ebx, ebx
cmp eax, ebx
jne 0x1008aa3f
mov cl, 0x25
mov al, 0x64
mov dl, 0x2c
mov byte [esp + 0x38], cl
mov byte [esp + 0x39], al
mov byte [esp + 0x3a], dl
mov byte [esp + 0x3b], cl
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], dl
mov byte [esp + 0x3e], cl
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], dl
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], al
mov byte [esp + 0x43], bl
mov al, al
push eax
pop eax
lea ecx, [esp + 0x24]
call fcn.10100215
mov dword [esp + 0x50], ebx
mov dl, dl
push ebx
lea ecx, [esp + 0x28]
push ecx
push 0x10179578
push esi
call fcn.1004f530
add esp, 0x10
mov edi, eax
mov ah, ah
push eax
pop eax
xor esi, esi
cmp edi, ebx
jle 0x1008aa22
jmp 0x1008a9c0
xor eax, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
push ecx
pop ecx
cmp esi, ebx
jl 0x1008aa3a
cmp esi, dword [esp + 0x2c]
jge 0x1008aa3a
mov edx, dword [esp + 0x28]
mov eax, dword [edx + esi*4]
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x48]
push ecx
push eax
call fcn.10110865
add esp, 0x18
mov dh, dh
mov ecx, dword [ebp + 0x3300]
lea edx, [esp + 0x14]
push edx
call fcn.10076020
mov dh, dh
add esi, 1
cmp esi, edi
jl 0x1008a9c0
mov dword [esp + 0x50], 0xffffffff
lea ecx, [esp + 0x24]
call fcn.1010055d
mov eax, 1
jmp 0x1008aa41
jmp fcn.100fcfa6
xor eax, eax
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x40
ret
Function at 0x1008aa60
Capabilities:
Create thread

Disassembly:
sub esp, 0x210
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x20c], eax
push esi
mov esi, dword [esp + 0x21c]
push edi
mov edi, dword [esp + 0x21c]
push 0x1ff
lea eax, [esp + 0x19]
push 0
push eax
mov dword [esp + 0x1c], edi
mov byte [esp + 0x20], 0
call fcn.1010efd0
add esp, 0xc
nop
push esi
lea ecx, [esp + 0x18]
push ecx
push edi
call fcn.10048940
add esp, 0xc
mov ah, ah
lea eax, [esp + 0x14]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x1008aac0
sub eax, edx
add eax, 1
push eax
call fcn.1010df39
add esp, 4
mov esi, eax
nop
test esi, esi
je 0x1008ab42
lea eax, [esp + 0x14]
mov edx, esi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x1008aae8
push ebp
mov dl, dl
mov dword [esp + 0xc], 0
push edx
pop edx
call fcn.1002fd50
mov ebp, eax
mov dh, dh
lea edx, [esp + 0xc]
push edx
push 0
push esi
push 0x100588d0
push 0
push 0
call fcn.1011074f
add esp, 0x18
mov edi, eax
push ecx
pop ecx
push ebp
call fcn.1002fe10
add esp, 4
push ebx
pop ebx
test edi, edi
pop ebp
jne 0x1008ab5b
push esi
call fcn.1010dffc
add esp, 4
mov eax, eax
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x210
ret
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dl, dl
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [edx + 0x3284]
mov dword [esp + 0x10], eax
call fcn.10076210
mov dh, dh
mov ecx, dword [esp + 0x214]
mov eax, dword [esp + 8]
pop edi
pop esi
xor ecx, esp
call fcn.1010e4d7
add esp, 0x210
ret
Function at 0x100907e0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x14
push edi
mov al, al
push eax
pop eax
nop
mov edi, dword [esp + 0x1c]
push 5
push edi
call fcn.10059690
add esp, 8
mov eax, eax
test eax, eax
jne 0x10090805
mov eax, edi
pop edi
add esp, 0x14
ret
push ebx
push ebp
push esi
push 0
push eax
call fcn.10059690
add esp, 8
mov esi, eax
push ecx
pop ecx
nop
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x10], eax
mov cl, cl
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x100908d4
mov ebx, dword [esp + 0x34]
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ecx]
mov edi, esi
xchg ebx, eax
xchg ebx, eax
test ebx, ebx
jne 0x10090853
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10090878
mov bl, bl
lea eax, [esp + 0x14]
push eax
push esi
call ebp
mov bl, bl
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ecx
push edx
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x100908b4
push 2
push esi
call fcn.10059690
add esp, 8
mov esi, eax
push edx
pop edx
cmp edi, esi
je 0x100908d4
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov al, al
sub eax, dword [esp + 0x10]
cmp eax, dword [0x101b0904]
jae 0x100908d0
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10090840
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 0x14
ret
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push ebx
push ecx
push edx
push esi
call fcn.100907e0
add esp, 0x10
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x14
ret
xor edi, edi
push ebx
pop ebx
pop esi
pop ebp
pop ebx
mov eax, edi
pop edi
add esp, 0x14
ret
Function at 0x10090fc0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x18
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x14], eax
push esi
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x10], 0
push edi
mov edi, dword [esp + 0x28]
jne 0x10091056
cmp dword [esi], 0
je 0x10091056
mov al, 0x69
mov dl, 0x54
mov cl, 0x6f
mov byte [esp + 8], 0x53
mov byte [esp + 9], 0x77
mov byte [esp + 0xa], al
mov byte [esp + 0xb], 0x74
mov byte [esp + 0xc], 0x63
mov byte [esp + 0xd], 0x68
mov byte [esp + 0xe], dl
mov byte [esp + 0xf], cl
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], 0x68
mov byte [esp + 0x12], al
mov byte [esp + 0x13], 0x73
mov byte [esp + 0x14], 0x57
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0x6e
mov byte [esp + 0x17], 0x64
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], 0x77
mov byte [esp + 0x1a], 0
mov ecx, ecx
mov ecx, dword [esi]
lea eax, [esp + 8]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [esi + 0x10], eax
push eax
pop eax
mov esi, dword [esi + 0x10]
test esi, esi
je 0x1009107a
push 1
push edi
call esi
push ecx
pop ecx
pop edi
mov eax, 1
pop esi
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x18
ret
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.1010e4d7
add esp, 0x18
ret

Function at 0x10091090
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x34
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
push esi
push edi
xor edi, edi
mov bh, bh
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], 0x14
mov dword [esp + 0x10], 0xf
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov edi, edi
mov byte [esp + 0x1c], 0x75
mov byte [esp + 0x1d], 0x73
mov byte [esp + 0x1e], 0x65
mov byte [esp + 0x1f], 0x72
mov byte [esp + 0x20], 0x33
mov byte [esp + 0x21], 0x32
mov byte [esp + 0x22], 0x2e
mov byte [esp + 0x23], 0x64
mov byte [esp + 0x24], 0x6c
mov byte [esp + 0x25], 0x6c
mov byte [esp + 0x26], 0
mov edx, edx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
mov esi, eax
mov edi, edi
test esi, esi
je 0x1009118d
mov byte [esp + 0x28], 0x46
mov byte [esp + 0x29], 0x6c
mov byte [esp + 0x2a], 0x61
mov byte [esp + 0x2b], 0x73
mov byte [esp + 0x2c], 0x68
mov byte [esp + 0x2d], 0x57
mov byte [esp + 0x2e], 0x69
mov byte [esp + 0x2f], 0x6e
mov byte [esp + 0x30], 0x64
mov byte [esp + 0x31], 0x6f
mov byte [esp + 0x32], 0x77
mov byte [esp + 0x33], 0x45
mov byte [esp + 0x34], 0x78
mov byte [esp + 0x35], 0
mov ebx, ebx
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov al, al
test eax, eax
je 0x10091184
lea ecx, [esp + 8]
push ecx
call eax
mov ch, ch
mov edi, 1
mov eax, eax
push esi
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
push eax
pop eax
mov ecx, dword [esp + 0x38]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.1010e4d7
add esp, 0x34
ret
Function at 0x10091830
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x5c
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
xor edi, edi
mov dl, dl
mov cl, 0x50
mov al, 0x4c
mov byte [esp + 0x44], cl
mov byte [esp + 0x45], 0x53
mov byte [esp + 0x46], 0x41
mov byte [esp + 0x47], cl
mov byte [esp + 0x48], 0x49
mov byte [esp + 0x49], 0x2e
mov byte [esp + 0x4a], 0x44
mov byte [esp + 0x4b], al
mov byte [esp + 0x4c], al
mov byte [esp + 0x4d], 0
mov ah, ah
mov byte [esp + 0x53], cl
mov cl, 0x72
mov al, 0x65
mov byte [esp + 0x55], cl
mov bl, 0x66
mov dl, 0x6f
mov byte [esp + 0x58], cl
mov cl, 0x6e
mov byte [esp + 0x50], 0x47
mov byte [esp + 0x51], al
mov byte [esp + 0x52], 0x74
mov byte [esp + 0x54], al
mov byte [esp + 0x56], bl
mov byte [esp + 0x57], dl
mov byte [esp + 0x59], 0x6d
mov byte [esp + 0x5a], 0x61
mov byte [esp + 0x5b], cl
mov byte [esp + 0x5c], 0x63
mov byte [esp + 0x5d], al
mov byte [esp + 0x5e], 0x49
mov byte [esp + 0x5f], cl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], dl
mov byte [esp + 0x62], 0
mov ecx, ecx
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
mov esi, eax
mov edi, edi
test esi, esi
jne 0x100918fd
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x5c
ret
lea ecx, [esp + 0x50]
push ecx
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov ebx, eax
push ebx
pop ebx
mov ebp, ebp
push 0x38
lea edx, [esp + 0x10]
push 0
push edx
call fcn.1010efd0
add esp, 0xc
mov bh, bh
push 0x38
lea eax, [esp + 0x10]
push eax
call ebx
test eax, eax
je 0x10091935
mov edi, dword [esp + 0x34]
push edx
pop edx
push esi
call dword [sym.imp.KERNEL32.DLL_FreeLibrary]
mov dh, dh
mov ecx, dword [esp + 0x64]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1010e4d7
add esp, 0x5c
ret
Function at 0x10094ca0
Capabilities:
Log keystrokes

Disassembly:
mov eax, dword [esp + 4]
push esi
push eax
call fcn.10094a50
add esp, 4
mov esi, eax
push eax
pop eax
test esi, esi
je 0x10094d06
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10094d06
push ebx
push ebp
push edi
mov ah, ah
push 0
push esi
call fcn.10059650
add esp, 8
mov esi, eax
mov ebx, ebx
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov edi, eax
mov eax, eax
mov ebx, dword [sym.imp.USER32.dll_AttachThreadInput]
push 1
push esi
push edi
call ebx
mov ah, ah
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, eax
push ecx
pop ecx
push 0
push esi
push edi
call ebx
mov edx, edx
pop edi
mov eax, ebp
pop ebp
pop ebx
pop esi
ret
xor eax, eax
pop esi
ret
Function at 0x10095690
Capabilities:
Check for time delay via gettickcount
Contain obfuscated stackstrings

Disassembly:
push 0xffffffffffffffff
push 0x1017407b
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x101c52b4]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c52b4]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov eax, dword [esp + 0x15c]
xor ebx, ebx
cmp eax, ebx
jne 0x100956e5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edx, edx
jmp 0x10095889
cmp eax, 1
jne 0x10095887
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ebx, ebx
push 5
push eax
call fcn.10059690
add esp, 8
mov ah, ah
push ebx
push eax
call fcn.10059690
add esp, 8
mov ebp, eax
push eax
pop eax
mov edi, ebp
mov cl, cl
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x14], eax
push eax
pop eax
mov al, 0x6c
mov byte [esp + 0x34], 0x53
mov byte [esp + 0x35], 0x68
mov byte [esp + 0x36], 0x65
mov byte [esp + 0x37], al
mov byte [esp + 0x38], al
mov byte [esp + 0x39], 0x5f
mov byte [esp + 0x3a], 0x54
mov byte [esp + 0x3b], 0x72
mov byte [esp + 0x3c], 0x61
mov byte [esp + 0x3d], 0x79
mov byte [esp + 0x3e], 0x57
mov byte [esp + 0x3f], 0x6e
mov byte [esp + 0x40], 0x64
mov byte [esp + 0x41], bl
mov ch, ch
cmp ebp, ebx
je 0x10095883
mov ebp, edi
xchg ebx, eax
xchg ebx, eax
push edi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x10095851
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10095851
push 0xff
lea eax, [esp + 0x49]
push ebx
push eax
mov byte [esp + 0x50], bl
call fcn.1010efd0
add esp, 0xc
push edx
pop edx
push ebx
lea esi, [esp + 0x1c]
call fcn.100948e0
add esp, 4
mov dword [esp + 0x150], ebx
mov esi, 0x10
cmp dword [eax + 0x18], esi
jb 0x100957ce
mov ecx, dword [eax + 4]
jmp 0x100957d1
lea ecx, [eax + 4]
lea edx, [esp + 0x44]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
cmp al, bl
jne 0x100957d5
mov dword [esp + 0x150], 0xffffffff
cmp dword [esp + 0x30], esi
jb 0x10095801
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.100fcea8
add esp, 4
mov dword [esp + 0x30], 0xf
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x1c], bl
mov dh, dh
push edi
call dword [sym.imp.USER32.dll_GetParent]
mov bh, bh
cmp eax, ebx
jne 0x10095851
lea ecx, [esp + 0x34]
lea eax, [esp + 0x44]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095848
cmp dl, bl
je 0x10095844
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095848
add eax, 2
add ecx, 2
cmp dl, bl
jne 0x10095828
xor eax, eax
jmp 0x1009584d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x10095883
push 2
push edi
call fcn.10059690
add esp, 8
mov edi, eax
nop
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov bh, bh
sub eax, dword [esp + 0x14]
cmp eax, dword [0x101b0904]
jae 0x1009587f
cmp edi, ebx
jne 0x10095770
mov eax, ebp
jmp 0x10095889
xor ebp, ebp
mov bl, bl
mov eax, ebp
jmp 0x10095889
xor eax, eax
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.1010e4d7
add esp, 0x140
ret
Function at 0x10095bd0
Capabilities:
Log keystrokes

Disassembly:
push edi
mov edi, dword [esp + 0xc]
test edi, edi
jne 0x10095bea
mov eax, dword [esp + 8]
push eax
call fcn.10094a50
add esp, 4
mov edi, eax
mov esi, esi
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10095bf7
pop edi
ret
push ebx
push ebp
push esi
push 5
push edi
call fcn.10059690
add esp, 8
test eax, eax
je 0x10095c83
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov esi, eax
mov dl, dl
push 0
push edi
call fcn.10059650
add esp, 8
mov ebx, eax
mov bl, bl
push 1
push ebx
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dl, dl
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, eax
mov bh, bh
push 0
push ebx
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
push eax
pop eax
mov ebx, dword [sym.imp.USER32.dll_IsWindow]
push ebp
call ebx
test eax, eax
je 0x10095c83
push ebp
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10095c83
mov esi, ebp
xchg ebx, eax
xchg ebx, eax
push ebp
call ebx
test eax, eax
je 0x10095c83
cmp esi, edi
je 0x10095c7f
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
mov dh, dh
push esi
call ebx
test eax, eax
jne 0x10095c67
jmp 0x10095c83
mov edi, ebp
mov edi, edi
mov ebp, dword [esp + 0x1c]
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10095c90
sub eax, edx
mov ebx, eax
mov al, al
push edx
pop edx
xor esi, esi
test ebx, ebx
jle 0x10095cce
jmp 0x10095cb0
movzx ecx, byte [esi + ebp]
push 0x4000001
push ecx
push 0x102
push edi
call fcn.10059680
push ecx
pop ecx
add esi, 1
cmp esi, ebx
jl 0x10095cb0
pop esi
pop ebp
pop ebx
mov eax, 1
pop edi
ret

Function at 0x10095ce0
Capabilities:
Log keystrokes

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
test ebx, ebx
jne 0x10095cfa
mov eax, dword [esp + 8]
push eax
call fcn.10094a50
add esp, 4
mov ebx, eax
mov ecx, ecx
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x10095d07
pop ebx
ret
push 5
push ebx
call fcn.10059690
add esp, 8
test eax, eax
je 0x10095d9f
push ebp
push esi
push edi
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov esi, eax
push edx
pop edx
push 0
push ebx
call fcn.10059650
add esp, 8
mov edi, eax
push edx
pop edx
push 1
push edi
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dh, dh
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, eax
xchg ebx, eax
xchg ebx, eax
push 0
push edi
push esi
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov dh, dh
mov edi, dword [sym.imp.USER32.dll_IsWindow]
push ebp
call edi
test eax, eax
je 0x10095d9c
push ebp
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10095d9c
mov esi, ebp
xchg ebx, eax
xchg ebx, eax
push ebp
call edi
test eax, eax
je 0x10095d9c
jmp 0x10095d80
cmp esi, ebx
je 0x10095d98
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
mov dh, dh
push esi
call edi
test eax, eax
jne 0x10095d80
jmp 0x10095d9c
mov ebx, ebp
mov al, al
pop edi
pop esi
pop ebp
push 0
push 0
push 0x302
push ebx
call fcn.10059680
mov eax, eax
mov eax, 1
pop ebx
ret
Function at 0x10096760
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, dword [esp + 4]
sub esp, 8
push 5
push eax
call fcn.10059690
add esp, 8
mov ch, ch
test eax, eax
jne 0x1009677c
add esp, 8
ret
push ebx
push ebp
push esi
push edi
push 0
push eax
call fcn.10059690
add esp, 8
mov esi, eax
mov ch, ch
mov bh, bh
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov dword [esp + 0x14], eax
mov ch, ch
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x10096845
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x10], esi
mov ah, ah
push edi
push ebx
mov ecx, ebp
mov edx, esi
call fcn.100960c0
add esp, 8
test eax, eax
je 0x100967ec
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, esi
call fcn.100960c0
add esp, 8
test eax, eax
jne 0x1009684f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push eax
push ecx
push edx
push edi
push ebx
push ebp
push esi
call fcn.10096760
add esp, 0x1c
mov edi, edi
test eax, eax
jne 0x10096847
push 2
push esi
call fcn.10059690
add esp, 8
mov esi, eax
push eax
pop eax
cmp dword [esp + 0x10], esi
je 0x10096845
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ch, ch
sub eax, dword [esp + 0x14]
cmp eax, dword [0x101b0904]
jae 0x10096845
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x100967b8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret