joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4eac26
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
push ebx
push esi
push edi
mov ebx, ecx
call fcn.004e61e9
test eax, eax
jne 0x4eacb7
lea eax, [ebp - 0x100]
push 0x100
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov esi, 0x542038
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [ebp + edx - 0x100], 0x5c
repne scasb al, byte es:[edi]
not ecx
mov eax, ecx
lea edi, [ebp + edx - 0xff]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x100]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.004e6204
test eax, eax
jl 0x4eacb9
mov ecx, ebx
call fcn.004e61fd
cmp eax, 0x100000
jbe 0x4eacb7
mov ecx, ebx
call fcn.004e63fd
lea eax, [ebp - 0x100]
mov ecx, ebx
push eax
call fcn.004e6204
test eax, eax
jl 0x4eacb9
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x4eeb64
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push 8
call fcn.004f1e92
xor esi, esi
inc esi
cmp dword [0x55f43c], esi
pop ecx
jne 0x4eeb8c
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
cmp dword [ebp + 0xc], 0
mov al, byte [ebp + 0x10]
mov dword [0x55f438], esi
mov byte [0x55f434], al
jne 0x4eebf2
mov ecx, dword [0x560c6c]
test ecx, ecx
je 0x4eebd3
mov eax, dword [0x560c68]
sub eax, 4
cmp eax, ecx
jmp 0x4eebcc
mov eax, dword [eax]
test eax, eax
je 0x4eebbe
call eax
mov eax, dword [0x560c68]
sub eax, 4
cmp eax, dword [0x560c6c]
mov dword [0x560c68], eax
jae 0x4eebb6
mov eax, 0x556634
mov esi, 0x55663c
cmp eax, esi
mov edi, eax
jae 0x4eebf2
mov eax, dword [edi]
test eax, eax
je 0x4eebeb
call eax
add edi, 4
cmp edi, esi
jb 0x4eebe3
mov eax, 0x556640
mov esi, 0x556648
cmp eax, esi
mov edi, eax
jae 0x4eec11
mov eax, dword [edi]
test eax, eax
je 0x4eec0a
call eax
add edi, 4
cmp edi, esi
jb 0x4eec02
cmp dword [ebp + 0x10], 0
pop edi
pop esi
je 0x4eec22
push 8
call fcn.004f1dfe
jmp 0x4eec34
push dword [ebp + 8]
mov dword [0x55f43c], 1
call fcn.004eeabd
pop ecx
pop ebp
ret
Function at 0x4ef590
Capabilities:
Accept command line arguments
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x544420
call fcn.004f0598
mov edi, 0x94
mov eax, edi
call fcn.004ed060
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x55f3fc], ecx
mov eax, dword [esi + 4]
mov dword [0x55f408], eax
mov edx, dword [esi + 8]
mov dword [0x55f40c], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x55f400], esi
cmp ecx, 2
je 0x4ef5f0
or esi, 0x8000
mov dword [0x55f400], esi
shl eax, 8
add eax, edx
mov dword [0x55f404], eax
xor esi, esi
push esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x4ef62b
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4ef62b
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x4ef643
cmp eax, 0x20b
je 0x4ef630
mov dword [ebp - 0x1c], esi
jmp 0x4ef657
cmp dword [ecx + 0x84], 0xe
jbe 0x4ef62b
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x4ef651
cmp dword [ecx + 0x74], 0xe
jbe 0x4ef62b
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push 1
call fcn.004f1edd
pop ecx
test eax, eax
jne 0x4ef66b
push 0x1c
call fcn.004ef56c
pop ecx
call fcn.004f3546
test eax, eax
jne 0x4ef67c
push 0x10
call fcn.004ef56c
pop ecx
call fcn.004f7002
mov dword [ebp - 4], esi
call fcn.004f885b
test eax, eax
jge 0x4ef695
push 0x1b
call fcn.004ef547
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x560c60], eax
call fcn.004f8739
mov dword [0x55f440], eax
call fcn.004f8697
test eax, eax
jge 0x4ef6bb
push 8
call fcn.004ef547
pop ecx
call fcn.004f8464
test eax, eax
jge 0x4ef6cc
push 9
call fcn.004ef547
pop ecx
call fcn.004eeaff
mov dword [ebp - 0x20], eax
cmp eax, esi
je 0x4ef6df
push eax
call fcn.004ef547
pop ecx
mov dword [ebp - 0x38], esi
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.004f83fb
mov dword [ebp - 0x68], eax
test byte [ebp - 0x38], 1
je 0x4ef700
movzx eax, word [ebp - 0x34]
jmp 0x4ef703
push 0xa
pop eax
push eax
push dword [ebp - 0x68]
push esi
push esi
call edi
push eax
call fcn.004fc7dc
mov edi, eax
mov dword [ebp - 0x6c], edi
cmp dword [ebp - 0x1c], esi
jne 0x4ef721
push edi
call fcn.004eec37
call fcn.004eec59
jmp 0x4ef753
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.004f05d3
ret
Function at 0x4f06b9
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
mov edi, dword [ebp + 0x10]
xor ebx, ebx
test edi, edi
jne 0x4f06d6
call fcn.004f0b0b
mov dword [eax], 0x16
xor eax, eax
jmp 0x4f0740
push esi
push 0x88
push 1
call fcn.004f1677
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x4f072b
push esi
call fcn.004f3357
mov eax, dword [ebp + 0x14]
or dword [esi + 4], 0xffffffff
mov dword [esi + 0x50], eax
mov eax, dword [ebp + 0x1c]
test eax, eax
pop ecx
mov dword [esi + 0x4c], edi
jne 0x4f0709
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0x18]
push esi
push 0x4f0615
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x4f073f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push esi
call fcn.004ecfea
test ebx, ebx
pop ecx
je 0x4f073d
push ebx
call fcn.004f0b1d
pop ecx
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x4f6c4e
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
push 4
pop eax
call fcn.004ed060
mov ebx, esp
push 0x1c
lea eax, [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x4f6ce3
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x44]
lea esi, [eax - 1]
not esi
and esi, ebx
sub esi, eax
mov dword [ebp - 4], eax
mov eax, dword [0x55f3fc]
mov ecx, eax
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0xffff1000
add ecx, 0x11000
add ecx, edi
cmp esi, ecx
jb 0x4f6ce3
cmp eax, 1
je 0x4f6cfb
mov ebx, edi
mov edi, 0x1000
push 0x1c
lea eax, [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x4f6ce3
add ebx, dword [ebp - 0x18]
test dword [ebp - 0x14], edi
je 0x4f6cb8
test byte [ebp - 0xf], 1
mov ebx, dword [ebp - 0x24]
je 0x4f6cdf
xor eax, eax
inc eax
jmp 0x4f6d17
cmp esi, ebx
jae 0x4f6ce7
xor eax, eax
jmp 0x4f6d17
push 4
push edi
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov eax, dword [0x55f3fc]
jmp 0x4f6cfd
mov ebx, esi
dec eax
neg eax
sbb eax, eax
and eax, 0x103
lea ecx, [ebp - 8]
push ecx
inc eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4f7a1c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x420
mov eax, dword [0x5594e8]
xor eax, dword [ebp + 4]
push edi
xor edi, edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
jne 0x4f7a45
xor eax, eax
jmp 0x4f7bb3
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 8]
and eax, 0x1f
sar ebx, 5
push esi
lea esi, [eax + eax*8]
lea ebx, [ebx*4 + 0x55f8e0]
mov eax, dword [ebx]
shl esi, 2
test byte [eax + esi + 4], 0x20
je 0x4f7a78
push 2
push edi
push edi
push dword [ebp + 8]
call fcn.004fb670
add esp, 0x10
mov eax, dword [ebx]
add eax, esi
test byte [eax + 4], 0x80
je 0x4f7b4a
cmp dword [ebp + 0x10], edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], edi
jbe 0x4f7b85
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x420]
mov dword [ebp - 0xc], edi
cmp ecx, dword [ebp + 0x10]
jae 0x4f7ad3
mov edx, dword [ebp - 0x10]
inc dword [ebp - 0x10]
mov dl, byte [edx]
inc ecx
cmp dl, 0xa
jne 0x4f7ac4
inc dword [ebp - 0x18]
mov byte [eax], 0xd
inc eax
inc dword [ebp - 0xc]
mov byte [eax], dl
inc eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x400
jl 0x4f7aa7
mov edi, eax
lea eax, [ebp - 0x420]
sub edi, eax
push 0
lea eax, [ebp - 0x1c]
push eax
push edi
lea eax, [ebp - 0x420]
push eax
mov eax, dword [ebx]
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4f7b13
mov eax, dword [ebp - 0x1c]
add dword [ebp - 0x14], eax
cmp eax, edi
jl 0x4f7b1c
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp + 0xc]
xor edi, edi
cmp eax, dword [ebp + 0x10]
jb 0x4f7a98
jmp 0x4f7b1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 8], eax
xor edi, edi
mov eax, dword [ebp - 0x14]
cmp eax, edi
jne 0x4f7bae
cmp dword [ebp - 8], edi
je 0x4f7b85
push 5
pop esi
cmp dword [ebp - 8], esi
jne 0x4f7b77
call fcn.004f0b0b
mov dword [eax], 9
call fcn.004f0b14
mov dword [eax], esi
jmp 0x4f7b80
push edi
lea ecx, [ebp - 0x1c]
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4f7b6c
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], edi
mov dword [ebp - 0x14], eax
jmp 0x4f7b1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 8], eax
jmp 0x4f7b1e
push dword [ebp - 8]
call fcn.004f0b1d
pop ecx
or eax, 0xffffffff
jmp 0x4f7bb1
mov eax, dword [ebx]
test byte [eax + esi + 4], 0x40
je 0x4f7b9a
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x1a
jne 0x4f7b9a
xor eax, eax
jmp 0x4f7bb1
call fcn.004f0b0b
mov dword [eax], 0x1c
call fcn.004f0b14
mov dword [eax], edi
jmp 0x4f7b80
sub eax, dword [ebp - 0x18]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
pop edi
call fcn.004ecf23
leave
ret
Function at 0x4f7e09
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 8], 0
cmp dword [ebp + 0x10], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edx, ebx
je 0x4f7fcf
mov eax, dword [ebp + 8]
mov ecx, eax
and eax, 0x1f
sar ecx, 5
lea esi, [eax + eax*8]
lea edi, [ecx*4 + 0x55f8e0]
mov eax, dword [edi]
shl esi, 2
add eax, esi
mov cl, byte [eax + 4]
test cl, 2
jne 0x4f7fcf
test cl, 0x48
je 0x4f7e6f
mov al, byte [eax + 5]
cmp al, 0xa
je 0x4f7e6f
dec dword [ebp + 0x10]
mov byte [ebx], al
mov eax, dword [edi]
lea edx, [ebx + 1]
mov dword [ebp - 8], 1
mov byte [eax + esi + 5], 0xa
push 0
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0x10]
mov eax, dword [edi]
push edx
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4f7ec1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 5
pop esi
cmp eax, esi
jne 0x4f7ea9
call fcn.004f0b0b
mov dword [eax], 9
call fcn.004f0b14
mov dword [eax], esi
jmp 0x4f7eb9
cmp eax, 0x6d
je 0x4f7fcf
push eax
call fcn.004f0b1d
pop ecx
or eax, 0xffffffff
jmp 0x4f7fd1
mov eax, dword [edi]
mov edx, dword [ebp - 0xc]
add dword [ebp - 8], edx
lea ecx, [eax + esi + 4]
mov al, byte [ecx]
test al, al
jns 0x4f7fca
test edx, edx
je 0x4f7ee4
cmp byte [ebx], 0xa
jne 0x4f7ee4
or al, 4
jmp 0x4f7ee6
and al, 0xfb
mov byte [ecx], al
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 8]
add ecx, eax
cmp eax, ecx
mov dword [ebp + 0x10], eax
mov dword [ebp - 8], ecx
jae 0x4f7fc4
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
cmp al, 0x1a
je 0x4f7fb4
cmp al, 0xd
je 0x4f7f1a
mov byte [ebx], al
inc ebx
inc dword [ebp + 0x10]
jmp 0x4f7fa6
dec ecx
cmp dword [ebp + 0x10], ecx
jae 0x4f7f34
mov eax, dword [ebp + 0x10]
inc eax
cmp byte [eax], 0xa
jne 0x4f7f2f
add dword [ebp + 0x10], 2
jmp 0x4f7f88
mov dword [ebp + 0x10], eax
jmp 0x4f7fa2
inc dword [ebp + 0x10]
push 0
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp - 1]
push eax
mov eax, dword [edi]
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x4f7f5c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4f7fa2
cmp dword [ebp - 0xc], 0
je 0x4f7fa2
mov eax, dword [edi]
test byte [eax + esi + 4], 0x48
je 0x4f7f7d
mov al, byte [ebp - 1]
cmp al, 0xa
je 0x4f7f88
mov byte [ebx], 0xd
mov ecx, dword [edi]
mov byte [ecx + esi + 5], al
jmp 0x4f7fa5
cmp ebx, dword [ebp + 0xc]
jne 0x4f7f8d
cmp byte [ebp - 1], 0xa
jne 0x4f7f8d
mov byte [ebx], 0xa
jmp 0x4f7fa5
push 1
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.004f92fb
add esp, 0xc
cmp byte [ebp - 1], 0xa
je 0x4f7fa6
mov byte [ebx], 0xd
inc ebx
mov ecx, dword [ebp - 8]
cmp dword [ebp + 0x10], ecx
jb 0x4f7efe
jmp 0x4f7fc4
mov eax, dword [edi]
lea esi, [eax + esi + 4]
mov al, byte [esi]
test al, 0x40
jne 0x4f7fc4
or al, 2
mov byte [esi], al
sub ebx, dword [ebp + 0xc]
mov dword [ebp - 8], ebx
mov eax, dword [ebp - 8]
jmp 0x4f7fd1
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4f80e7
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x5594e8]
xor eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 4], eax
xor edx, edx
push edi
xor eax, eax
cmp ecx, dword [eax*8 + 0x55a090]
je 0x4f8114
inc eax
cmp eax, 0x12
jb 0x4f8105
mov esi, eax
shl esi, 3
cmp ecx, dword [esi + 0x55a090]
jne 0x4f8248
mov eax, dword [0x55f448]
cmp eax, 1
je 0x4f8223
cmp eax, edx
jne 0x4f8144
cmp dword [0x559640], 1
je 0x4f8223
cmp ecx, 0xfc
je 0x4f8248
push 0x104
lea eax, [ebp - 0x10c]
push eax
push edx
mov byte [ebp - 8], dl
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4f817d
lea eax, [ebp - 0x10c]
push str._program_name_unknown_
push eax
call fcn.004f6500
pop ecx
pop ecx
lea eax, [ebp - 0x10c]
push eax
lea edi, [ebp - 0x10c]
call fcn.004f01c0
inc eax
cmp eax, 0x3c
pop ecx
jbe 0x4f81bf
lea eax, [ebp - 0x10c]
push eax
call fcn.004f01c0
mov edi, eax
lea eax, [ebp - 0x10c]
sub eax, 0x3b
push 3
add edi, eax
push 0x524fec
push edi
call fcn.004fa1f0
add esp, 0x10
push edi
call fcn.004f01c0
push dword [esi + 0x55a094]
mov ebx, eax
call fcn.004f01c0
lea eax, [ebx + eax + 0x1c]
pop ecx
add eax, 3
pop ecx
and eax, 0xfffffffc
call fcn.004ed060
mov ebx, esp
push str.Runtime_Error__n_nProgram:
push ebx
call fcn.004f6500
push edi
push ebx
call fcn.004f6510
push 0x5445b8
push ebx
call fcn.004f6510
push dword [esi + 0x55a094]
push ebx
call fcn.004f6510
push 0x12010
push str.Microsoft_Visual_C_Runtime_Library
push ebx
call fcn.004fa0f4
add esp, 0x2c
jmp 0x4f8248
push edx
lea eax, [ebp + 8]
push eax
lea esi, [esi + 0x55a094]
push dword [esi]
call fcn.004f01c0
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea esp, [ebp - 0x118]
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
call fcn.004ecf23
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4fa0f4
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
xor ebx, ebx
cmp dword [0x55f7ec], ebx
push esi
push edi
jne 0x4fa174
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
je 0x4fa1af
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x5454ac
push edi
call esi
test eax, eax
mov dword [0x55f7ec], eax
je 0x4fa1af
push 0x54549c
push edi
call esi
push 0x545488
push edi
mov dword [0x55f7f0], eax
call esi
cmp dword [0x55f3fc], 2
mov dword [0x55f7f4], eax
jne 0x4fa174
push str.GetUserObjectInformationA
push edi
call esi
test eax, eax
mov dword [0x55f7fc], eax
je 0x4fa174
push str.GetProcessWindowStation
push edi
call esi
mov dword [0x55f7f8], eax
mov eax, dword [0x55f7f8]
test eax, eax
je 0x4fa1b9
call eax
test eax, eax
je 0x4fa1a0
lea ecx, [ebp - 4]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [0x55f7fc]
test eax, eax
je 0x4fa1a0
test byte [ebp - 8], 1
jne 0x4fa1b9
cmp dword [0x55f408], 4
jb 0x4fa1b3
or byte [ebp + 0x12], 0x20
jmp 0x4fa1d8
xor eax, eax
jmp 0x4fa1e8
or byte [ebp + 0x12], 4
jmp 0x4fa1d8
mov eax, dword [0x55f7f0]
test eax, eax
je 0x4fa1d8
call eax
mov ebx, eax
test ebx, ebx
je 0x4fa1d8
mov eax, dword [0x55f7f4]
test eax, eax
je 0x4fa1d8
push ebx
call eax
mov ebx, eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
call dword [0x55f7ec]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4faa67
Capabilities:
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
push edi
mov dword [ebp - 8], ebx
je 0x4faad2
push 0x3d
push dword [ebp + 8]
call fcn.004ede25
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
mov dword [ebp - 0xc], esi
je 0x4faad2
cmp dword [ebp + 8], esi
je 0x4faad2
xor eax, eax
cmp byte [esi + 1], al
sete al
mov dword [ebp - 4], eax
mov eax, dword [0x55f41c]
cmp eax, dword [0x55f420]
jne 0x4faab8
mov edi, eax
call fcn.004faa06
mov dword [0x55f41c], eax
cmp eax, ebx
jne 0x4fab11
cmp dword [ebp + 0xc], ebx
je 0x4faada
cmp dword [0x55f424], ebx
je 0x4faada
call fcn.004f5179
test eax, eax
je 0x4fab11
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret
cmp dword [ebp - 4], ebx
jne 0x4fac15
push 4
call fcn.004ecfd8
cmp eax, ebx
pop ecx
mov dword [0x55f41c], eax
je 0x4faad2
mov dword [eax], ebx
cmp dword [0x55f424], ebx
jne 0x4fab11
push 4
call fcn.004ecfd8
cmp eax, ebx
pop ecx
mov dword [0x55f424], eax
je 0x4faad2
mov dword [eax], ebx
mov ebx, dword [0x55f41c]
mov edi, esi
mov esi, dword [ebp + 8]
sub edi, esi
push esi
call fcn.004fa9b9
mov edi, eax
test edi, edi
pop ecx
jl 0x4fab6a
cmp dword [ebx], 0
je 0x4fab6a
lea esi, [ebx + edi*4]
push dword [esi]
call fcn.004ecfea
xor eax, eax
cmp dword [ebp - 4], eax
pop ecx
jne 0x4fab52
mov eax, dword [ebp + 8]
mov dword [esi], eax
jmp 0x4faba0
mov ecx, dword [esi + 4]
mov dword [esi], ecx
inc edi
add esi, 4
cmp dword [esi], eax
jne 0x4fab49
mov eax, edi
shl eax, 2
push eax
push ebx
call fcn.004efb78
test eax, eax
pop ecx
pop ecx
je 0x4faba0
jmp 0x4fab9b
cmp dword [ebp - 4], 0
jne 0x4fac0e
test edi, edi
jge 0x4fab7a
neg edi
lea eax, [edi*4 + 8]
push eax
push ebx
call fcn.004efb78
test eax, eax
pop ecx
pop ecx
je 0x4faad2
lea ecx, [eax + edi*4]
and dword [ecx + 4], 0
mov dword [ecx], esi
mov dword [0x55f41c], eax
cmp dword [ebp + 0xc], 0
je 0x4fabf7
push dword [ebp + 8]
call fcn.004f01c0
inc eax
inc eax
push eax
call fcn.004ecfd8
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x4fabf7
push dword [ebp + 8]
push esi
call fcn.004f6500
mov eax, esi
sub eax, dword [ebp + 8]
pop ecx
add eax, dword [ebp - 0xc]
pop ecx
and byte [eax], 0
mov ecx, dword [ebp - 4]
inc eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
test eax, eax
jne 0x4fabf0
or dword [ebp - 8], 0xffffffff
push esi
call fcn.004ecfea
pop ecx
cmp dword [ebp - 4], 0
je 0x4fac06
push dword [ebp + 8]
call fcn.004ecfea
pop ecx
mov eax, dword [ebp - 8]
jmp 0x4faad5
push esi
call fcn.004ecfea
pop ecx
xor eax, eax
jmp 0x4faad5
Function at 0x4fc17e
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x100c
call fcn.004ed060
mov eax, dword [0x5594e8]
xor eax, dword [ebp + 4]
push ebx
push esi
push 1
xor esi, esi
push esi
push dword [ebp + 8]
mov dword [ebp - 4], eax
call fcn.004f92fb
or ebx, 0xffffffff
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 8], eax
je 0x4fc2a8
push 2
push esi
push dword [ebp + 8]
call fcn.004f92fb
add esp, 0xc
cmp eax, ebx
je 0x4fc2a8
push edi
mov edi, dword [ebp + 0xc]
sub edi, eax
test edi, edi
jle 0x4fc24b
mov ebx, 0x1000
push ebx
lea eax, [ebp - 0x100c]
push esi
push eax
call fcn.004f0250
push 0x8000
push dword [ebp + 8]
call fcn.004fc5e1
add esp, 0x14
mov dword [ebp - 0xc], eax
cmp edi, ebx
mov eax, ebx
jge 0x4fc204
mov eax, edi
push eax
lea eax, [ebp - 0x100c]
push eax
push dword [ebp + 8]
call fcn.004f7a1c
add esp, 0xc
cmp eax, 0xffffffff
je 0x4fc224
sub edi, eax
test edi, edi
jg 0x4fc1fc
jmp 0x4fc23c
call fcn.004f0b14
cmp dword [eax], 5
jne 0x4fc239
call fcn.004f0b0b
mov dword [eax], 0xd
or esi, 0xffffffff
push dword [ebp - 0xc]
push dword [ebp + 8]
call fcn.004fc5e1
pop ecx
pop ecx
jmp 0x4fc293
jge 0x4fc293
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004f92fb
push dword [ebp + 8]
call fcn.004f083f
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
cmp esi, ebx
jne 0x4fc293
call fcn.004f0b0b
mov dword [eax], 0xd
call fcn.004f0b14
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi], eax
push 0
push dword [ebp - 8]
push dword [ebp + 8]
call fcn.004f92fb
add esp, 0xc
mov eax, esi
pop edi
jmp 0x4fc2aa
mov eax, ebx
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
pop esi
pop ebx
call fcn.004ecf23
leave
ret
Function at 0x4fdfa0
Capabilities:
Get disk information

Disassembly:
mov eax, 0x516ce9
call fcn.004ef84c
sub esp, 0x14c
mov eax, dword [0x5594e8]
xor eax, dword [ebp + 4]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push eax
push edi
mov esi, 0x104
push esi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
jne 0x4fdfea
push esi
push dword [ebp + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
jmp 0x4fe07f
push ebx
call fcn.004fd868
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
xor esi, esi
push edi
mov dword [ebp - 4], esi
call fcn.004fdf5e
mov ebx, dword [ebp + 8]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsUNCA]
test eax, eax
jne 0x4fe071
push esi
push esi
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
push eax
push esi
push esi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0x4fe074
test byte [ebp + 8], 2
jne 0x4fe03f
push edi
call dword [sym.imp.USER32.dll_CharUpperA]
test byte [ebp + 8], 4
jne 0x4fe071
lea eax, [ebp - 0x158]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x4fe071
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x12c]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor esi, esi
inc esi
lea ecx, [ebx - 0x10]
call fcn.00401200
mov eax, esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, dword [ebp + 4]
pop edi
pop esi
call fcn.004ecf23
leave
ret 8