joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42e7a0
Capabilities:
Get disk size

Disassembly:
push 0xffffffffffffffff
push 0x43ab18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push esi
push edi
xor edi, edi
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x3c]
call fcn.00401b80
mov esi, 0x43b30c
mov dword [esp + 0x34], esi
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x94], edi
call fcn.00401b80
mov dword [esp + 0x44], esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x8c], 1
call fcn.00405660
lea ecx, [esp + 0x64]
mov byte [esp + 0x8c], 2
call fcn.00405660
lea ecx, [esp + 0x74]
mov byte [esp + 0x8c], 3
call fcn.00405660
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x30]
push eax
mov byte [esp + 0x90], 4
mov dword [esp + 0x34], 0x43c450
call fcn.004339d0
lea ecx, [esp + 0x20]
mov dword [esp + 0x8c], 5
push ecx
lea ecx, [esp + 0x34]
call fcn.0042e9e0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
push edx
lea ecx, [esp + 0x24]
mov byte [esp + 0x90], 6
call dword [eax + 4]
mov esi, dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x10]
push ecx
lea eax, [esp + 0x10]
push edx
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x10]
push eax
push ecx
push edx
call esi
test eax, eax
jne 0x42e971
mov eax, dword [esp + 0x28]
cmp eax, edi
jle 0x42e8c5
mov ecx, dword [esp + 0x24]
mov dl, byte [ecx + eax - 1]
push edx
push 0x445cf4
call fcn.004074d0
add esp, 8
test al, al
mov eax, dword [esp + 0x28]
je 0x42e8c5
dec eax
cmp eax, edi
mov dword [esp + 0x28], eax
jg 0x42e89e
push ebx
push eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x28]
call dword [eax + 4]
mov ecx, dword [esp + 0x2c]
mov bl, byte [0x43c490]
push 1
push ecx
lea ecx, [esp + 0x2c]
call fcn.00401e70
mov byte [eax], bl
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
push edx
lea ecx, [esp + 0x28]
call dword [eax + 4]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x14]
push edx
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x14]
push eax
push ecx
push edx
call esi
test eax, eax
pop ebx
jne 0x42e971
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], 0x43b2e8
cmp eax, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
je 0x42e93f
push eax
call fcn.0041b6a9
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x20], 0x43b2dc
mov dword [esp + 0x8c], 0xffffffff
call fcn.00433910
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
add esp, 0x88
ret
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x24]
imul esi, dword [esp + 0xc]
imul esi, dword [esp + 0x10]
cmp eax, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], 0x43b2e8
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
je 0x42e9a8
push eax
call fcn.0041b6a9
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x20], 0x43b2dc
mov dword [esp + 0x8c], 0xffffffff
call fcn.00433910
mov ecx, dword [esp + 0x84]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x88
ret
Function at 0x42eaa0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push esi
push 0
push 0
call ebp
mov esi, eax
test esi, esi
jne 0x42eab9
pop esi
xor al, al
pop ebp
ret
push ebx
push edi
push esi
call fcn.0041c812
add esp, 4
mov edi, eax
mov bl, 1
push edi
push esi
call ebp
test eax, eax
jne 0x42eae2
push edi
xor bl, bl
call fcn.0041b7af
add esp, 4
mov al, bl
pop edi
pop ebx
pop esi
pop ebp
ret
mov ecx, dword [esp + 0x14]
push edi
call fcn.0042a1a0
push edi
call fcn.0041b7af
add esp, 4
mov al, bl
pop edi
pop ebx
pop esi
pop ebp
ret

Function at 0x42eb00
Capabilities:
Set file attributes

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
neg eax
sbb eax, eax
neg eax
ret

Function at 0x42ebb0
Capabilities:
Access peb ldr_data
Get disk information
Get ntdll base address
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x43ab88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push esi
push edi
xor edi, edi
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x28]
call fcn.00401b80
mov esi, 0x43b30c
mov dword [esp + 0x20], esi
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x38]
mov dword [esp + 0x80], edi
call fcn.00401b80
mov dword [esp + 0x30], esi
push 0xffffffffffffffff
push edi
lea ecx, [esp + 0x48]
mov byte [esp + 0x80], 1
call fcn.00401b80
mov dword [esp + 0x40], esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x78], 2
call fcn.00405660
lea ecx, [esp + 0x60]
mov byte [esp + 0x78], 3
call fcn.00405660
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x1c]
push eax
mov byte [esp + 0x7c], 4
mov dword [esp + 0x20], 0x43c450
call fcn.004339d0
lea ecx, [esp + 0xc]
mov dword [esp + 0x78], 5
push ecx
lea ecx, [esp + 0x20]
call fcn.0042e9e0
mov esi, eax
mov eax, dword [esi + 8]
mov edx, dword [esi]
push eax
mov ecx, esi
mov byte [esp + 0x7c], 6
call dword [edx + 4]
mov esi, dword [esi + 4]
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
mov eax, dword [esp + 0x10]
sete bl
cmp eax, edi
mov dword [esp + 0xc], 0x43b2e8
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
je 0x42eca8
push eax
call fcn.0041b6a9
add esp, 4
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc], 0x43b2dc
mov dword [esp + 0x78], 0xffffffff
call fcn.00433910
mov ecx, dword [esp + 0x70]
pop edi
mov al, bl
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret
Function at 0x42ece0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x43abd8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push esi
xor esi, esi
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x24]
call fcn.00401b80
mov dword [esp + 0x1c], 0x43b30c
push 0xffffffffffffffff
push esi
lea ecx, [esp + 0x34]
mov dword [esp + 0x7c], esi
call fcn.00401b80
mov dword [esp + 0x2c], 0x43b30c
lea ecx, [esp + 0x3c]
mov byte [esp + 0x74], 1
call fcn.00405660
lea ecx, [esp + 0x4c]
mov byte [esp + 0x74], 2
call fcn.00405660
lea ecx, [esp + 0x5c]
mov byte [esp + 0x74], 3
call fcn.00405660
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0x78], 4
mov dword [esp + 0x1c], 0x43c450
call fcn.004339d0
lea ecx, [esp + 8]
mov dword [esp + 0x74], 5
push ecx
lea ecx, [esp + 0x1c]
call fcn.0042e9e0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x74], 6
cmp eax, esi
jle 0x42edb7
mov edx, dword [esp + 0xc]
mov al, byte [edx + eax - 1]
push eax
push 0x445cf4
call fcn.004074d0
add esp, 8
test al, al
mov eax, dword [esp + 0x10]
je 0x42edb7
dec eax
cmp eax, esi
mov dword [esp + 0x10], eax
jg 0x42ed90
mov edx, dword [esp + 8]
push eax
lea ecx, [esp + 0xc]
call dword [edx + 4]
mov eax, dword [esp + 0x10]
mov bl, byte [0x43c490]
push 1
push eax
lea ecx, [esp + 0x10]
call fcn.00401e70
mov byte [eax], bl
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
push ecx
lea ecx, [esp + 0xc]
call dword [edx + 4]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0xc]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelA]
test eax, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], 0x43b2e8
setne bl
cmp eax, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
je 0x42ee28
push eax
call fcn.0041b6a9
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 8], 0x43b2dc
mov dword [esp + 0x74], 0xffffffff
call fcn.00433910
mov ecx, dword [esp + 0x6c]
mov al, bl
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x70
ret

Function at 0x42ee70
Capabilities:
Delete file

Disassembly:
push esi
mov esi, dword [esp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x42ee93
mov al, byte [esp + 0xc]
test al, al
je 0x42ee97
push esi
push 0x71
call fcn.00428930
add esp, 8
mov al, 1
pop esi
ret
xor al, al
pop esi
ret

Function at 0x42eea0
Capabilities:
Move file

Disassembly:
mov eax, dword [esp + 8]
push esi
mov esi, dword [esp + 8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
jne 0x42eec8
mov al, byte [esp + 0x10]
test al, al
je 0x42eecc
push esi
push 0x72
call fcn.00428930
add esp, 8
mov al, 1
pop esi
ret
xor al, al
pop esi
ret
Function at 0x430e90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x43ac06
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [esp + 8], esi
lea ecx, [esi + 0x30]
call fcn.0042a8c0
xor edi, edi
lea ecx, [esi + 0x40]
mov dword [esp + 0x14], edi
call fcn.0042a8c0
lea ecx, [esi + 0x50]
mov byte [esp + 0x14], 1
call fcn.0042a8c0
mov dword [esi], 0x43c454
mov ax, word [0x44989c]
mov cl, byte [0x44989e]
mov dx, word [0x449898]
mov word [0x449891], ax
mov al, byte [0x44989a]
mov byte [0x449893], cl
mov ecx, dword [esp + 0xc]
mov word [0x449895], dx
mov byte [0x449897], al
mov dword [esi + 0x24], edi
mov word [esi + 0x10], di
mov word [esi + 0x12], di
mov word [esi + 8], di
mov dword [esi + 0x2c], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], edi
mov word [esi + 0x28], di
mov word [esi + 0x2a], di
mov word [esi + 0xe], 8
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x4365a5
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4365c5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004217fb
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x4365e8
test byte [esp + 8], 2
je 0x4365e8
call fcn.0042186e
mov dword [eax], 0xd
call fcn.00421877
mov dword [eax], 5
jmp 0x4365c1
xor eax, eax
ret

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

Disassembly:
pushal
nop
nop
mov eax, section..text
nop
nop
nop
nop
push 4
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
je 0x430072
nop
nop
nop
mov ebx, 0x408ecc
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
push eax
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x77bf3a0c
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x430060
nop
nop
nop
nop
mov eax, section..data
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x4300d2
nop
nop
mov ebx, 0x42e1d0
nop
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
pop eax
nop
nop
nop
nop
nop
mov esi, 0x5ff2726f
nop
nop
nop
nop
xor dword [eax], esi
nop
add eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
loop 0x4300c0
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x401b66
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x410004]
jne 0x401b70
repz ret
jmp fcn.0040324d

Function at 0x408313
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
pushal
call 0x408322
pop dword [ebp - 0x40]
mov eax, 0x408322
sub dword [ebp - 0x40], eax
mov dword [ebp - 0x50], 0xd3d004c5
add dword [ebp - 0x50], 0x7a824086
mov dword [ebp - 0x4c], 0xcbc100c2
sub dword [ebp - 0x4c], 0x998db47d
mov dword [ebp - 0x48], 0x7eedee9d
add dword [ebp - 0x48], 0xcd5e5591
mov dword [ebp - 0x44], 0x829c9740
sub dword [ebp - 0x44], 0x829c9740
lea eax, [ebp - 0x50]
push eax
mov eax, 0xfb11624a
sub eax, 0xfad091fe
add eax, dword [ebp - 0x40]
call dword [eax]
mov dword [ebp - 0x50], 0x3e3766e
sub dword [ebp - 0x50], 0x8f710d18
mov dword [ebp - 0x4c], 0x660f93ce
add dword [ebp - 0x4c], 0xdb5ccda7
mov dword [ebp - 0x48], 0x9f702788
add dword [ebp - 0x48], 0xc3ff44e4
mov dword [ebp - 0x44], 0x6ad0f7d7
add dword [ebp - 0x44], 0x952f0829
lea ebx, [ebp - 0x50]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x40]
call dword [eax]
push 0x40
push 0x1000
push 0x35773
push 0
call eax
mov ecx, 0x4c0a6a26
add ecx, 0xb3f5cdee
mov edi, eax
mov ebx, 0xd622efe8
add ebx, 0x2a1ec018
add ebx, dword [ebp - 0x40]
mov edx, 0xeaa3bd2a
add edx, 0xe7291048
mov esi, dword [ebx]
add dword [ebp - 0x10], ebx
sub esi, edx
sub dword [ebp - 0x20], 0x865fb008
mov dword [edi], esi
xor dword [ebp - 0x20], eax
add edi, 4
add ebx, 0x93e67f0a
add ebx, 0x6c1980fa
loop 0x40843a
add eax, 0x2bbb0e0d
sub eax, 0x2bba3aea
mov ebx, eax
add eax, 0x23248aa9
sub eax, 0x23248aa4
mov ecx, 0x155707a4
add ecx, 0xeae8f85c
add ecx, dword [ebp - 0x40]
call ebx
leave
ret
Function at 0x40b6b3
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x428bd0]
jne 0x40b6bd
repz ret
jmp fcn.0040f34c

Function at 0x40db44
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x428bd0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004067fc
and dword [ebp - 0x14], 0
cmp dword [0x42ab2c], 0
mov dword [ebp - 0x18], eax
jne 0x40dbf7
push 0x404460
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x40dc9f
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x404454
push ebx
call edi
test eax, eax
je 0x40dc9f
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push 0x404444
push ebx
mov dword [0x42ab2c], eax
call edi
push eax
call esi
push 0x404430
push ebx
mov dword [0x42ab30], eax
call edi
push eax
call esi
push 0x404414
push ebx
mov dword [0x42ab34], eax
call edi
push eax
call esi
mov dword [0x42ab3c], eax
test eax, eax
je 0x40dbf7
push 0x4043fc
push ebx
call edi
push eax
call esi
mov dword [0x42ab38], eax
mov eax, dword [0x42ab38]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x40dc50
cmp dword [0x42ab3c], ecx
je 0x40dc50
push eax
call esi
push dword [0x42ab3c]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x40dc50
test ebx, ebx
je 0x40dc50
call edi
test eax, eax
je 0x40dc47
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40dc47
test byte [ebp - 8], 1
jne 0x40dc50
or dword [ebp + 0x10], 0x200000
jmp 0x40dc83
mov eax, dword [0x42ab30]
cmp eax, dword [ebp - 0x18]
je 0x40dc83
push eax
call esi
test eax, eax
je 0x40dc83
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40dc83
mov eax, dword [0x42ab34]
cmp eax, dword [ebp - 0x18]
je 0x40dc83
push eax
call esi
test eax, eax
je 0x40dc83
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x42ab2c]
call esi
test eax, eax
je 0x40dc9f
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x40dca1
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040b6b3
leave
ret
Function at 0x4246b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ecx
mov eax, 0x6b
mov edx, 0x72
mov word [0x7aebb8], ax
mov word [0x7aebbc], dx
mov ecx, 0x6e
mov edx, 0x65
xor eax, eax
push 0x7aebb8
mov dword [0x7aebc4], 0x320033
mov dword [0x7aebcc], 0x6c006c
mov word [0x7aebbe], cx
mov dword [0x7aebc0], 0x6c0065
mov dword [0x7aebc8], 0x64002e
mov word [0x7aebba], dx
mov word [0x7aebd0], ax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edx, dword [0x7aebb4]
lea ecx, [esp]
push ecx
push 0x40
mov dword [0x7aebb0], eax
mov eax, dword [0x42fc04]
push edx
push eax
mov byte [0x42ae7b], 0x65
mov dword [0x42ae71], 0x75747269
mov word [0x42ae75], 0x6c61
mov byte [0x42ae70], 0x56
mov word [0x42ae7c], 0x7463
mov byte [0x42ae7e], 0
mov dword [0x42ae77], 0x746f7250
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
pop ecx
ret

Function at 0x4247a0
Capabilities:
Delete directory
Get common file path
Manipulate console buffer
Read file on windows
Set console window title

Disassembly:
mov eax, 0x1864
call fcn.0040f510
cmp dword [0x7aebb4], 0x37
jne 0x424892
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
push 0x404688
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp]
push 0
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_MapUserPhysicalPages]
push 0
lea edx, [esp + 0xc68]
push edx
push 0x404694
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 0
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 4]
push ecx
push 0
lea edx, [esp + 0x14]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
push 0x4046ac
call dword [sym.imp.KERNEL32.dll_GlobalAddAtomA]
lea eax, [esp + 8]
push eax
push 0x4046c4
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeA]
push 0x404710
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
push 0
lea ecx, [esp + 0x468]
push ecx
push 0
push 0x4046e4
push 0
call dword [sym.imp.KERNEL32.dll_FoldStringW]
lea edx, [esp + 0x1064]
push edx
push 0
push 0x404790
push 0x4047b0
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push 0
push 0
push 0
push 0
push 0x4047fc
push 0x40481c
call dword [sym.imp.KERNEL32.dll_ReplaceFileA]
mov eax, dword [0x7afba8]
mov dword [esp], eax
mov eax, 0x5d1
add dword [esp], eax
mov ecx, dword [esp]
mov dl, byte [ecx + esi]
mov eax, dword [0x42fc04]
mov byte [eax + esi], dl
add esp, 0x1864
ret
Function at 0x424a30
Capabilities:
Manipulate console buffer
Move file

Disassembly:
mov eax, dword [0x7aebb4]
sub esp, 0x2dc
push ebx
push ebp
push esi
mov esi, dword [0x42fc04]
shr eax, 3
push edi
test eax, eax
je 0x424be3
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jmp 0x424a64
mov esi, dword [esp + 0x18]
cmp dword [0x7aebb4], 0x1c
jne 0x424a81
lea eax, [esp + 0x38]
push eax
push 0
lea ecx, [esp + 0x44]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov edx, dword [0x429320]
mov ecx, dword [0x429324]
mov eax, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0x28], edx
mov edx, dword [0x429328]
mov dword [esp + 0x2c], ecx
mov ecx, dword [0x42932c]
mov dword [esp + 0x14], eax
mov ebx, 0xc6ef3720
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], 0x20
jmp 0x424ac5
mov eax, dword [esp + 0x14]
mov edx, eax
mov ecx, eax
shr edx, 5
add edx, dword [esp + 0x34]
shl ecx, 4
add ecx, dword [esp + 0x24]
add eax, ebx
xor edx, ecx
xor edx, eax
sub edi, edx
mov ecx, edi
shl ecx, 4
mov dword [0x7aeb24], 0
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x28]
add dword [esp + 0x10], eax
cmp dword [0x7aebb4], 0x1be
lea ebp, [ebx + edi]
jne 0x424b1a
lea edx, [esp + 0x30]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov esi, edi
shr esi, 5
add esi, dword [esp + 0x2c]
cmp dword [0x7aebb4], 0x979
mov dword [0x7aeb28], 0xff6b3619
mov dword [0x7aeb2c], 0xffffffff
jne 0x424b5a
mov eax, dword [esp + 0x30]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
xor esi, ebp
xor dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
sub dword [esp + 0x14], eax
mov eax, dword [0x7aebb4]
cmp eax, 0x93
je 0x424b7a
add ebx, 0x61c88647
dec dword [esp + 0x1c]
jne 0x424ac1
cmp eax, 0x8d4
jne 0x424b96
lea ecx, [esp + 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esi], edx
mov dword [esi + 4], edi
cmp dword [0x7aebb4], 0x17
jne 0x424bd2
push 0
push 0
push 0
push 0x404538
push 0x4045c0
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressW]
lea eax, [esp + 0x98]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
add esi, 8
dec dword [esp + 0x20]
mov dword [esp + 0x18], esi
jne 0x424a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret
Function at 0x3532cc
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef8
mov ebx, edx
mov esi, eax
mov eax, ebx
call fcn.00354b0c
test esi, esi
jne 0x353302
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.00354bfc
jmp 0x353320
call sub.kernel32.dll_GetCommandLineA
mov edi, eax
mov edx, ebx
mov eax, edi
call fcn.00353170
mov edi, eax
test esi, esi
je 0x353320
cmp dword [ebx], 0
je 0x353320
dec esi
jmp 0x353309
add esp, 0x108
pop edi
pop esi
pop ebx
ret

Function at 0x353a14
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [0x3d6020]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x353aac
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x353a8c
xor eax, eax
push ebp
push 0x353a85
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x353ac8
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x353a8c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
movzx eax, word [0x3d6020]
and ax, 0xffc0
movzx edx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [0x3d6020], ax
mov esp, ebp
pop ebp
ret

Function at 0x3548d8
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x3d904c], 0
je 0x354939
cmp word [0x3d9220], 0xd7b2
jne 0x354901
cmp dword [0x3d9228], 0
jbe 0x354901
mov eax, 0x3d921c
call dword [0x3d9238]
push 0
lea eax, [esp + 4]
push eax
push 0x1e
push str.Runtime_error_____at_00000000
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x354960
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
pop edx
ret
cmp byte [0x3d602c], 0
jne 0x354955
push 0
push str.Error
push str.Runtime_error_____at_00000000
push 0
call sub.user32.dll_MessageBoxA
pop edx
ret

Function at 0x354a90
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
mov edi, eax
mov esi, dword [ebp + 0x10]
cmp dword [0x3d6030], 0
je 0x354ab6
mov edx, esi
mov eax, ebx
call dword [0x3d6030]
jmp 0x354ac5
mov eax, 8
call fcn.00352e80
mov dword [eax], ebx
mov dword [eax + 4], esi
mov byte [0x3d904d], 1
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 0xc]
push edx
push eax
mov eax, 0x354a58
push eax
mov eax, dword [ebp - 4]
push eax
push edi
call sub.kernel32.dll_CreateThread
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0xc