joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40c8d0
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x99cb38
push eax
mov dword fs:[0], esp
sub esp, 0x38
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x40c908
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40c947
lea ecx, [ebp - 0x44]
call fcn.0040cc80
lea ecx, [ebp - 0x1c]
call fcn.00409c70
push 0
push esi
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0
call fcn.0040d1c0
test al, al
jne 0x40c957
mov eax, dword [ebp - 0x1c]
push eax
call fcn.00937371
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
push ebx
mov ebx, dword [ebp - 0x24]
shr ebx, 4
push ecx
and bl, 1
call fcn.00937371
mov ecx, dword [ebp - 0xc]
add esp, 4
mov al, bl
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret

Function at 0x40cfc0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40cfd4
or eax, eax
pop ebp
ret 4
Function at 0x40d910
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push 0x99cb60
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push esi
push edi
call fcn.00408fd0
mov edi, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
push 0
push 0
call edi
mov esi, eax
test esi, esi
jne 0x40d95b
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.00937387
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 0x40da13
cmp edi, esi
ja 0x40da13
lea ecx, [ebp - 0x28]
call fcn.00409c70
xor eax, eax
xor esi, esi
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], eax
cmp edi, eax
jbe 0x40d9e8
mov edi, 2
cmp word [ebx + edi - 2], 0
jne 0x40d9dc
add eax, ebx
push eax
lea ecx, [ebp - 0x28]
call fcn.00409e70
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.00409070
mov eax, edi
inc esi
add edi, 2
cmp esi, dword [ebp - 0x10]
jb 0x40d9b2
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
push edx
call fcn.00937371
push ebx
call fcn.00937371
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.00937371
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 0x40da90
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 0x40dac3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40dac3
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 0x40dc80
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 0x40dca3
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 0x40dcd8
test ecx, ecx
je 0x40dccf
add edi, ecx
sub dword [ebp + 0xc], ecx
jne 0x40dc94
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 0x41b720
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x41b731
mov dword [esi], 0
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x41b774
mov eax, 0x8000
cmp ecx, eax
jae 0x41b743
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 0x41b770
add dword [esi], edx
test eax, eax
je 0x41b77b
xor eax, eax
pop esi
pop ebp
ret 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41b78f
mov eax, 0x80004005
pop esi
pop ebp
ret 0x10
jle 0x41b79b
and eax, 0xffff
or eax, 0x80070000
pop esi
pop ebp
ret 0x10

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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99d343
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.0093742f
mov edi, eax
add esp, 4
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 1
cmp edi, ebx
je 0x41ff29
push 0x20
mov ecx, edi
call fcn.00420280
mov dword [edi], vtable.NCrypto::CAesCbcDecoder.1.0
mov dword [edi + 4], vtable.NCrypto::CAesCbcDecoder.0
mov dword [edi + 0x1c], 0x4013e0
mov eax, dword [0x9dba70]
mov dword [edi + 0x18], eax
jmp 0x41ff2b
xor edi, edi
mov byte [ebp - 4], bl
cmp edi, ebx
je 0x41ff3a
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov eax, dword [esi + 0x70]
cmp eax, ebx
je 0x41ff49
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 0x4244e0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99d85e
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.00937371
mov eax, dword [esi + 0xc0]
push eax
call fcn.00937371
mov eax, dword [esi + 0x9c]
push eax
call fcn.00937371
mov eax, dword [esi + 0x90]
push eax
call fcn.00937371
mov eax, dword [esi + 0x30]
push eax
call fcn.00937371
mov eax, dword [esi + 0x24]
push eax
call fcn.00937371
mov eax, dword [esi + 0x18]
push eax
call fcn.00937371
mov eax, dword [esi + 0xc]
add esp, 0x1c
test eax, eax
je 0x424563
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 0x424576
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 0x424589
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 0x42459e
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 0x427320
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99dd0b
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.00409c70
lea ecx, [esi + 0x24]
mov byte [ebp - 4], 4
call fcn.00409c70
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 5
call fcn.00409c70
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.00409c70
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 7
call fcn.00409c70
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.00409c70
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 9
call fcn.00409c70
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 0x4277c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99dd75
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 0x4277f3
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 0x42780c
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 0x427822
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 0x427838
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.00409dc0
lea eax, [edi + 0x24]
push eax
lea ecx, [esi + 0x24]
mov byte [ebp - 4], 4
call fcn.00409dc0
lea ecx, [edi + 0x30]
push ecx
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 5
call fcn.00409dc0
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 0x428b10
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99deb2
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.00409c70
lea ecx, [esi + 0x54]
mov byte [ebp - 4], 3
call fcn.00409c70
lea ecx, [esi + 0x60]
mov byte [ebp - 4], 4
call fcn.0040cc80
lea ecx, [esi + 0x88]
call fcn.00409c70
lea ecx, [esi + 0x98]
mov byte [ebp - 4], 5
call fcn.00423bb0
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 0x42afd0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99e10a
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.00409c70
lea ecx, [esi + 0x54]
mov byte [ebp - 4], 3
call fcn.00409c70
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.00409c70
lea ecx, [esi + 0x80]
mov byte [ebp - 4], 6
call fcn.00409c70
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 0x42d0c0
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99e388
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.00409c70
mov edi, dword [ebp + 0x10]
cmp byte [edi], 0
mov dword [ebp - 4], 0
je 0x42d143
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push eax
push ecx
lea edx, [ebp - 0x3c]
push edx
call fcn.0042ced0
push eax
push 0xdb0
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 1
call fcn.0042cf90
push eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 2
call fcn.00409ee0
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.00937371
mov edx, dword [ebp - 0x3c]
push edx
mov byte [ebp - 4], 0
call fcn.00937371
add esp, 8
push esi
lea esi, [edi + 0x18]
mov ecx, esi
call fcn.0040a360
mov dword [ebp + 0x10], eax
inc eax
push eax
lea eax, [ebp - 0x48]
push eax
mov ecx, esi
call fcn.00419240
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.00409cf0
lea eax, [ebp - 0x48]
push eax
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0042cff0
lea ecx, [ebp - 0x30]
push ecx
mov ecx, ebx
call fcn.0042cff0
lea edx, [ebp - 0x48]
push edx
lea ecx, [ebp - 0x18]
call fcn.00409dc0
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call fcn.0040a0b0
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040a180
lea ecx, [ebp - 0x18]
call fcn.0040a0b0
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x18]
call fcn.0040a180
lea ecx, [ebp - 0x18]
call fcn.0040a0b0
cmp byte [edi + 1], 0
je 0x42d227
push 0x3f4
lea edx, [ebp - 0x3c]
push edx
call fcn.0040f250
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call fcn.0040a180
mov eax, dword [ebp - 0x3c]
push eax
mov byte [ebp - 4], 5
call fcn.00937371
add esp, 4
push 0x9a1888
lea ecx, [ebp - 0x18]
call fcn.0040a210
push 0
lea ecx, [ebp - 0x74]
push ecx
add edi, 0x10
push edi
call fcn.0040f180
lea edx, [ebp - 0x74]
push edx
lea ecx, [ebp - 0x18]
call fcn.0040a210
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 0x42d285
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.00937371
mov eax, dword [ebp - 0x30]
push eax
call fcn.00937371
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.00937371
mov edx, dword [ebp - 0x24]
push edx
call fcn.00937371
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 0x42e820
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 0x99e404
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.00409c70
lea ecx, [esi + 0x44]
mov dword [ebp - 4], ebx
call fcn.00409c70
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 1
call fcn.00409c70
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.00409c70
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 4
call fcn.00409c70
add edi, 0x18
mov ecx, edi
mov byte [ebp - 4], 5
mov dword [ebp - 0x18], edi
call fcn.00409c70
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 6
call fcn.00409c70
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 0x4308f0
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 0x430920
cmp dword [eax + 8], 0xffffff65
jne 0x430920
movzx eax, word [eax + 0xc]
sub eax, 0x2d
je 0x43094a
sub eax, 0x14
je 0x430928
sub eax, 2
je 0x43094a
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 0x430920
lea ecx, [edi + 0xb4]
call fcn.0042d500
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 0x430920
mov ecx, edi
call fcn.0042f860
pop edi
mov al, 1
pop esi
pop ebp
ret 8

Function at 0x435580
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 0x4355c0
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 0x9a0858
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov esp, ebp
pop ebp
ret 4
Function at 0x435830
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x99e728
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 0x435879
cmp ax, 0x2e
jne 0x43586e
mov esi, ecx
movzx eax, word [edx + ecx*2 + 2]
inc ecx
cmp ax, di
jne 0x435866
mov ebx, dword [ebp + 8]
test bl, 0x10
jne 0x4359a5
cmp esi, edi
jl 0x4359a5
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.00435670
test eax, eax
js 0x4358c9
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 0x435942
add eax, 0xffffffd0
cmp ax, 9
ja 0x4358e7
movzx eax, word [esi + ecx*2 + 2]
inc ecx
test ax, ax
jne 0x4358d3
test ecx, ecx
je 0x435942
cmp word [esi + ecx*2], 0
jne 0x435942
mov esi, dword [ebp - 0x10]
cmp dword [esi + 0x1c], 0
jne 0x43592c
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.00409c70
push esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0
call fcn.00409e70
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.00435760
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
push ecx
call fcn.00937371
add esp, 4
jmp 0x435a0b
mov edx, dword [ebp - 0x10]
mov esi, dword [edx + 4]
mov dword [ebp + 0xc], edi
test esi, esi
je 0x4359cf
mov eax, edx
mov edx, dword [eax]
lea eax, [esi + edi]
shr eax, 1
mov ecx, dword [edx + eax*8]
cmp ebx, ecx
je 0x435a20
jae 0x4359c8
mov esi, eax
jmp 0x4359cb
lea edi, [eax + 1]
cmp edi, esi
jne 0x4359b6
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.004356d0
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 0x4359d2
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