joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4afce4
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffb4
mov dword [esp], eax
lea esi, [esp + 0x30]
lea eax, [esp + 0xc]
push eax
call sub.kernel32.dll_GetSystemInfo
mov edi, dword [esp]
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x4afdaf
jmp 0x4afda3
cmp dword [esi + 0x10], 0x1000
jne 0x4afd8f
test byte [esi + 0x15], 1
jne 0x4afd8f
mov byte [esp + 4], 0
mov ebp, dword [esi + 0x14]
cmp ebp, 1
je 0x4afd40
cmp ebp, 2
je 0x4afd40
cmp ebp, 0x10
je 0x4afd40
cmp ebp, 0x20
jne 0x4afd5c
lea eax, [esp + 8]
push eax
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x4afd5c
mov byte [esp + 4], 1
xor ebx, ebx
jmp 0x4afd6d
mov eax, dword [esi]
add eax, ebx
call fcn.004afcdc
add ebx, dword [esp + 0x10]
cmp ebx, dword [esi + 0xc]
jb 0x4afd60
cmp byte [esp + 4], 0
je 0x4afd8f
lea eax, [esp + 8]
push eax
mov eax, dword [esp + 0xc]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov edi, eax
push 0x1c
push esi
push edi
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x4afdaf
mov eax, dword [esi + 4]
cmp eax, dword [esp]
je 0x4afd15
add esp, 0x4c
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x402000
Capabilities:
Access peb ldr_data

Disassembly:
push 0
push 2
push 0x403068
push 0x403053
call dword [sym.imp.Winmm.dll_mciSendStringA]
cmp eax, 0x107
je 0x40201c
ret
mov edi, edi
mov esi, 0x4020c7
mov edi, esi
push 1
push 0x403086
push 1
push 0
push 0
call dword [sym.imp.kernel32.dll_CreateSemaphoreA]
mov edx, eax
pop ebx
mov ecx, 0x3ab
mov al, byte [esi]
sub al, bl
stosb byte es:[edi], al
inc esi
loop 0x402040
push dword fs:[0x30]
mov eax, dword [esp]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
cmp word [eax], 0x5a4d
je 0x402066
xor eax, eax
mov dword [0x403099], eax
add esp, 4
ret

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

Disassembly:
pushal
nop
call 0x43000c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403d6f
nop
sub eax, 0x403d15
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43001e
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp loc.00401219
Function at 0x40af11
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 4], 0
cmp dword [ebp + 8], 0
je 0x40b05d
mov eax, dword [ebp + 8]
movsx ecx, word [eax + 8]
test ecx, ecx
jle 0x40b05d
mov edx, dword [ebp + 0x18]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040b3dd
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40af78
cmp dword [ebp + 0x10], 0
je 0x40af64
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.0040ab5c
add esp, 4
jmp 0x40af70
mov edx, dword [ebp + 0x14]
push edx
call fcn.0040ad29
add esp, 4
mov eax, dword [ebp - 4]
jmp 0x40b060
cmp dword [ebp + 0x10], 0
je 0x40af87
mov dword [ebp - 8], 0x4386e4
jmp 0x40af8e
mov dword [ebp - 8], 0x4387e8
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.00412a5f
add esp, 8
test eax, eax
jne 0x40b05d
cmp dword [ebp + 0x10], 0
je 0x40afb5
mov dword [ebp - 0xc], 0x4386e4
jmp 0x40afbc
mov dword [ebp - 0xc], 0x4387e8
push 0
mov edx, dword [ebp + 8]
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
push 0
call fcn.0040c6c3
add esp, 0x14
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40b05d
push 0x4389ac
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40b05d
cmp dword [ebp + 0x10], 0
je 0x40affd
mov dword [ebp - 0x10], 0x4386e4
jmp 0x40b004
mov dword [ebp - 0x10], 0x4387e8
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
call fcn.00412821
add esp, 8
test eax, eax
je 0x40b03c
push 0x4389ac
mov ecx, dword [ebp + 0x10]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffc
add ecx, 0x84
push ecx
call fcn.00412a9b
add esp, 8
mov dword [ebp - 4], eax
jmp 0x40b05d
push 0x4389ac
mov edx, dword [ebp + 0x10]
neg edx
sbb edx, edx
and edx, 0xfffffffc
add edx, 0x85
push edx
call fcn.00412a9b
add esp, 8
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x40ba61
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
cmp dword [0x4388ec], 0
je 0x40ba7d
mov eax, dword [0x4388ec]
jmp 0x40bbe0
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.00409230
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x40bb16
lea ecx, [ebp - 0x310]
push ecx
lea edx, [ebp - 0x410]
push edx
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x20c]
push edx
call fcn.00414657
add esp, 0x14
push 0x431634
push str.CopyProt
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x20c]
push edx
call fcn.004145c6
add esp, 0x14
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.0041533f
add esp, 8
test eax, eax
je 0x40bb14
push 0x431644
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00414370
add esp, 8
jmp 0x40bb2a
push str.CopyProt.rsi
lea edx, [ebp - 0x20c]
push edx
call fcn.00414370
add esp, 8
push 0x8000
lea eax, [ebp - 0x20c]
push eax
call fcn.00415059
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x40bbdb
mov ecx, dword [ebp - 4]
push ecx
call fcn.00414fcf
add esp, 4
mov dword [0x4388f4], eax
cmp dword [0x4388f4], 0
jle 0x40bbcf
cmp dword [0x4388f0], 0
je 0x40bb7d
mov edx, dword [0x4388f0]
push edx
call fcn.00413e21
add esp, 4
mov dword [0x4388ec], 0
mov eax, dword [0x4388f4]
push eax
call fcn.00413e69
add esp, 4
mov dword [0x4388f0], eax
cmp dword [0x4388f0], 0
je 0x40bbcf
mov ecx, dword [0x4388f4]
push ecx
mov edx, dword [0x4388f0]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.00414d91
add esp, 0xc
cmp eax, dword [0x4388f4]
jne 0x40bbcf
mov dword [0x4388ec], 1
mov ecx, dword [ebp - 4]
push ecx
call fcn.00414cb1
add esp, 4
mov eax, dword [0x4388ec]
mov esp, ebp
pop ebp
ret

Function at 0x40bcac
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40bcef
push 2
push 0
push 0
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00413c90
add esp, 4
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esp, ebp
pop ebp
ret

Function at 0x40bd2f
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0x104
lea eax, [ebp - 4]
push eax
push 0x4384d0
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
jne 0x40bd5f
push str.User_
push 0x4384d0
call fcn.00414370
add esp, 8
mov eax, 0x4384d0
mov esp, ebp
pop ebp
ret

Function at 0x40bd68
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0x105
lea eax, [ebp - 4]
push eax
push 0x4383c8
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
test eax, eax
jne 0x40bd98
push str.Computer_
push 0x4383c8
call fcn.00414370
add esp, 8
mov eax, 0x4383c8
mov esp, ebp
pop ebp
ret
Function at 0x40c901
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00412144
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40c92b
mov eax, dword [ebp - 4]
jmp 0x40ca17
lea edx, [ebp - 8]
push edx
mov ax, word [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040c530
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40c961
mov edx, dword [ebp - 4]
push edx
movsx eax, word [ebp + 0xc]
push eax
push 3
call fcn.00412a9b
add esp, 0xc
jmp 0x40ca17
push 0x80
push 0x4389ac
call fcn.0040e5b0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40c984
mov eax, dword [ebp - 4]
jmp 0x40ca17
push 0x4389ac
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40c9af
push 0x4389ac
call fcn.00411a16
push eax
movsx ecx, word [ebp + 0xc]
push ecx
push 4
call fcn.00412a9b
add esp, 0x10
jmp 0x40ca17
movsx edx, byte [0x438ab0]
test edx, edx
je 0x40ca15
push 0x438ab0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40ca15
push 0x80
push 0x438ab0
call fcn.0040e5b0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40c9ea
mov eax, dword [ebp - 4]
jmp 0x40ca17
push 0x438ab0
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40ca15
push 0x438ab0
call fcn.00411a16
push eax
movsx eax, word [ebp + 0xc]
push eax
push 4
call fcn.00412a9b
add esp, 0x10
jmp 0x40ca17
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x40d23a
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax + 8]
cmp ecx, 1
jle 0x40d348
mov edx, dword [ebp + 0xc]
movsx eax, word [edx + 8]
sub eax, 1
imul eax, eax, 0x94
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
add ecx, 0xac
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0x10], 0
jbe 0x40d348
cmp dword [ebp - 0x10], 0x7fff
jbe 0x40d28a
mov word [ebp - 8], 0x7fff
jmp 0x40d292
mov dx, word [ebp - 0x10]
mov word [ebp - 8], dx
mov eax, dword [ebp - 8]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00414d91
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
and eax, 0xffff
cmp dword [ebp - 4], eax
je 0x40d322
mov ecx, dword [ebp - 8]
and ecx, 0xffff
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00414d91
add esp, 0xc
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
and ecx, 0xffff
cmp dword [ebp - 4], ecx
je 0x40d322
mov edx, dword [ebp + 8]
push edx
call fcn.00414cb1
add esp, 4
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp - 8]
and ecx, 0xffff
push ecx
call fcn.00411a16
push eax
mov edx, dword [ebp + 0xc]
movsx eax, word [edx + 0x16]
push eax
mov ecx, dword [ebp + 0xc]
movsx edx, word [ecx + 0x14]
push edx
push 0xa
call fcn.00412a9b
add esp, 0x18
jmp 0x40d34a
mov eax, dword [ebp - 8]
and eax, 0xffff
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 8]
and edx, 0xffff
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0xc], eax
jmp 0x40d26f
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x40e5b0
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
call fcn.00412279
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x40e5e4
mov edx, dword [ebp + 8]
push edx
call fcn.00411a16
push eax
mov eax, dword [ebp + 0xc]
push eax
push 0xd
call fcn.00412a9b
add esp, 0x10
jmp 0x40e5e6
xor eax, eax
pop ebp
ret
Function at 0x40f024
Capabilities:
Check if file exists
Delete file
Get file attributes
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov dword [ebp - 0x114], 0xffffffff
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0040e25c
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x40f06a
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
push eax
mov ecx, dword [ebp - 8]
push ecx
push 0x35
call fcn.00412a9b
add esp, 0xc
jmp 0x40f2a1
cmp dword [ebp - 4], 0
jne 0x40f086
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
push eax
push 0x36
call fcn.00412a9b
add esp, 8
jmp 0x40f2a1
mov ecx, dword [ebp + 8]
mov dl, byte [ecx]
mov byte [ebp - 0x10c], dl
mov byte [ebp - 0x10b], 0
push 0x436608
lea eax, [ebp - 0x10c]
push eax
call fcn.00414380
add esp, 8
push str.EVTEST.TMP
lea ecx, [ebp - 0x10c]
push ecx
call fcn.00414380
add esp, 8
push 0x180
push 0x20
push 0x8302
lea edx, [ebp - 0x10c]
push edx
call fcn.00415070
add esp, 0x10
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0xffffffff
jne 0x40f134
lea eax, [ebp - 0x10c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40f118
call fcn.00411a16
push eax
lea ecx, [ebp - 0x10c]
push ecx
push 0x37
call fcn.00412a9b
add esp, 0xc
jmp 0x40f2a1
call fcn.00411a16
push eax
lea edx, [ebp - 0x10c]
push edx
push 0x38
call fcn.00412a9b
add esp, 0xc
jmp 0x40f2a1
push 0x15
push str.abcde12345zyxwv09876
mov eax, dword [ebp - 0x114]
push eax
call fcn.00415b4b
add esp, 0xc
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0x15
je 0x40f18d
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00414cb1
add esp, 4
call fcn.00411a16
push eax
mov edx, dword [ebp - 0x110]
push edx
push 0x15
lea eax, [ebp - 0x10c]
push eax
push 0x39
call fcn.00412a9b
add esp, 0x14
jmp 0x40f2a1
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00414cb1
add esp, 4
push 0x20
push 0x8000
lea edx, [ebp - 0x10c]
push edx
call fcn.00415070
add esp, 0xc
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0xffffffff
jne 0x40f1dd
lea eax, [ebp - 0x10c]
push eax
call fcn.00411a16
push eax
push 0x3a
call fcn.00412a9b
add esp, 0xc
jmp 0x40f2a1
push 0x15
push 0x43896c
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.00414d91
add esp, 0xc
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0x15
je 0x40f258
push 0x15
push 0x43896c
mov edx, dword [ebp - 0x114]
push edx
call fcn.00414d91
add esp, 0xc
mov dword [ebp - 0x110], eax
cmp dword [ebp - 0x110], 0x15
je 0x40f258
mov eax, dword [ebp - 0x114]
push eax
call fcn.00414cb1
add esp, 4
mov ecx, dword [ebp - 0x110]
push ecx
push 0x15
call fcn.00411a16
push eax
lea edx, [ebp - 0x10c]
push edx
push 0x3b
call fcn.00412a9b
add esp, 0x14
jmp 0x40f2a1
mov eax, dword [ebp - 0x114]
push eax
call fcn.00414cb1
add esp, 4
lea ecx, [ebp - 0x10c]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x15
push 0x43896c
push str.abcde12345zyxwv09876
call fcn.00415fe0
add esp, 0xc
test eax, eax
je 0x40f29f
lea edx, [ebp - 0x10c]
push edx
push 0x3c
call fcn.00412a9b
add esp, 8
jmp 0x40f2a1
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x40f32b
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
call fcn.00412279
mov dword [ebp - 8], eax
push 0x43660c
lea eax, [ebp - 0x10]
push eax
call fcn.00414370
add esp, 8
mov ecx, dword [ebp + 8]
mov dl, byte [ecx]
mov byte [ebp - 0x10], dl
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 8]
push ecx
call fcn.00412286
add esp, 4
cmp dword [ebp - 4], 2
jne 0x40f378
mov eax, 2
jmp 0x40f3a1
cmp dword [ebp - 4], 4
jne 0x40f385
mov eax, 3
jmp 0x40f3a1
cmp dword [ebp - 4], 3
jne 0x40f392
mov eax, 1
jmp 0x40f3a1
cmp dword [ebp - 4], 5
jne 0x40f39f
mov eax, 4
jmp 0x40f3a1
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x411c6c
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x258
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x248]
push ecx
call fcn.00414370
add esp, 8
push 0x4366f8
lea edx, [ebp - 0x248]
push edx
call fcn.00414380
add esp, 8
push 0x13e
push 0
lea eax, [ebp - 0x140]
push eax
call fcn.004138a0
add esp, 0xc
lea ecx, [ebp - 0x140]
push ecx
lea edx, [ebp - 0x248]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0xffffffff
je 0x411ea3
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x248]
push ecx
call fcn.00414370
add esp, 8
movsx edx, byte [ebp - 0x10]
test edx, edx
je 0x411cff
lea eax, [ebp - 0x10]
mov dword [ebp - 0x250], eax
jmp 0x411d0b
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x250], ecx
mov edx, dword [ebp - 0x250]
push edx
lea eax, [ebp - 0x248]
push eax
call fcn.00414380
add esp, 8
movsx ecx, byte [ebp - 0x10]
test ecx, ecx
je 0x411d34
lea edx, [ebp - 0x10]
mov dword [ebp - 0x254], edx
jmp 0x411d40
lea eax, [ebp - 0x114]
mov dword [ebp - 0x254], eax
push 0x4366fc
mov ecx, dword [ebp - 0x254]
push ecx
call fcn.00416120
add esp, 8
test eax, eax
je 0x411e75
movsx edx, byte [ebp - 0x10]
test edx, edx
je 0x411d6f
lea eax, [ebp - 0x10]
mov dword [ebp - 0x258], eax
jmp 0x411d7b
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x258], ecx
push 0x436700
mov edx, dword [ebp - 0x258]
push edx
call fcn.00416120
add esp, 8
test eax, eax
je 0x411e75
mov eax, dword [ebp - 0x140]
and eax, 0x10
test eax, eax
je 0x411e13
lea ecx, [ebp - 0x248]
push ecx
call fcn.00413c90
add esp, 4
movsx edx, byte [ebp + eax - 0x249]
cmp edx, 0x5c
je 0x411dd4
push 0x436704
lea eax, [ebp - 0x248]
push eax
call fcn.00414380
add esp, 8
lea ecx, [ebp - 0x248]
push ecx
call fcn.00411c6c
add esp, 4
test eax, eax
je 0x411e11
lea edx, [ebp - 0x248]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00414370
add esp, 8
mov ecx, dword [ebp - 0x144]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
jmp 0x411ea5
jmp 0x411e75
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
lea edx, [ebp - 0x248]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x24c], eax
cmp dword [ebp - 0x24c], 0xffffffff
je 0x411e75
mov eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x248]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00414370
add esp, 8
mov eax, dword [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
jmp 0x411ea5
lea ecx, [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x144]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x411e9e
mov eax, dword [ebp - 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
xor eax, eax
jmp 0x411ea5
jmp 0x411ccc
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x411ea9
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_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x411efb
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0xffffffff
je 0x411efb
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
and edx, 1
cmp edx, 1
jne 0x411ef4
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
and ecx, 0xfffffffe
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0040e5b0
add esp, 8
mov eax, 1
jmp 0x411efd
xor eax, eax
pop ebp
ret

Function at 0x412208
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
movsx eax, word [ebp + 8]
add eax, 0x41
movsx ecx, al
push ecx
push str._c:_
lea edx, [ebp - 4]
push edx
call fcn.004138f8
add esp, 0xc
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
jne 0x412263
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
call fcn.00411a16
push eax
push 0x6b
call fcn.00412a9b
add esp, 8
jmp 0x412275
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x412821
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
mov dword [ebp - 8], 0
mov dword [ebp - 0xbc], 0xffffffff
mov dword [ebp - 0xb8], 0
mov dword [ebp - 4], 0
push 1
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xb4]
push ecx
mov dx, word [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0040d437
add esp, 0x14
test eax, eax
jne 0x41291f
lea ecx, [ebp - 0xc0]
push ecx
mov edx, dword [ebp - 0xbc]
push edx
call fcn.004119c4
add esp, 8
test eax, eax
je 0x41291f
lea eax, [ebp - 4]
push eax
push 0x4389ac
call fcn.00411ea9
add esp, 8
mov dword [ebp - 0xb8], eax
movsx ecx, word [ebp - 0xac]
imul ecx, ecx, 0x3e8
mov edx, dword [ebp - 0xc0]
add edx, ecx
push edx
push 0
mov eax, dword [ebp - 0xbc]
push eax
call fcn.00411f16
add esp, 0xc
test eax, eax
jne 0x4128de
mov dword [ebp - 8], 1
jmp 0x412905
movsx ecx, word [ebp - 0xac]
imul ecx, ecx, 0x3e8
mov edx, dword [ebp - 0xc0]
add edx, ecx
push edx
push 0
mov eax, dword [ebp - 0xbc]
push eax
call fcn.00411fc7
add esp, 0xc
cmp dword [ebp - 0xb8], 0
je 0x41291f
mov ecx, dword [ebp - 4]
push ecx
push 0x4389ac
call fcn.00411eff
add esp, 8
cmp dword [ebp - 0xbc], 0xffffffff
je 0x412937
mov edx, dword [ebp - 0xbc]
push edx
call fcn.00414cb1
add esp, 4
cmp dword [ebp - 8], 0
je 0x412993
mov eax, dword [0x4316f8]
push eax
push 0x4389ac
call fcn.0040e5b0
add esp, 8
movsx ecx, byte [0x438ab0]
test ecx, ecx
je 0x41297f
push 0x438ab0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x41297f
mov edx, dword [0x4316fc]
push edx
push 0x438ab0
call fcn.0040e5b0
add esp, 8
push 0x4389ac
push 0x8e
call fcn.00412a9b
add esp, 8
jmp 0x412995
xor eax, eax
mov esp, ebp
pop ebp
ret

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x41535f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0041608c
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x415382
test byte [esp + 8], 2
je 0x415382
call fcn.004160ff
mov dword [eax], 0xd
call fcn.00416108
mov dword [eax], 5
jmp 0x41535b
xor eax, eax
ret