joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401000
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
je 0x401090
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov edi, dword [esp + 0x10]
push ebx
cmp byte [esi], 0
je 0x40108d
push 0x5c
push esi
call dword [sym.imp.MSVCR71.dll_strchr]
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x40108d
push edi
mov byte [esi], 0
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x401066
push 0
push edi
call dword [sym.imp.kernel32.dll_CreateDirectoryA]
test eax, eax
jne 0x40105f
test ebp, ebp
je 0x40105f
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
jmp 0x401066
push edi
push 1
call ebp
pop ecx
pop ecx
test bl, 0x10
jne 0x401087
push 0xb7
call dword [sym.imp.kernel32.dll_SetLastError]
test ebp, ebp
je 0x401087
push edi
push str.CreateDirectory___s_
push 5
call ebp
add esp, 0xc
mov byte [esi], 0x5c
inc esi
jne 0x401018
pop ebx
pop edi
pop ebp
xor eax, eax
inc eax
pop esi
ret

Function at 0x4031f4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
pushal
call 0x403203
pop dword [ebp - 0x44]
mov eax, 0x403203
sub dword [ebp - 0x44], eax
mov dword [ebp - 0x54], 0xfd840b2d
sub dword [ebp - 0x54], 0xaf31c5e2
mov dword [ebp - 0x50], 0x6d764a71
add dword [ebp - 0x50], 0xc4bd01d4
mov dword [ebp - 0x4c], 0xbfe1793a
add dword [ebp - 0x4c], 0x8c6acaf4
mov dword [ebp - 0x48], 0x58085e79
sub dword [ebp - 0x48], 0x58085e79
lea eax, [ebp - 0x54]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x44]
call dword [eax]
mov dword [ebp - 0x54], 0x41e3226f
add dword [ebp - 0x54], 0x328f46e7
mov dword [ebp - 0x50], 0x2887f1cd
add dword [ebp - 0x50], 0x18e46fa8
mov dword [ebp - 0x4c], 0x968fa598
sub dword [ebp - 0x4c], 0x3320392c
mov dword [ebp - 0x48], 0xe83cdc0b
add dword [ebp - 0x48], 0x17c323f5
lea ebx, [ebp - 0x54]
push ebx
push eax
mov eax, 0xe999a610
add eax, 0x16a6dac4
add eax, dword [ebp - 0x44]
call dword [eax]
push 0x40
push 0x1000
push 0x361a9
push 0
call eax
mov ecx, 0x460a
xor edi, edi
add edi, eax
mov ebx, 0x411000
add ebx, dword [ebp - 0x44]
mov esi, 0x1f3b3f49
add esi, 0xf6b20f6a
mov edx, dword [ebx]
xor dword [ebp - 0x40], ebx
sub edx, esi
add dword [ebp - 0x2c], 0xbd133d58
mov dword [edi], edx
add edi, 4
add ebx, 0x1c4301a0
sub ebx, 0x1c43019c
loop 0x403311
add eax, 0x6f1b9dee
sub eax, 0x6f1a92f3
xor ebx, ebx
add ebx, eax
add eax, 0x2c3e54d0
add eax, 0xd3c1ab35
mov ecx, 0x6fe979fb
add ecx, 0x90568605
add ecx, dword [ebp - 0x44]
call ebx
leave
ret
Function at 0x100246b0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e77d0
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
lea ebx, [esi + 4]
mov dword [esi], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
push 8
mov dword [ebx], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
call fcn.100bc703
mov edi, eax
add esp, 4
test edi, edi
je 0x1002475d
push 1
mov dword [ebp - 4], 0
call fcn.100ba234
add esp, 4
mov dword [edi + 4], eax
jmp 0x1002475f
xor edi, edi
mov ecx, esi
mov dword [esi + 0x34], edi
call fcn.10029090
mov dword [esi + 0xc], ebx
lea eax, [esi + 8]
mov dword [esi + 0x10], eax
lea ecx, [esi + 0x14]
mov dword [esi], vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
lea edx, [esi + 0x18]
mov byte [esi + 0x48], 0
lea edi, [esi + 0x24]
mov byte [esi + 0x3d], 0
lea ebx, [esi + 0x28]
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ebx
mov dword [eax], 0
mov dword [edx], 0
mov dword [esi + 0x28], 0
mov dword [esi + 4], 0
mov dword [ecx], 0
mov dword [edi], 0
mov dword [esi + 0x4c], 0
mov eax, dword [0x101da160]
mov ecx, dword [0x101da164]
mov dword [esi + 0x40], eax
mov eax, esi
mov dword [esi + 0x44], ecx
mov dword [esi + 0x38], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1002aa30
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e7f0d
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 8
mov dword [esi + 0x30], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0x201
mov dword [esi + 0x18], 6
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xc], 0
call fcn.100bc703
mov edi, eax
add esp, 4
test edi, edi
je 0x1002aacd
push 1
mov dword [ebp - 4], 0
call fcn.100ba234
add esp, 4
mov dword [edi + 4], eax
jmp 0x1002aacf
xor edi, edi
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], edi
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov edi, dword [edi + 4]
mov ecx, edi
mov dword [ebp - 0x10], edi
mov eax, dword [edi]
call dword [eax + 4]
lea eax, [ebp - 0x14]
mov dword [ebp - 4], 1
push eax
call fcn.10024290
add esp, 4
mov ecx, dword [eax]
push 0x20
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
mov dword [ebp - 4], 0xffffffff
mov bl, al
test edi, edi
je 0x1002ab2a
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 8]
test eax, eax
je 0x1002ab2a
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
cmp dword [esi + 0x38], 0
mov byte [esi + 0x40], bl
jne 0x1002ab46
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
and eax, 0x13
or eax, 4
mov dword [esi + 0xc], eax
and ecx, eax
jne 0x1002ab69
cmp byte [ebp + 0xc], 0
je 0x1002ab55
push esi
call fcn.100ba73d
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test cl, 4
je 0x1002ab75
mov esi, str.ios_base::badbit_set
jmp 0x1002ab85
test cl, 2
mov esi, str.ios_base::failbit_set
mov eax, str.ios_base::eofbit_set
cmove esi, eax
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.1002abb0
add esp, 8
lea ecx, [ebp - 0x28]
push eax
push esi
call fcn.10024f70
push 0x101bf524
lea eax, [ebp - 0x28]
push eax
call fcn.100bdcad
int3

Function at 0x1002beb0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e7fad
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 8
call fcn.100bc703
add esp, 4
test eax, eax
je 0x1002bef6
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov dword [eax + 4], ecx
jmp 0x1002bef8
xor eax, eax
mov dword [ebp + 0xc], eax
lea edi, [esi + 4]
mov dword [ebp - 4], 0
push edi
push 0
push eax
push 0x1002d250
push 0
push 0
call fcn.100c7d80
add esp, 0x18
mov dword [esi], eax
test eax, eax
je 0x1002bf35
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
push 6
mov dword [edi], 0
call fcn.100bab4f
int3
Function at 0x1004e060
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e8cf0
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 8
mov dword [esi + 0x30], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0x201
mov dword [esi + 0x18], 6
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xc], 0
call fcn.100bc703
mov edi, eax
add esp, 4
test edi, edi
je 0x1004e10b
push 1
mov dword [ebp - 4], 0
call fcn.100ba234
mov dword [edi + 4], eax
add esp, 4
mov dword [esi + 0x30], edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x30], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10068ad0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
cmp esi, 0xcc
ja 0x10068af6
lea eax, [edi + 8]
lea ebx, [edi + 4]
mov dword [ecx], eax
mov eax, edi
mov dword [ebx], esi
pop edi
pop esi
pop ebx
pop ebp
ret 4
mov eax, Ordinal_2
cmp esi, eax
cmovl eax, esi
mov esi, eax
cmp esi, 0xccccccc
ja 0x10068b2c
test esi, esi
jle 0x10068b2c
nop
lea eax, [esi + esi*4]
shl eax, 2
push 0x101aea18
push eax
call fcn.100bcc04
add esp, 8
test eax, eax
jne 0x10068b51
shr esi, 1
jne 0x10068b10
xor eax, eax
lea ebx, [edi + 4]
push eax
call fcn.100bcbff
mov ecx, edi
lea eax, [edi + 8]
add esp, 4
mov esi, 0xcc
mov dword [ecx], eax
mov eax, edi
pop edi
mov dword [ebx], esi
pop esi
pop ebx
pop ebp
ret 4
lea ebx, [edi + 4]
cmp esi, 0xcc
jbe 0x10068b31
mov ecx, edi
mov dword [ecx], eax
mov eax, edi
pop edi
mov dword [ebx], esi
pop esi
pop ebx
pop ebp
ret 4
Function at 0x10076250
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ecd15
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
mov eax, dword [ebp + 0xc]
sub eax, 0
je 0x10076315
sub eax, 1
je 0x100762a2
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0xc
push 4
call fcn.100bc703
add esp, 4
test eax, eax
je 0x100762b8
mov dword [eax], 0x10075f70
jmp 0x100762ba
xor eax, eax
mov dword [ebp + 8], eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x10075ef0
push 0
push 0
call fcn.100c7d80
add esp, 0x18
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10076323
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 1
test ecx, ecx
je 0x1007631c
push ecx
push eax
call fcn.100ba989
add esp, 8
test eax, eax
jne 0x1007631c
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0xc
push 0
call fcn.100c5244
push 1
call fcn.100bab4f
push 6
mov dword [ebp - 0x10], 0
call fcn.100bab4f
int3
Function at 0x1008a000
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ecx + 0xbc]
mov eax, dword [ecx + 0xc4]
push esi
push edi
lea esi, [ebp + 8]
mov edi, 4
mov eax, dword [eax + edx*4 - 4]
not eax
nop
movzx ecx, byte [esi]
lea esi, [esi + 1]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x101043f0]
sub edi, 1
jne 0x1008a020
mov ecx, dword [0x102b3160]
not eax
pop edi
pop esi
cmp dword [ecx + 0x1a34], eax
jne 0x1008a052
mov dword [ecx + 0x1a38], eax
cmp dword [ecx + 0x1a6c], eax
jne 0x1008a061
mov byte [ecx + 0x1a70], 1
pop ebp
ret 4

Function at 0x1008a0d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x101d7380]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
movss xmm0, dword [edx]
mov edi, 0x10
subss xmm0, dword [esi + 0xc]
mov ecx, dword [esi + 0xbc]
cvttss2si eax, xmm0
movss xmm0, dword [edx + 4]
subss xmm0, dword [esi + 0x10]
mov dword [ebp - 0x14], eax
cvttss2si eax, xmm0
movss xmm0, dword [edx + 8]
subss xmm0, dword [esi + 0xc]
mov dword [ebp - 0x10], eax
cvttss2si eax, xmm0
movss xmm0, dword [edx + 0xc]
subss xmm0, dword [esi + 0x10]
mov dword [ebp - 0xc], eax
cvttss2si eax, xmm0
mov dword [ebp - 8], eax
mov eax, dword [esi + 0xc4]
lea esi, [ebp - 0x14]
mov edx, dword [eax + ecx*4 - 4]
not edx
movzx eax, byte [esi]
lea esi, [esi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x101043f0]
sub edi, 1
jne 0x1008a144
mov eax, dword [0x102b3160]
not edx
pop edi
pop esi
cmp dword [eax + 0x1a34], edx
jne 0x1008a175
mov dword [eax + 0x1a38], edx
cmp dword [eax + 0x1a6c], edx
jne 0x1008a184
mov byte [eax + 0x1a70], 1
mov ecx, dword [ebp - 4]
mov eax, edx
xor ecx, ebp
call fcn.100bca5b
mov esp, ebp
pop ebp
ret 4

Function at 0x1008ab70
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
not ebx
push edi
mov edi, dword [ebp + 0xc]
mov eax, ebx
test edi, edi
je 0x1008abd3
mov cl, byte [esi]
lea esi, [esi + 1]
dec edi
cmp cl, 0x23
jne 0x1008abb6
cmp edi, 2
jb 0x1008abb6
cmp byte [esi], cl
jne 0x1008abb6
cmp byte [esi + 1], cl
jne 0x1008abb6
mov eax, ebx
movzx ecx, cl
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x101043f0]
jmp 0x1008ab87
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x101043f0]
test edi, edi
jne 0x1008ab87
pop edi
pop esi
not eax
pop ebx
pop ebp
ret
mov cl, byte [esi]
inc esi
test cl, cl
je 0x1008ac08
nop word [eax + eax]
cmp cl, 0x23
jne 0x1008abef
cmp byte [esi], cl
jne 0x1008abef
cmp byte [esi + 1], cl
cmove eax, ebx
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
mov cl, byte [esi]
inc esi
xor eax, dword [edx*4 + 0x101043f0]
test cl, cl
jne 0x1008abe0
pop edi
pop esi
not eax
pop ebx
pop ebp
ret
Function at 0x1008ba40
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push esi
push edi
or eax, 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], str.Window
mov esi, 0x101049a5
mov cl, 0x57
or edi, 0xffffffff
cmp cl, 0x23
jne 0x1008ba72
cmp byte [esi], cl
jne 0x1008ba72
cmp byte [esi + 1], cl
cmove eax, edi
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
mov cl, byte [esi]
inc esi
xor eax, dword [edx*4 + 0x101043f0]
test cl, cl
jne 0x1008ba63
mov esi, dword [ebp + 8]
not eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], 0x10096110
mov dword [ebp - 0xc], 0x10096060
mov edi, dword [esi + 0x2db0]
mov ecx, dword [esi + 0x2db4]
mov dword [ebp - 8], 0x10096140
cmp edi, ecx
jne 0x1008bb59
inc edi
test ecx, ecx
je 0x1008bacc
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1008bad1
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x1008bb59
mov eax, dword [0x102b3160]
test eax, eax
je 0x1008bae9
inc dword [eax + 0x374]
push ebx
push dword [0x102b3168]
lea eax, [edi + edi*2]
shl eax, 3
push eax
call dword [0x101d6f90]
mov ebx, eax
add esp, 8
mov eax, dword [esi + 0x2db8]
test eax, eax
je 0x1008bb4c
mov ecx, dword [esi + 0x2db0]
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push eax
push ebx
call fcn.100be0d0
mov ecx, dword [esi + 0x2db8]
add esp, 0xc
test ecx, ecx
je 0x1008bb3c
mov eax, dword [0x102b3160]
test eax, eax
je 0x1008bb3c
dec dword [eax + 0x374]
push dword [0x102b3168]
push ecx
call dword [0x101d6f94]
add esp, 8
mov dword [esi + 0x2db8], ebx
mov dword [esi + 0x2db4], edi
pop ebx
mov eax, dword [esi + 0x2db0]
movups xmm0, xmmword [ebp - 0x18]
pop edi
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x2db8]
movups xmmword [eax + ecx*8], xmm0
movq xmm0, qword [ebp - 8]
movq qword [eax + ecx*8 + 0x10], xmm0
inc dword [esi + 0x2db0]
mov byte [esi], 1
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10091110
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x102b3160]
lea edx, [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [eax + 0x1a00]
mov esi, 4
mov eax, dword [ebp + 8]
add edi, 0xbc
mov dword [ebp + 8], eax
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx + eax*4 - 4]
not ebx
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x101043f0]
sub esi, 1
jne 0x10091140
mov ecx, dword [edi + 4]
not ebx
mov esi, dword [edi]
cmp esi, ecx
jne 0x10091187
inc esi
test ecx, ecx
je 0x10091175
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1009117a
mov eax, 8
cmp eax, esi
mov ecx, edi
cmovg esi, eax
push esi
call fcn.100968e0
mov ecx, dword [edi]
mov eax, dword [edi + 8]
mov dword [eax + ecx*4], ebx
inc dword [edi]
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x10095650
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push edi
mov edi, dword [0x102b3160]
cmp byte [edi + 0x2d9c], 0
lea eax, [edi + 0x20]
jne 0x1009576f
mov ecx, dword [eax]
push ebx
test ecx, ecx
je 0x10095767
push esi
push 0x10103b14
push ecx
call fcn.1008a960
mov esi, eax
add esp, 8
test esi, esi
je 0x10095763
push esi
call fcn.100ccfae
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x1009575a
push 2
push 0
push esi
call fcn.100c73eb
add esp, 0xc
test eax, eax
jne 0x1009575a
push esi
call fcn.100ccfae
mov ebx, eax
add esp, 4
mov dword [ebp - 4], ebx
cmp ebx, 0xffffffff
je 0x1009575a
push 0
push dword [ebp - 8]
push esi
call fcn.100c73eb
add esp, 0xc
test eax, eax
jne 0x1009575a
mov eax, dword [0x102b3160]
test eax, eax
je 0x100956f3
inc dword [eax + 0x374]
push dword [0x102b3168]
push ebx
call dword [0x101d6f90]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1009575a
push esi
push dword [ebp - 4]
push 1
push ebx
call fcn.100c6f52
add esp, 0x10
push esi
cmp eax, dword [ebp - 4]
je 0x10095747
call fcn.100c66a1
add esp, 4
mov eax, dword [0x102b3160]
test eax, eax
je 0x10095735
dec dword [eax + 0x374]
push dword [0x102b3168]
push ebx
call dword [0x101d6f94]
add esp, 8
jmp 0x10095763
call fcn.100c66a1
push dword [ebp - 4]
push ebx
call fcn.1008c740
add esp, 0xc
jmp 0x10095726
push esi
call fcn.100c66a1
add esp, 4
lea eax, [edi + 0x20]
pop esi
mov byte [edi + 0x2d9c], 1
pop ebx
movss xmm0, dword [edi + 0x2da0]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x100957c0
subss xmm0, dword [edi + 0x18]
comiss xmm1, xmm0
movss dword [edi + 0x2da0], xmm0
jb 0x100957c0
mov eax, dword [eax]
test eax, eax
je 0x100957af
push eax
call fcn.10093300
add esp, 4
mov dword [edi + 0x2da0], 0
pop edi
mov esp, ebp
pop ebp
ret
mov byte [edi + 0x35c], 1
mov dword [edi + 0x2da0], 0
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x10099b00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ed460
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x101d7380]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
lea ecx, [esi + 0x54]
mov dword [ebp - 0x10], ecx
cmp dword [esi + 0x4c], ebx
jle 0x10099b76
xor edi, edi
nop dword [eax]
mov eax, dword [ecx]
mov ecx, dword [edi + eax]
test ecx, ecx
je 0x10099b68
cmp byte [edi + eax + 8], 0
je 0x10099b68
push ecx
call fcn.1008cda0
mov eax, dword [esi + 0x54]
lea ecx, [esi + 0x54]
add esp, 4
mov dword [edi + eax], 0
jmp 0x10099b6b
lea ecx, [esi + 0x54]
inc ebx
add edi, 0x78
cmp ebx, dword [esi + 0x4c]
jl 0x10099b40
jmp 0x10099b79
mov dword [ebp - 0x10], ecx
xor edx, edx
cmp dword [esi + 0x34], edx
jle 0x10099bbe
mov eax, dword [esi + 0x3c]
mov edi, dword [eax + edx*4]
mov eax, dword [ecx]
mov dword [ebp - 0x14], eax
mov ebx, dword [edi + 0x3c]
cmp ebx, eax
jb 0x10099bb8
mov ecx, dword [esi + 0x4c]
shl ecx, 4
sub ecx, dword [esi + 0x4c]
lea eax, [eax + ecx*8]
cmp ebx, eax
jae 0x10099bb5
mov dword [edi + 0x3c], 0
xor ecx, ecx
mov eax, dword [esi + 0x3c]
mov eax, dword [eax + edx*4]
mov word [eax + 0x40], cx
mov ecx, dword [ebp - 0x10]
inc edx
cmp edx, dword [esi + 0x34]
jl 0x10099b80
mov eax, dword [esi + 0x54]
test eax, eax
je 0x10099be3
push eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x4c], 0
call fcn.1008cda0
add esp, 4
mov dword [esi + 0x54], 0
mov eax, dword [esi + 0x48]
test eax, eax
je 0x10099c10
push eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
call fcn.1008cda0
add esp, 4
mov dword [esi + 0x48], 0
nop dword [eax + eax]
mov dword [esi + 0x58], 0xffffffff
mov eax, dword [esi + 0x14]
test eax, eax
je 0x10099c27
push eax
call fcn.1008cda0
add esp, 4
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10099c37
push eax
call fcn.1008cda0
add esp, 4
xor ebx, ebx
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
cmp dword [esi + 0x34], ebx
jle 0x10099cba
nop dword [eax]
mov eax, dword [esi + 0x3c]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x10099cb4
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.10099ee0
mov eax, dword [edi + 0x28]
mov byte [ebp - 4], 1
test eax, eax
je 0x10099c7c
push eax
call fcn.1008cda0
add esp, 4
mov eax, dword [edi + 0x1c]
mov byte [ebp - 4], 2
test eax, eax
je 0x10099c90
push eax
call fcn.1008cda0
add esp, 4
mov eax, dword [edi + 8]
mov byte [ebp - 4], 3
test eax, eax
je 0x10099ca4
push eax
call fcn.1008cda0
add esp, 4
push edi
mov dword [ebp - 4], 0xffffffff
call fcn.1008cda0
add esp, 4
inc ebx
cmp ebx, dword [esi + 0x34]
jl 0x10099c50
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x10099cdf
push eax
mov dword [esi + 0x38], 0
mov dword [esi + 0x34], 0
call fcn.1008cda0
add esp, 4
mov dword [esi + 0x3c], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x100b6890
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x101d7380]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
call fcn.1008a1e0
mov edi, eax
lea eax, [ebp - 0x14]
push eax
push dword [0x102b3188]
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x1c]
cvtdq2ps xmm0, xmm0
mov dword [edi + 8], eax
lea eax, [ebp - 0x24]
push eax
movss dword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0xc], ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [0x102b3190]
mov edx, dword [ebp - 0x20]
sbb edx, dword [0x102b3194]
call fcn.100bd000
mov edx, dword [0x102b319c]
mov ecx, dword [0x102b3198]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x18], xmm0
call fcn.100bd000
movss xmm1, dword [ebp - 0x18]
cvtsd2ss xmm0, xmm0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
divss xmm1, xmm0
movss dword [edi + 0x10], xmm1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov dword [0x102b3190], eax
mov dword [0x102b3194], ecx
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [edi + 0xf8], al
call esi
shr eax, 0xf
and al, 1
push 0x12
mov byte [edi + 0xf9], al
call esi
shr eax, 0xf
and al, 1
mov byte [edi + 0xfb], 0
mov byte [edi + 0xfa], al
call fcn.1008a1e0
cmp byte [eax + 0x353], 0
lea esi, [eax + 0xe0]
je 0x100b69c3
cvttss2si eax, dword [eax + 0xe4]
cvttss2si ecx, dword [esi]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [0x102b3188]
mov dword [ebp - 0x1c], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov dword [ebp - 0x1c], 0xff7fffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0xff7fffff
mov ecx, dword [ebp - 0x18]
mov dword [esi], eax
mov dword [esi + 4], ecx
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x100b6a43
mov ecx, dword [0x102b3188]
cmp eax, ecx
je 0x100b69fc
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x100b6a43
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x100b6a43
lea eax, [ebp - 0x2c]
push eax
push dword [0x102b3188]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x100b6a43
movd xmm0, dword [ebp - 0x2c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1c], xmm0
movd xmm0, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
cvtdq2ps xmm0, xmm0
mov dword [esi], eax
movss dword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x18]
mov dword [esi + 4], ecx
cmp byte [edi + 0xa8], 0
pop edi
pop esi
je 0x100b6a53
or eax, 0xffffffff
jmp 0x100b6a58
call fcn.1008a280
cmp dword [0x101d71b4], eax
je 0x100b6a6a
mov dword [0x101d71b4], eax
call fcn.100b6d30
call fcn.100b6a90
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100bca5b
mov esp, ebp
pop ebp
ret