joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40d980
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push 0x9c1e80
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push esi
push edi
call fcn.00409030
mov edi, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
push 0
push 0
call edi
mov esi, eax
test esi, esi
jne 0x40d9cb
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
xor ecx, ecx
mov edx, 2
mul edx
seto cl
push ebx
neg ecx
or ecx, eax
push ecx
call fcn.0095b1c7
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
push ebx
push esi
mov dword [ebp - 4], 0
call edi
mov edi, eax
mov dword [ebp - 0x10], edi
test edi, edi
je 0x40da83
cmp edi, esi
ja 0x40da83
lea ecx, [ebp - 0x28]
call fcn.00409cd0
xor eax, eax
xor esi, esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], eax
cmp edi, eax
jbe 0x40da58
mov edi, 2
cmp word [ebx + edi - 2], 0
jne 0x40da4c
add eax, ebx
push eax
lea ecx, [ebp - 0x28]
call fcn.00409ed0
lea ecx, [ebp - 0x28]
lea eax, [esi + 1]
push ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edi
call fcn.004090d0
mov eax, edi
inc esi
add edi, 2
cmp esi, dword [ebp - 0x10]
jb 0x40da22
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
push edx
call fcn.0095b1b1
push ebx
call fcn.0095b1b1
add esp, 8
cmp dword [ebp - 0x14], edi
pop ebx
pop edi
sete al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
push ebx
call fcn.0095b1b1
mov ecx, dword [ebp - 0xc]
add esp, 4
pop ebx
pop edi
xor al, al
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4

Function at 0x40db00
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ecx]
push esi
lea eax, [ebp - 4]
push eax
push ecx
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40db33
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40db33
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
xor eax, eax
xor edx, edx
add edx, esi
adc ecx, eax
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x40dcf0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
mov dword [esi], 0
mov eax, dword [ebp + 0xc]
cmp eax, 0x400000
jbe 0x40dd13
mov eax, 0x400000
mov edx, dword [ebx]
push 0
lea ecx, [ebp + 0x10]
push ecx
push eax
push edi
push edx
mov dword [ebp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 0x10]
add dword [esi], ecx
test eax, eax
je 0x40dd48
test ecx, ecx
je 0x40dd3f
add edi, ecx
sub dword [ebp + 0xc], ecx
jne 0x40dd04
pop edi
pop esi
mov al, 1
pop ebx
pop ebp
ret 0xc
pop edi
pop esi
xor al, al
pop ebx
pop ebp
ret 0xc
Function at 0x41b7b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x41b7c1
mov dword [esi], 0
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x41b804
mov eax, 0x8000
cmp ecx, eax
jae 0x41b7d3
mov eax, ecx
mov edx, dword [ebp + 0xc]
push 0
lea ecx, [ebp + 0x14]
push ecx
push eax
push edx
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x14]
add dword [ecx + 8], edx
adc dword [ecx + 0xc], 0
test esi, esi
je 0x41b800
add dword [esi], edx
test eax, eax
je 0x41b80b
xor eax, eax
pop esi
pop ebp
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41b81f
mov eax, 0x80004005
pop esi
pop ebp
ret 0x10
jle 0x41b82b
and eax, 0xffff
or eax, 0x80070000
pop esi
pop ebp
ret 0x10

Function at 0x41ffa0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c10f3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x10], esi
xor ebx, ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], 0x10
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x5c], eax
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], eax
mov dword [esi + 0x68], eax
mov dword [esi + 0x70], ebx
push 0x34
mov dword [ebp - 4], ebx
mov dword [esi], vtable.NCrypto::N7z::CDecoder.2.0
mov dword [esi + 4], vtable.NCrypto::N7z::CDecoder.1.0
mov dword [esi + 0x74], vtable.NCrypto::N7z::CDecoder.0
call fcn.0095b26f
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x420059
push 0x20
mov ecx, edi
call fcn.00420300
mov dword [edi], vtable.NCrypto::CAesCbcDecoder.1.0
mov dword [edi + 4], vtable.NCrypto::CAesCbcDecoder.0
mov dword [edi + 0x1c], 0x4013e0
mov eax, dword [0x9fea70]
mov dword [edi + 0x18], eax
jmp 0x42005b
xor edi, edi
mov byte [ebp - 4], bl
cmp edi, ebx
je 0x42006a
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov eax, dword [esi + 0x70]
cmp eax, ebx
je 0x420079
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x70], edi
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x424500
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c15ee
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [esi + 0xcc]
push eax
mov dword [ebp - 4], 2
call fcn.0095b1b1
mov eax, dword [esi + 0xc0]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0x9c]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0x90]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0x30]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0x24]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0x18]
push eax
call fcn.0095b1b1
mov eax, dword [esi + 0xc]
add esp, 0x1c
test eax, eax
je 0x424583
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esi + 8]
mov byte [ebp - 4], 1
test eax, eax
je 0x424596
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esi + 4]
mov byte [ebp - 4], 0
test eax, eax
je 0x4245a9
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [esi]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x4245be
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x4272c0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c1acb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x10], esi
mov dword [esi], ebx
mov dword [ebp - 4], ebx
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 3
mov dword [esi + 0x11], ebx
mov word [esi + 0x15], bx
mov byte [esi + 0x17], bl
call fcn.00409cd0
lea ecx, [esi + 0x24]
mov byte [ebp - 4], 4
call fcn.00409cd0
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 5
call fcn.00409cd0
lea edi, [esi + 0x78]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], ebx
xor eax, eax
mov dword [esi + 0x4c], eax
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 6
mov dword [ebp - 0x14], edi
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], 0xffffffff
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
call fcn.00409cd0
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 7
call fcn.00409cd0
lea edi, [esi + 0xa8]
lea ecx, [edi + 0x18]
mov byte [ebp - 4], 8
mov dword [ebp - 0x14], edi
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], 0xffffffff
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebx
call fcn.00409cd0
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 9
call fcn.00409cd0
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x427760
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c1b55
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi], eax
test eax, eax
je 0x427793
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [edi + 4]
mov dword [ebp - 4], 0
mov dword [esi + 4], eax
test eax, eax
je 0x4277ac
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [edi + 8]
mov byte [ebp - 4], 1
mov dword [esi + 8], eax
test eax, eax
je 0x4277c2
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [edi + 0xc]
mov byte [ebp - 4], 2
mov dword [esi + 0xc], eax
test eax, eax
je 0x4277d8
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
movzx eax, byte [edi + 0x10]
mov byte [esi + 0x10], al
movzx ecx, byte [edi + 0x11]
mov byte [esi + 0x11], cl
movzx edx, byte [edi + 0x12]
mov byte [esi + 0x12], dl
movzx eax, byte [edi + 0x13]
mov byte [esi + 0x13], al
movzx ecx, byte [edi + 0x14]
mov byte [esi + 0x14], cl
movzx edx, byte [edi + 0x15]
mov byte [esi + 0x15], dl
movzx eax, byte [edi + 0x16]
mov byte [esi + 0x16], al
movzx ecx, byte [edi + 0x17]
lea edx, [edi + 0x18]
mov byte [esi + 0x17], cl
push edx
lea ecx, [esi + 0x18]
mov byte [ebp - 4], 3
call fcn.00409e20
lea eax, [edi + 0x24]
push eax
lea ecx, [esi + 0x24]
mov byte [ebp - 4], 4
call fcn.00409e20
lea ecx, [edi + 0x30]
push ecx
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 5
call fcn.00409e20
mov edx, dword [edi + 0x3c]
mov dword [esi + 0x3c], edx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x40], eax
mov ecx, dword [edi + 0x44]
mov dword [esi + 0x44], ecx
mov edx, dword [edi + 0x48]
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0x4c]
mov dword [esi + 0x4c], eax
mov ecx, dword [edi + 0x50]
mov dword [esi + 0x50], ecx
mov edx, dword [edi + 0x54]
mov dword [esi + 0x54], edx
mov eax, dword [edi + 0x58]
mov dword [esi + 0x58], eax
mov ecx, dword [edi + 0x5c]
mov dword [esi + 0x5c], ecx
movzx edx, byte [edi + 0x60]
mov byte [esi + 0x60], dl
mov eax, dword [edi + 0x68]
mov dword [esi + 0x68], eax
mov ecx, dword [edi + 0x6c]
mov dword [esi + 0x6c], ecx
mov edx, dword [edi + 0x70]
lea ecx, [edi + 0x78]
mov dword [esi + 0x70], edx
mov eax, dword [edi + 0x74]
push ecx
lea ecx, [esi + 0x78]
mov byte [ebp - 4], 6
mov dword [esi + 0x74], eax
call fcn.00427230
lea edx, [edi + 0xa8]
push edx
lea ecx, [esi + 0xa8]
mov byte [ebp - 4], 7
call fcn.00427230
mov eax, dword [edi + 0xd8]
mov dword [esi + 0xd8], eax
mov ecx, dword [edi + 0xdc]
pop edi
mov dword [esi + 0xdc], ecx
mov eax, esi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x428ab0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c1c92
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
xor eax, eax
push esi
mov esi, ecx
mov dword [esi + 0x14], eax
mov dword [esi], vtable.COpenCallbackImp.4.0
mov dword [esi + 4], vtable.COpenCallbackImp.3.0
mov dword [esi + 8], vtable.COpenCallbackImp.2.0
mov dword [esi + 0xc], vtable.COpenCallbackImp.1.0
mov dword [esi + 0x10], vtable.COpenCallbackImp.0
mov byte [esi + 0x18], al
push edi
mov dword [ebp - 0x10], esi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [ebp - 4], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 2
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
call fcn.00409cd0
lea ecx, [esi + 0x54]
mov byte [ebp - 4], 3
call fcn.00409cd0
lea ecx, [esi + 0x60]
mov byte [ebp - 4], 4
call fcn.0040cce0
lea ecx, [esi + 0x88]
call fcn.00409cd0
lea ecx, [esi + 0x98]
mov byte [ebp - 4], 5
call fcn.00423bc0
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret

Function at 0x42afb0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c1f0a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], ebx
mov dword [esi], vtable.CBrowseDialog.0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [ebp - 4], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x3c], ebx
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 2
call fcn.00409cd0
lea ecx, [esi + 0x54]
mov byte [ebp - 4], 3
call fcn.00409cd0
mov word [esi + 0x60], bx
mov dword [esi + 0x64], 0xffffffff
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
lea ecx, [esi + 0x74]
mov byte [ebp - 4], 5
call fcn.00409cd0
lea ecx, [esi + 0x80]
mov byte [ebp - 4], 6
call fcn.00409cd0
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x42d090
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c2138
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x31c
push ebx
mov ebx, ecx
push edi
lea ecx, [ebp - 0x24]
call fcn.00409cd0
mov edi, dword [ebp + 0x10]
cmp byte [edi], 0
mov dword [ebp - 4], 0
je 0x42d113
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push eax
push ecx
lea edx, [ebp - 0x3c]
push edx
call fcn.0042cea0
push eax
push 0xdb0
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 1
call fcn.0042cf60
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 2
call fcn.00409f40
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0095b1b1
mov edx, dword [ebp - 0x3c]
push edx
mov byte [ebp - 4], 0
call fcn.0095b1b1
add esp, 8
push esi
lea esi, [edi + 0x18]
mov ecx, esi
call fcn.0040a3c0
mov dword [ebp + 0x10], eax
inc eax
push eax
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.004192c0
mov ecx, dword [esi]
mov edx, dword [ebp + 0x10]
lea eax, [ecx + edx*2 + 2]
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 3
call fcn.00409d50
lea eax, [ebp - 0x48]
push eax
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0042cfc0
lea ecx, [ebp - 0x30]
push ecx
mov ecx, ebx
call fcn.0042cfc0
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x18]
call fcn.00409e20
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0040a110
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040a1e0
lea ecx, [ebp - 0x18]
call fcn.0040a110
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0040a1e0
lea ecx, [ebp - 0x18]
call fcn.0040a110
cmp byte [edi + 1], 0
je 0x42d1f7
push 0x3f4
lea edx, [ebp - 0x3c]
push edx
call fcn.0040f2c0
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call fcn.0040a1e0
mov eax, dword [ebp - 0x3c]
push eax
mov byte [ebp - 4], 5
call fcn.0095b1b1
add esp, 4
push 0x9c5888
lea ecx, [ebp - 0x18]
call fcn.0040a270
push 0
lea ecx, [ebp - 0x74]
push ecx
add edi, 0x10
push edi
call fcn.0040f1f0
lea edx, [ebp - 0x74]
push edx
lea ecx, [ebp - 0x18]
call fcn.0040a270
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push eax
push ecx
call edi
mov edx, dword [ebp - 0x18]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov esi, dword [esi]
push 0x110
push 0x2b4
lea eax, [ebp - 0x328]
push eax
push 0x80
push esi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
pop esi
test eax, eax
je 0x42d255
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 4]
push ecx
push edx
call edi
mov ecx, dword [ebp - 0x328]
push 0
push ecx
push 0x170
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x18]
push edx
call fcn.0095b1b1
mov eax, dword [ebp - 0x30]
push eax
call fcn.0095b1b1
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.0095b1b1
mov edx, dword [ebp - 0x24]
push edx
call fcn.0095b1b1
mov ecx, dword [ebp - 0xc]
add esp, 0x10
pop edi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x42e830
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c21b4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
or eax, 0xffffffff
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
lea ecx, [esi + 0x38]
mov dword [ebp - 0x10], esi
mov dword [esi], 0x10000
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
call fcn.00409cd0
lea ecx, [esi + 0x44]
mov dword [ebp - 4], ebx
call fcn.00409cd0
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 1
call fcn.00409cd0
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
lea edi, [esi + 0x68]
mov ecx, edi
mov byte [ebp - 4], 3
mov dword [ebp - 0x14], edi
call fcn.00409cd0
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 4
call fcn.00409cd0
add edi, 0x18
mov ecx, edi
mov byte [ebp - 4], 5
mov dword [ebp - 0x18], edi
call fcn.00409cd0
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 6
call fcn.00409cd0
lea eax, [esi + 0x98]
push eax
call fcn.00408e50
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x4308b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
mov ecx, dword [eax]
cmp ecx, dword [edi + 0xb4]
jne 0x4308e0
cmp dword [eax + 8], 0xffffff65
jne 0x4308e0
movzx eax, word [eax + 0xc]
sub eax, 0x2d
je 0x43090a
sub eax, 0x14
je 0x4308e8
sub eax, 2
je 0x43090a
pop edi
xor al, al
pop esi
pop ebp
ret 8
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x4308e0
lea ecx, [edi + 0xb4]
call fcn.0042d4d0
pop edi
mov al, 1
pop esi
pop ebp
ret 8
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
je 0x4308e0
mov ecx, edi
call fcn.0042f820
pop edi
mov al, 1
pop esi
pop ebp
ret 8

Function at 0x435d00
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0x4010
push 0x2b4
lea eax, [ebp - 0x2b4]
push eax
or ecx, 0x80
push ecx
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x2b0]
mov dword [ecx], edx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x435d40
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
movzx eax, byte [ebp + 8]
sub esp, 0x2b4
neg eax
sbb eax, eax
and eax, 0xffffff01
add eax, 0x100
or eax, 0x4010
push eax
push 0x2b4
lea ecx, [ebp - 0x2b4]
push ecx
push 0x90
push 0x9c4858
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov esp, ebp
pop ebp
ret 4
Function at 0x435fb0
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c24f8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x57c
mov edx, dword [ebp + 0xc]
movzx eax, word [edx]
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
xor edi, edi
or esi, 0xffffffff
xor ecx, ecx
cmp ax, di
je 0x435ff9
cmp ax, 0x2e
jne 0x435fee
mov esi, ecx
movzx eax, word [edx + ecx*2 + 2]
inc ecx
cmp ax, di
jne 0x435fe6
mov ebx, dword [ebp + 8]
test bl, 0x10
jne 0x436125
cmp esi, edi
jl 0x436125
lea esi, [edx + esi*2]
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x10]
lea eax, [ebp + 0xc]
push eax
mov dword [ebp + 8], esi
add esi, 2
push esi
add edi, 0xc
push edi
call fcn.00435df0
test eax, eax
js 0x436049
mov ecx, dword [edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
movzx eax, word [esi]
xor ecx, ecx
test ax, ax
je 0x4360c2
add eax, 0xffffffd0
cmp ax, 9
ja 0x436067
movzx eax, word [esi + ecx*2 + 2]
inc ecx
test ax, ax
jne 0x436053
test ecx, ecx
je 0x4360c2
cmp word [esi + ecx*2], 0
jne 0x4360c2
mov esi, dword [ebp - 0x10]
cmp dword [esi + 0x1c], 0
jne 0x4360ac
push 0x4010
push 0x2b4
lea eax, [ebp - 0x2d4]
push eax
push 0x80
push str.__FILE__.001
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ecx, dword [ebp - 0x2d0]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], 1
mov eax, dword [esi + 0x18]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebp - 0x20]
call fcn.00409cd0
push esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0
call fcn.00409ed0
mov eax, dword [ebp + 8]
push 0x4010
push 0x2b4
lea edx, [ebp - 0x2d4]
push edx
or ebx, 0x80
push ebx
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x20]
push edx
mov dword [ebp - 0x14], ecx
push eax
mov ecx, edi
call fcn.00435ee0
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
push ecx
call fcn.0095b1b1
add esp, 4
jmp 0x43618b
mov edx, dword [ebp - 0x10]
mov esi, dword [edx + 4]
mov dword [ebp + 0xc], edi
test esi, esi
je 0x43614f
mov eax, edx
mov edx, dword [eax]
lea eax, [esi + edi]
shr eax, 1
mov ecx, dword [edx + eax*8]
cmp ebx, ecx
je 0x4361a0
jae 0x436148
mov esi, eax
jmp 0x43614b
lea edi, [eax + 1]
cmp edi, esi
jne 0x436136
mov dword [ebp + 0xc], edi
push 0x4010
push 0x2b4
lea ecx, [ebp - 0x588]
push ecx
mov edx, ebx
or edx, 0x80
push edx
push str.__DIR__
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov esi, dword [ebp - 0x584]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
push esi
push ebx
push eax
call fcn.00435e50
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
test eax, eax
js 0x436152
mov ecx, dword [ebp - 0xc]
mov eax, dword [edx + eax*8 + 4]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x436ba0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x9c260b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
xor ebx, ebx
push esi
mov esi, ecx
lea ecx, [esi + 0x14]
mov dword [ebp - 0x10], esi
mov dword [esi], ebx
mov word [esi + 4], bx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
call fcn.00409cd0
mov word [esi + 0x20], bx
mov word [esi + 0x22], bx
mov word [esi + 0x24], bx
mov word [esi + 0x26], bx
mov word [esi + 0x28], bx
mov al, 1
lea ecx, [esi + 0x30]
mov dword [ebp - 4], ebx
mov word [esi + 0x2a], bx
mov byte [esi + 0x22], al
mov byte [esi + 0x24], bl
mov byte [esi + 0x26], al
mov byte [esi + 0x28], al
mov dword [esi + 0x2c], 0x100
call fcn.00409cd0
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x3c], ebx
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret