joyce8/EMBER2024-capa huggingface dataset:
Function at 0x441690
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55cda8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
call fcn.004430e0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
je 0x4416e1
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
je 0x4416e1
mov eax, dword [ebp - 0x14]
jmp 0x441760
cmp dword [ebp - 0x10], 0
je 0x44175d
lea ecx, [ebp - 0x20]
call fcn.0040a490
mov dword [ebp - 4], 0
cmp dword [ebp - 0x10], 1
setne cl
movzx edx, cl
push edx
lea edx, [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
call fcn.00443300
movzx eax, al
test eax, eax
je 0x441744
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004b0c50
add esp, 4
mov eax, dword [ebp - 0x24]
jmp 0x441760
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.004b0c50
add esp, 4
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4425b0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55cf00
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x70]
call fcn.00440ba0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x4425fa
xor al, al
jmp 0x442721
mov dword [ebp - 0x28], 0
cmp dword [ebp - 0x24], 0
je 0x44262c
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004b0c15
add esp, 4
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x48]
push edx
mov eax, dword [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x442658
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x24]
jbe 0x44267d
mov byte [ebp - 0x2d], 0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x2d]
jmp 0x442721
lea ecx, [ebp - 0x20]
call fcn.0040a490
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], 0
jmp 0x4426a2
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
cmp edx, dword [ebp - 0x10]
jae 0x4426e1
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + eax*2]
test edx, edx
jne 0x4426df
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
lea edx, [ecx + eax*2]
push edx
lea ecx, [ebp - 0x20]
call fcn.0040a670
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp - 0x70]
call fcn.00407390
jmp 0x442699
mov edx, dword [ebp - 0x14]
xor eax, eax
cmp edx, dword [ebp - 0x10]
sete al
mov byte [ebp - 0x2e], al
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004b0c50
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x6c]
push ecx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x2e]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x444930
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d008
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
call fcn.004430e0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
je 0x444985
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x34]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x444985
mov al, 1
jmp 0x444a17
cmp dword [ebp - 0x10], 0
je 0x444a15
lea ecx, [ebp - 0x1c]
call fcn.0040a490
mov dword [ebp - 4], 0
cmp dword [ebp - 0x10], 1
setne dl
movzx eax, dl
push eax
lea edx, [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
call fcn.00443300
movzx ecx, al
test ecx, ecx
je 0x4449fc
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x28], eax
xor edx, edx
cmp dword [ebp - 0x28], 0
setne dl
mov byte [ebp - 0x1d], dl
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x1d]
jmp 0x444a17
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x30]
push eax
call fcn.004b0c50
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret

Function at 0x444a30
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d038
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
call fcn.004430e0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
je 0x444a7e
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
je 0x444a7e
mov al, 1
jmp 0x444b0c
cmp dword [ebp - 0x10], 0
je 0x444b0a
lea ecx, [ebp - 0x1c]
call fcn.0040a490
mov dword [ebp - 4], 0
cmp dword [ebp - 0x10], 1
setne cl
movzx edx, cl
push edx
lea edx, [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
call fcn.00443300
movzx eax, al
test eax, eax
je 0x444af1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov dword [ebp - 0x28], eax
xor eax, eax
cmp dword [ebp - 0x28], 0
setne al
mov byte [ebp - 0x1d], al
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x1d]
jmp 0x444b0c
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004b0c50
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x444b20
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d070
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x50]
call fcn.004430e0
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x54]
call fcn.004430e0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x10], 1
je 0x444b86
cmp dword [ebp - 0x14], 1
je 0x444b86
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x444b86
mov al, 1
jmp 0x444c74
cmp dword [ebp - 0x10], 0
jne 0x444b96
cmp dword [ebp - 0x14], 0
je 0x444c72
lea ecx, [ebp - 0x2c]
call fcn.0040a490
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.0040a490
mov byte [ebp - 4], 1
cmp dword [ebp - 0x10], 1
je 0x444bc3
cmp dword [ebp - 0x14], 1
je 0x444bc3
mov byte [ebp - 0x55], 1
jmp 0x444bc7
mov byte [ebp - 0x55], 0
movzx edx, byte [ebp - 0x55]
push edx
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
call fcn.00443e70
movzx edx, al
test edx, edx
je 0x444c43
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
mov dword [ebp - 0x3c], eax
xor ecx, ecx
cmp dword [ebp - 0x3c], 0
setne cl
mov byte [ebp - 0x2d], cl
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x40]
push eax
call fcn.004b0c50
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x2d]
jmp 0x444c74
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.004b0c50
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004b0c50
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x444e20
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d038
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x34]
call fcn.004430e0
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 1
je 0x444e70
push 0
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x444e70
mov al, 1
jmp 0x444f17
cmp dword [ebp - 0x10], 1
je 0x444e87
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x444f15
cmp dword [ebp - 0x10], 0
je 0x444f15
lea ecx, [ebp - 0x1c]
call fcn.0040a490
mov dword [ebp - 4], 0
cmp dword [ebp - 0x10], 1
setne cl
movzx edx, cl
push edx
lea edx, [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
call fcn.00443300
movzx eax, al
test eax, eax
je 0x444efc
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
push 0
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov dword [ebp - 0x28], eax
xor eax, eax
cmp dword [ebp - 0x28], 0
setne al
mov byte [ebp - 0x1d], al
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
push edx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x1d]
jmp 0x444f17
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.004b0c50
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4455b0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d138
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x38]
call fcn.00441690
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x445615
mov eax, dword [ebp - 0x10]
and eax, 0x10
jne 0x445615
mov ecx, dword [ebp - 0x10]
and ecx, 1
je 0x445615
mov edx, dword [ebp - 0x10]
and edx, 0xfffffffe
mov ecx, dword [ebp - 0x38]
call fcn.00444930
movzx edx, al
test edx, edx
jne 0x445615
xor al, al
jmp 0x4456c9
mov ecx, dword [ebp - 0x38]
call fcn.004430e0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
je 0x44563b
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x44563b
mov al, 1
jmp 0x4456c9
cmp dword [ebp - 0x14], 0
je 0x4456c7
lea ecx, [ebp - 0x20]
call fcn.0040a490
mov dword [ebp - 4], 0
cmp dword [ebp - 0x14], 1
setne cl
movzx edx, cl
push edx
lea edx, [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
call fcn.00443300
movzx eax, al
test eax, eax
je 0x4456ae
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x2c], eax
xor eax, eax
cmp dword [ebp - 0x2c], 0
setne al
mov byte [ebp - 0x21], al
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x30], ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.004b0c50
add esp, 4
mov al, byte [ebp - 0x21]
jmp 0x4456c9
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.004b0c50
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret

Function at 0x445b10
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setne al
mov esp, ebp
pop ebp
ret

Function at 0x445b40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x5be9c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp - 0x21c]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx]
xor eax, eax
mov word [edx], ax
xor ecx, ecx
mov word [ebp - 0x218], cx
lea edx, [ebp - 0x218]
push edx
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x21c]
call fcn.0040a670
cmp dword [ebp - 4], 0
jbe 0x445bbe
cmp dword [ebp - 4], 0x104
ja 0x445bbe
mov dword [ebp - 0x220], 1
jmp 0x445bc8
mov dword [ebp - 0x220], 0
mov al, byte [ebp - 0x220]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004c2ee0
mov esp, ebp
pop ebp
ret
Function at 0x445cf0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x5be9c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp - 0x21c]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x21c]
mov edx, dword [ecx]
xor eax, eax
mov word [edx], ax
xor ecx, ecx
mov word [ebp - 0x218], cx
lea edx, [ebp - 0x218]
push edx
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x21c]
call fcn.0040a670
cmp dword [ebp - 4], 0
jbe 0x445d6e
cmp dword [ebp - 4], 0x104
ja 0x445d6e
mov dword [ebp - 0x220], 1
jmp 0x445d78
mov dword [ebp - 0x220], 0
mov al, byte [ebp - 0x220]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004c2ee0
mov esp, ebp
pop ebp
ret
Function at 0x4466c0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55d2c2
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x5be9c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
mov dword [eax], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x2c]
mov dword [edx + 8], 0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x2c]
add eax, 0xc
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dword [ecx], 0
mov edx, dword [ebp - 0x10]
mov dword [edx + 4], 0
mov eax, dword [ebp - 0x10]
mov dword [eax + 8], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c]
add ecx, 0x18
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
mov dword [edx], 0
mov eax, dword [ebp - 0x14]
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], 0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x2c]
add edx, 0x24
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
mov dword [eax], 0
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x18]
mov dword [edx + 8], 0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x2c]
mov byte [eax + 0x30], 0
mov ecx, dword [ebp - 0x2c]
mov byte [ecx + 0x31], 0
mov edx, dword [ebp - 0x2c]
add edx, 0x38
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov ecx, dword [ebp - 0x2c]
add ecx, 0x68
call fcn.00446880
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x2c]
add eax, 0x8c
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ecx], 0
mov edx, dword [ebp - 0x28]
mov dword [edx + 4], 0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x2c]
mov byte [eax + 0x95], 0
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 0x98], 0
call fcn.00454240
mov edx, dword [ebp - 0x2c]
mov byte [edx + 0x94], al
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret

Function at 0x44a950
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], ecx
lea eax, [ebp - 4]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
push 0
push 0
call fcn.004c8b87
add esp, 0x18
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [ebp - 8]
mov ecx, dword [edx]
call fcn.0044a8c0
mov esp, ebp
pop ebp
ret 4
Function at 0x44b050
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp + 0xc]
mov dword [eax + 4], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
xor eax, eax
mov word [edx], ax
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
push ecx
push 0
lea edx, [ebp - 8]
push edx
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x44b0b1
cmp dword [ebp - 4], 0xea
je 0x44b0b1
mov eax, dword [ebp - 4]
jmp 0x44b14b
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x14]
cmp eax, dword [edx + 8]
jbe 0x44b0d4
mov ecx, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.0040a050
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x28]
call fcn.0044b010
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x10]
jbe 0x44b101
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
shr eax, 1
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 0x1c], edx
xor eax, eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov word [edx + ecx*2], ax
mov dword [ebp - 0x20], 0
jmp 0x44b12f
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx + ecx*2]
test eax, eax
je 0x44b13f
jmp 0x44b126
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 8

Function at 0x44c970
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 4]
test ecx, ecx
je 0x44c9a5
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 5]
test eax, eax
je 0x44c9a5
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 8]
mov dword [ecx], eax
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edx
mov al, 1
jmp 0x44c9eb
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x44c9cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x44c9cc
xor al, al
jmp 0x44c9eb
mov eax, dword [ebp - 8]
xor edx, edx
mov cl, 0x20
call fcn.004c9a70
mov ecx, dword [ebp - 4]
xor esi, esi
add eax, ecx
adc edx, esi
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x44d070
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0x10], ecx
mov dword [ebp - 8], 0
push 0
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 0xc], eax
xor edx, edx
cmp dword [ebp - 0xc], 0
setne dl
mov byte [ebp - 1], dl
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
mov al, byte [ebp - 1]
mov esp, ebp
pop ebp
ret 0xc

Function at 0x44d260
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 0xc]
cmp eax, dword [0x5c0874]
jbe 0x44d27d
mov ecx, dword [0x5c0874]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 8], 0
push 0
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 0xc], eax
xor ecx, ecx
cmp dword [ebp - 0xc], 0
setne cl
mov byte [ebp - 1], cl
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 8]
mov dword [edx], eax
mov al, byte [ebp - 1]
mov esp, ebp
pop ebp
ret 0xc

Function at 0x44d330
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [ebp - 4], 0
setne al
mov esp, ebp
pop ebp
ret

Function at 0x44dd70
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 8], 0x100000
mov eax, dword [ebp - 8]
cmp eax, dword [ebp + 0x10]
jbe 0x44dd8b
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
push 0
lea edx, [ebp - 0xc]
push edx
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 4], eax
cmp dword [ebp + 0x14], 0
je 0x44ddb9
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xc]
mov dword [edx], eax
cmp dword [ebp - 4], 0
jne 0x44ddce
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
jne 0x44ddce
xor eax, eax
jmp 0x44ddda
cmp dword [ebp - 4], 0
setne cl
call fcn.0044dd10
mov esp, ebp
pop ebp
ret 0x10
Function at 0x44e290
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
cmp dword [ebp + 0x14], 0
je 0x44e2a5
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
mov dword [ebp - 4], 1
cmp dword [ebp + 0x10], 0
jbe 0x44e325
mov dword [ebp - 0xc], 0x8000
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp + 0x10]
jbe 0x44e2c7
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0xc], edx
push 0
lea eax, [ebp - 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, dword [ebp + 8]
add eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
adc edx, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp - 8]
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 8]
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0x14], 0
je 0x44e325
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
add edx, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
cmp dword [ebp - 4], 0
setne cl
call fcn.0044dd10
mov esp, ebp
pop ebp
ret 0x10