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

Disassembly:
sub esp, 0x208
push ebx
mov ebx, dword [esp + 0x210]
test ebx, ebx
jne 0x46925c
xor eax, eax
pop ebx
add esp, 0x208
ret
push ebp
push esi
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x12]
mov word [esp + 0x10], 0
push 0x103
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x14]
push ebx
push eax
mov ebp, 1
call fcn.00459ead
mov edi, 0x5c
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.004592f2
lea edx, [esp + 0x24]
mov esi, eax
push edx
call fcn.00405164
add esp, 0x18
cmp eax, 2
jbe 0x4692e1
cmp word [esp + 0x10], di
jne 0x4692e1
cmp word [esp + 0x12], di
jne 0x4692e1
lea eax, [esp + 0x14]
push edi
push eax
call fcn.004592f2
add esp, 8
test eax, eax
je 0x469369
add eax, 2
push edi
push eax
call fcn.004592f2
add esp, 8
mov esi, eax
test esi, esi
je 0x469369
lea ecx, [esp + 0x10]
mov word [esi], 0
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
mov edi, ebx
and edi, 0x10
jne 0x469329
test bl, 1
je 0x469318
mov edx, ebx
lea eax, [esp + 0x10]
and edx, 0xfffffffe
push edx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
test ebp, ebp
je 0x46939f
cmp ebx, 0xffffffff
je 0x469332
test edi, edi
jne 0x469341
lea edx, [esp + 0x10]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebp, eax
test ebp, ebp
je 0x46939f
mov word [esi], 0x5c
add esi, 2
push 0x5c
push esi
call fcn.004592f2
mov esi, eax
add esp, 8
test esi, esi
jne 0x4692e9
test ebp, ebp
je 0x46939f
mov ebx, dword [esp + 0x21c]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x469394
test al, 0x10
jne 0x46939f
test al, 1
je 0x469387
and al, 0xfe
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
test ebp, ebp
je 0x46939f
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebp, eax
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x208
ret
Function at 0x46cb42
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
lea ebp, [esi + 0x42c]
lea edi, [esi + 0x2c]
mov ecx, 0x100
xor eax, eax
push ebx
mov dword [esi], ebx
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov dword [ebp], ebx
push 0x80
push 3
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x20]
push ebx
lea edi, [esi + 0xc]
push 7
push SysReAllocStringLen
push eax
mov dword [esi + 8], ebx
mov dword [edi], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], 1
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x46cbd2
cmp eax, ebx
je 0x46cbd2
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [esi + 4]
mov dword [esi + 8], eax
push ebx
push ebp
lea eax, [esi + 0x2c]
push 0x400
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x46cbda
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi], eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
ret 4
Function at 0x46cd85
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 4]
cmp eax, 0xffffffff
je 0x46ced7
xor edx, edx
cmp eax, edx
je 0x46ced7
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
lea eax, [ebx + ecx]
cmp eax, ebx
jb 0x46cdba
cmp eax, ecx
jb 0x46cdba
xor ecx, ecx
jmp 0x46cdbf
mov ecx, 1
mov edi, dword [esi + 0xc]
mov dword [esp + 0x14], ecx
cmp ecx, edi
jl 0x46cdd9
jg 0x46ced7
cmp eax, dword [esi + 8]
ja 0x46ced7
cmp ecx, edx
jne 0x46cdf3
cmp eax, dword [esi + 0x42c]
ja 0x46cdf3
lea eax, [ebx + esi + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 8
mov ebp, dword [esi + 0x1c]
cmp ebp, edx
je 0x46ce38
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0x24]
lea edi, [edx + ecx]
cmp edi, ecx
jb 0x46ce13
cmp edi, edx
jb 0x46ce13
xor edx, edx
jmp 0x46ce18
mov edx, 1
cmp ecx, ebx
ja 0x46ce38
cmp dword [esp + 0x14], edx
jg 0x46ce38
jl 0x46ce28
cmp eax, edi
ja 0x46ce38
mov eax, ebp
pop edi
sub eax, ecx
pop esi
add eax, ebx
pop ebp
pop ebx
add esp, 0x10
ret 8
mov eax, dword [esp + 0x28]
mov ecx, esi
push eax
call fcn.0046cef0
test eax, eax
je 0x46ced7
cmp ebx, 0x7fffffff
push 0
push 0
jbe 0x46ce86
mov ecx, dword [esi + 4]
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x7fffffff
push ecx
call edi
cmp eax, 0xffffffff
je 0x46cec7
mov eax, dword [esi + 4]
push 1
lea edx, [ebx - 0x7fffffff]
push 0
push edx
push eax
call edi
cmp eax, 0xffffffff
je 0x46cec7
jmp 0x46ce96
mov ecx, dword [esi + 4]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x46cec7
mov ebp, dword [esp + 0x28]
mov edx, dword [esi + 0x1c]
mov eax, dword [esi + 4]
lea edi, [esi + 0x24]
push 0
push edi
push ebp
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x46cec7
cmp dword [edi], ebp
jne 0x46cec7
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x28], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 8
xor eax, eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 8
Function at 0x46d320
Capabilities:
Get file size

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x483368
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov eax, dword [esi + 0x20]
xor edi, edi
xor ebp, ebp
cmp eax, ebx
je 0x46d352
call fcn.004519e0
mov ebp, eax
mov eax, dword [esi + 0x18]
mov ecx, 0xc0000000
cmp eax, ebx
je 0x46d363
mov ecx, SysReAllocStringLen
mov eax, dword [esi + 0x24]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
cmp dword [eax - 8], ebx
je 0x46d3b8
push ebx
push 0x80
push 3
push ebp
push 3
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x46d39e
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x14], eax
cmp dword [esi + 4], 0xffffffff
je 0x46d4e4
cmp dword [esp + 0x18], ebx
jne 0x46d3b8
cmp dword [esp + 0x14], ebx
je 0x46d4e4
mov eax, dword [esi + 0x18]
mov edi, 4
cmp eax, ebx
je 0x46d3c9
mov edi, 2
lea ebx, [esi + 0x28]
lea ecx, [esp + 0x10]
push ebx
call fcn.00473147
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x24], 0
test eax, eax
je 0x46d40f
mov edx, dword [ebx]
mov eax, dword [edx - 8]
test eax, eax
je 0x46d40f
call fcn.0043a640
test eax, eax
je 0x46d40f
push str.Global_
lea ecx, [esp + 0x14]
call fcn.0047355b
push ebx
lea ecx, [esp + 0x14]
call fcn.004737ea
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esi + 4]
push eax
mov eax, dword [esi + 0x10]
push eax
push 0
push edi
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
mov dword [esi + 8], eax
je 0x46d4be
mov edx, dword [esi + 0x18]
mov ecx, 6
test edx, edx
je 0x46d44b
mov ecx, 4
mov edx, dword [esi + 0x10]
push edx
mov edx, dword [esi + 0x14]
push edx
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
mov dword [esi + 0xc], eax
je 0x46d4be
mov eax, dword [esi + 0x10]
mov ebp, 1
test eax, eax
jne 0x46d499
mov eax, dword [esi + 4]
or ebx, 0xffffffff
cmp eax, ebx
je 0x46d49c
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x18]
xor edi, edi
sub ecx, edx
sbb eax, edi
test eax, eax
jle 0x46d494
mov dword [esi + 0x10], ebx
jmp 0x46d49c
mov dword [esi + 0x10], ecx
jmp 0x46d49c
or ebx, 0xffffffff
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], ebx
call fcn.004733d2
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], 0xffffffff
call fcn.004733d2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
mov ecx, dword [esp + 0x1c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret
Function at 0x46d33a
Capabilities:
Get file size

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x483368
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov eax, dword [esi + 0x20]
xor edi, edi
xor ebp, ebp
cmp eax, ebx
je 0x46d352
call fcn.004519e0
mov ebp, eax
mov eax, dword [esi + 0x18]
mov ecx, 0xc0000000
cmp eax, ebx
je 0x46d363
mov ecx, SysReAllocStringLen
mov eax, dword [esi + 0x24]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
cmp dword [eax - 8], ebx
je 0x46d3b8
push ebx
push 0x80
push 3
push ebp
push 3
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
je 0x46d39e
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x14], eax
cmp dword [esi + 4], 0xffffffff
je 0x46d4e4
cmp dword [esp + 0x18], ebx
jne 0x46d3b8
cmp dword [esp + 0x14], ebx
je 0x46d4e4
mov eax, dword [esi + 0x18]
mov edi, 4
cmp eax, ebx
je 0x46d3c9
mov edi, 2
lea ebx, [esi + 0x28]
lea ecx, [esp + 0x10]
push ebx
call fcn.00473147
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x24], 0
test eax, eax
je 0x46d40f
mov edx, dword [ebx]
mov eax, dword [edx - 8]
test eax, eax
je 0x46d40f
call fcn.0043a640
test eax, eax
je 0x46d40f
push str.Global_
lea ecx, [esp + 0x14]
call fcn.0047355b
push ebx
lea ecx, [esp + 0x14]
call fcn.004737ea
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx - 8]
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esi + 4]
push eax
mov eax, dword [esi + 0x10]
push eax
push 0
push edi
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
mov dword [esi + 8], eax
je 0x46d4be
mov edx, dword [esi + 0x18]
mov ecx, 6
test edx, edx
je 0x46d44b
mov ecx, 4
mov edx, dword [esi + 0x10]
push edx
mov edx, dword [esi + 0x14]
push edx
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
mov dword [esi + 0xc], eax
je 0x46d4be
mov eax, dword [esi + 0x10]
mov ebp, 1
test eax, eax
jne 0x46d499
mov eax, dword [esi + 4]
or ebx, 0xffffffff
cmp eax, ebx
je 0x46d49c
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x14]
mov eax, dword [esp + 0x18]
xor edi, edi
sub ecx, edx
sbb eax, edi
test eax, eax
jle 0x46d494
mov dword [esi + 0x10], ebx
jmp 0x46d49c
mov dword [esi + 0x10], ecx
jmp 0x46d49c
or ebx, 0xffffffff
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], ebx
call fcn.004733d2
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
lea ecx, [esp + 0x10]
mov dword [esp + 0x24], 0xffffffff
call fcn.004733d2
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
mov ecx, dword [esp + 0x1c]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret
Function at 0x46eea0
Capabilities:
Get disk information

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4834d0
push eax
mov dword fs:[0], esp
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
push edi
push 0xffffffffffffffff
push 0
mov ecx, esi
call fcn.0041fa60
mov edi, dword [esp + 0x3c]
push 0xffffffffffffffff
push 0
mov ecx, edi
call fcn.0041fa60
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebp, eax
mov eax, dword [0x49bebc]
test eax, eax
je 0x46ef58
cmp ebp, eax
jne 0x46ef58
mov eax, dword [0x49bec0]
test eax, eax
je 0x46ef58
cmp ebx, eax
jb 0x46ef58
add eax, 0x493e0
cmp eax, ebx
jb 0x46ef58
mov ebp, dword [0x49bec4]
push 1
inc ebp
push 0x49bdd8
lea ecx, [esp + 0x18]
mov dword [0x49bec4], ebp
call fcn.004706f0
push 0x49be08
mov ecx, esi
mov dword [esp + 0x34], 0
call fcn.0041fcb0
push 0x49bdf8
mov ecx, edi
call fcn.0041fcb0
mov dword [esp + 0x30], 0xffffffff
lea ecx, [esp + 0x10]
jmp 0x46efce
push edi
push esi
mov dword [0x49bec4], 0
call fcn.0046f2d0
add esp, 8
lea ecx, [esp + 0x1c]
push 1
push 0x49bdd8
call fcn.004706f0
push 0xffffffffffffffff
push 0
mov ecx, 0x49be08
mov dword [esp + 0x38], 1
mov dword [0x49bebc], ebp
mov dword [0x49bec0], ebx
call fcn.0041fa60
push esi
mov ecx, 0x49be08
call fcn.0041fcb0
push 0xffffffffffffffff
push 0
mov ecx, 0x49bdf8
call fcn.0041fa60
push edi
mov ecx, 0x49bdf8
call fcn.0041fcb0
mov dword [esp + 0x30], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.00470750
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x24
ret
Function at 0x46eff0
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x4834f6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x138]
push edi
xor ebx, ebx
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.00471f24
mov ebp, dword [esp + 0x140]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.00471f24
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
test ecx, edx
je 0x46f12a
mov cl, byte [0x497f5a]
mov dx, word [0x497f58]
mov byte [esp + 0x12], cl
mov cl, dl
mov word [esp + 0x10], dx
add cl, al
lea edx, [esp + 0x10]
mov byte [esp + 0x10], cl
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x17], bl
call fcn.00473440
mov eax, dword [esi + 8]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x13c], ebx
call fcn.00472166
mov edx, dword [0x490964]
mov dword [esp + 0x14], edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x29]
mov byte [esp + 0x28], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x28]
push 0x104
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x140], 1
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x14]
push edx
mov byte [esp + 0x12f], bl
call fcn.0047355b
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, ebp
call fcn.00472166
lea ecx, [esp + 0x14]
mov byte [esp + 0x134], bl
call fcn.004733d2
lea ecx, [esp + 0x1c]
mov dword [esp + 0x134], 0xffffffff
call fcn.004733d2
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
inc eax
shl edx, 1
cmp eax, 0x1a
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
jb 0x46f04b
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x128
ret
Function at 0x46f160
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x483516
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x11c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x138]
push edi
xor ebx, ebx
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0041dd90
mov ebp, dword [esp + 0x140]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.0041dd90
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
test ecx, edx
je 0x46f29a
mov cl, byte [0x497f5a]
mov dx, word [0x497f58]
mov byte [esp + 0x12], cl
mov cl, dl
mov word [esp + 0x10], dx
add cl, al
lea edx, [esp + 0x10]
mov byte [esp + 0x10], cl
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x17], bl
call fcn.00412960
mov eax, dword [esi + 4]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x13c], ebx
call fcn.0041e410
mov edx, dword [0x486a80]
mov dword [esp + 0x14], edx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x29]
mov byte [esp + 0x28], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x28]
push 0x104
lea ecx, [esp + 0x14]
push eax
push ecx
mov byte [esp + 0x140], 1
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x14]
push edx
mov byte [esp + 0x12f], bl
call fcn.004135d0
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, ebp
call fcn.0041e410
lea ecx, [esp + 0x14]
mov byte [esp + 0x134], bl
call fcn.00413310
lea ecx, [esp + 0x1c]
mov dword [esp + 0x134], 0xffffffff
call fcn.00413310
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
inc eax
shl edx, 1
cmp eax, 0x1a
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
jb 0x46f1bb
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x128
ret
Function at 0x46f2d0
Capabilities:
Get disk information

Disassembly:
push 0xffffffffffffffff
push 0x483536
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x224
push ebx
push ebp
push esi
mov esi, dword [esp + 0x240]
push edi
xor ebx, ebx
push 0xffffffffffffffff
push ebx
mov ecx, esi
call fcn.0041fa60
mov ebp, dword [esp + 0x248]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.0041fa60
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
test ecx, edx
je 0x46f409
mov edx, dword [0x497f5c]
mov cx, word [0x497f60]
mov dword [esp + 0x18], edx
add word [esp + 0x18], ax
lea edx, [esp + 0x18]
mov word [esp + 0x1c], cx
push edx
lea ecx, [esp + 0x28]
mov word [esp + 0x22], bx
call fcn.00418410
mov eax, dword [esi + 4]
lea ecx, [esp + 0x24]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x244], ebx
call fcn.004200f0
mov edx, dword [0x486a84]
mov dword [esp + 0x14], edx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x2e]
mov word [esp + 0x2c], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x2c]
push 0x104
lea ecx, [esp + 0x1c]
push eax
push ecx
mov byte [esp + 0x248], 1
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x14]
push edx
mov word [esp + 0x236], bx
call fcn.00418f60
mov eax, dword [ebp + 4]
lea ecx, [esp + 0x14]
push ecx
push eax
mov ecx, ebp
call fcn.004200f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x23c], bl
call fcn.00418c80
lea ecx, [esp + 0x24]
mov dword [esp + 0x23c], 0xffffffff
call fcn.00418c80
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
inc eax
shl edx, 1
cmp eax, 0x1a
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], edx
jb 0x46f32b
mov ecx, dword [esp + 0x234]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x230
ret

Function at 0x475bf5
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x475c2d
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.00473879
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.00473851
jmp 0x475c39
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x42e003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
call 0x42e00c
nop
nop
pop eax
nop
nop
nop
add eax, 0x403ac5
nop
nop
sub eax, 0x403a6b
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x42e030
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x42e01e
nop
nop
nop
popal
nop
nop
nop
nop
jmp loc.00401219
Function at 0x432002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
call 0x43200c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x40729f
nop
sub eax, 0x407245
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x432030
nop
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43201e
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0xaea058
Capabilities:
Decompress data using aplib

Disassembly:
call 0xaea1a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, pe_nt_image_headers32
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0xaea07e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xaea06a
add dl, dl
jne 0xaea089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xaea0dc
xor eax, eax
add dl, dl
jne 0xaea096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0xaea17d
add dl, dl
jne 0xaea0a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xaea0b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xaea0bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xaea0c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0xaea0d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0xaea075
mov eax, 1
add dl, dl
jne 0xaea0ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0xaea0f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xaea0e1
sub eax, ebx
mov ebx, 1
jne 0xaea128
mov ecx, 1
add dl, dl
jne 0xaea10e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xaea119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xaea105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xaea075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0xaea13f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0xaea14a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0xaea136
cmp eax, 0x7d00
jae 0xaea16d
cmp eax, 0x500
jb 0xaea168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xaea075
cmp eax, 0x7f
ja 0xaea170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0xaea075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0xaea19e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0xaea075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10