joyce8/EMBER2024-capa huggingface dataset:
Function at 0x493800
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0x114
push 0x110
push 0
lea eax, [ebp - 0x114]
push eax
call fcn.004d43c0
add esp, 0xc
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4938b3
cmp dword [ebp - 0x114], 6
jae 0x4938b3
call fcn.00493750
test eax, eax
je 0x49389e
mov dword [ebp - 0x12c], 0x3000
jmp 0x4938a8
mov dword [ebp - 0x12c], 0
mov eax, dword [ebp - 0x12c]
jmp 0x4939ea
lea edx, [ebp - 0x120]
push edx
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
jne 0x4938d4
xor eax, eax
jmp 0x4939ea
lea eax, [ebp - 0x124]
push eax
push 0
push 0
push 0x19
mov ecx, dword [ebp - 0x120]
push ecx
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x493902
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
je 0x493902
jmp 0x49399a
mov edx, dword [ebp - 0x124]
push edx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
jne 0x493922
jmp 0x49399a
lea eax, [ebp - 0x124]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
mov edx, dword [ebp - 0x11c]
push edx
push 0x19
mov eax, dword [ebp - 0x120]
push eax
call dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
test eax, eax
jne 0x49394c
jmp 0x49399a
push 0
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ecx]
push edx
call dword [sym.imp.ADVAPI32.dll_GetSidSubAuthority]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x49397c
mov eax, dword [ebp - 0x128]
mov ecx, dword [eax]
mov dword [ebp - 0x130], ecx
jmp 0x493986
mov dword [ebp - 0x130], 0
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x134], edx
xor eax, eax
jne 0x4938d4
cmp dword [ebp - 0x120], 0
je 0x4939ba
mov ecx, dword [ebp - 0x120]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x120], 0
cmp dword [ebp - 0x11c], 0
je 0x4939e4
mov edx, dword [ebp - 0x11c]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x124], 0
mov eax, dword [ebp - 0x134]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret
Function at 0x494510
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
push 0x80
push 3
push 0
push 7
push Ordinal_1
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x49454c
xor al, al
jmp 0x4945d9
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], ecx
push 0
lea edx, [ebp - 0x30]
push edx
push 0x1c
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4945cc
cmp dword [ebp - 0x20], 0x4c
jne 0x4945bf
push 0x10
push 0x51e5d0
lea edx, [ebp - 0x1c]
push edx
call fcn.004d4ed4
add esp, 0xc
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x4945bf
mov eax, dword [ebp - 8]
and eax, 0x10
je 0x4945bf
mov dword [ebp - 0x2c], 1
jmp 0x4945c6
mov dword [ebp - 0x2c], 0
mov cl, byte [ebp - 0x2c]
mov byte [ebp - 0x21], cl
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp - 0x21]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret

Function at 0x4948f0
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5005d2
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x550070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x10]
mov dword [eax], 0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], 0
mov edx, dword [ebp - 0x10]
mov byte [edx + 8], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0xc
call fcn.00403790
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
call fcn.00403790
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x10]
add ecx, 0x14
call fcn.00403790
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.00403790
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
add ecx, 0x1c
call fcn.004279e0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x28], 0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x2c], 0
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x30], 8
mov ecx, dword [ebp - 0x10]
add ecx, 0x34
call fcn.00410cf0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x10]
add ecx, 0x3c
call fcn.0049def0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x44], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
call fcn.00405bb0
mov ecx, dword [ebp - 0x10]
add ecx, 0x1c
call fcn.004a1fa0
mov ecx, dword [ebp - 0x10]
add ecx, 0x34
call fcn.00412220
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x495790
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500780
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x54], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
mov ecx, 0x55add0
call fcn.00414bc0
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x54], 0
je 0x4957e0
mov eax, dword [ebp - 0x54]
add eax, 0x2c
mov dword [ebp - 0x5c], eax
jmp 0x4957e7
mov dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x5c]
push ecx
mov ecx, dword [ebp - 0x64]
call fcn.004148e0
cmp dword [ebp - 0x54], 0
je 0x495807
mov edx, dword [ebp - 0x54]
add edx, 0x3b8
mov dword [ebp - 0x60], edx
jmp 0x49580e
mov dword [ebp - 0x60], 0
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
call fcn.00414890
cmp dword [ebp - 0x54], 0
je 0x49582b
mov ecx, dword [ebp - 0x54]
add ecx, 0x2c
mov dword [ebp - 0x68], ecx
jmp 0x495832
mov dword [ebp - 0x68], 0
mov edx, dword [ebp - 0x68]
push edx
mov ecx, dword [ebp - 0x54]
add ecx, 0x380
call fcn.004148e0
cmp dword [ebp - 0x54], 0
je 0x495857
mov eax, dword [ebp - 0x54]
add eax, 0x3b8
mov dword [ebp - 0x6c], eax
jmp 0x49585e
mov dword [ebp - 0x6c], 0
mov ecx, dword [ebp - 0x6c]
push ecx
mov ecx, dword [ebp - 0x54]
add ecx, 0x380
call fcn.00414890
mov ecx, dword [ebp - 0x54]
call fcn.00499040
lea edx, [ebp - 0x50]
push edx
mov ecx, dword [ebp - 0x54]
call fcn.0049c5e0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x74], eax
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp - 0x58]
push ecx
mov ecx, dword [ebp - 0x74]
call fcn.00494760
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x50]
call fcn.0049dfe0
push 0x526678
lea ecx, [ebp - 0x58]
call fcn.004037b0
lea ecx, [ebp - 0x58]
call fcn.004038a0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.004036f0
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret 0x10
Function at 0x498e70
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500adb
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x22c], ecx
mov eax, dword [ebp - 0x22c]
cmp dword [eax + 0xb58], 0
jne 0x498eb5
jmp 0x49901e
mov dword [ebp - 0x21c], 0
lea ecx, [ebp - 0x21c]
push ecx
push 0x2011f
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerTypedPaths
push reloc.upgrade.dll_Ordinal_1
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
je 0x498ef1
jmp 0x49901e
mov dword [ebp - 0x234], 0x52c31c
lea ecx, [ebp - 0x228]
call fcn.00403790
mov dword [ebp - 4], 0
mov dword [ebp - 0x220], 1
mov dword [ebp - 0x23c], 0
mov edx, 1
test edx, edx
je 0x498fee
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x230], eax
mov ecx, dword [ebp - 0x230]
push ecx
mov edx, dword [ebp - 0x234]
push edx
push str._s_d
lea eax, [ebp - 0x228]
push eax
call fcn.0040e1d0
add esp, 0x10
mov ecx, dword [ebp - 0x220]
add ecx, 1
mov dword [ebp - 0x220], ecx
xor edx, edx
mov word [ebp - 0x218], dx
push 0x206
push 0
lea eax, [ebp - 0x216]
push eax
call fcn.004d43c0
add esp, 0xc
mov dword [ebp - 0x238], 0x208
lea ecx, [ebp - 0x238]
push ecx
lea edx, [ebp - 0x218]
push edx
lea eax, [ebp - 0x23c]
push eax
push 0
lea ecx, [ebp - 0x228]
call fcn.004038a0
push eax
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0
je 0x498fd5
jmp 0x498fee
push 0xffffffffffffffff
lea edx, [ebp - 0x218]
push edx
mov ecx, dword [ebp - 0x22c]
call fcn.00499550
jmp 0x498f21
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x228]
call fcn.004036f0
xor eax, eax
jne 0x498ef1
cmp dword [ebp - 0x21c], 0
je 0x49901e
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret
Function at 0x499ed0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500c53
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x54], ecx
cmp dword [ebp + 8], 0
jne 0x499f08
xor eax, eax
jmp 0x49a06d
mov dword [ebp - 0x68], 0
lea ecx, [ebp - 0x84]
call fcn.00473ab0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
add ecx, 2
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x58]
mov ax, word [edx]
mov word [ebp - 0x5e], ax
add dword [ebp - 0x58], 2
cmp word [ebp - 0x5e], 0
jne 0x499f30
mov ecx, dword [ebp - 0x58]
sub ecx, dword [ebp - 0x6c]
sar ecx, 1
mov dword [ebp - 0x70], ecx
je 0x499f65
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x499f65
jmp 0x49a052
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.004998e0
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x64], 0
jne 0x499f7f
jmp 0x49a052
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
add edx, 2
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x5c]
mov cx, word [eax]
mov word [ebp - 0x60], cx
add dword [ebp - 0x5c], 2
cmp word [ebp - 0x60], 0
jne 0x499f8e
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x74]
sar edx, 1
mov dword [ebp - 0x78], edx
je 0x49a01b
push 0
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0xb64]
call dword [sym.imp.DuiLib.dll_public:_struct_DuiLib::DTV_ITEM_INFO____thiscall_DuiLib::CTreeViewExUI::GetChild_struct_DuiLib::DTV_ITEM_INFO__]
cmp dword [ebp - 0x64], eax
jne 0x49a01b
lea ecx, [ebp - 0x50]
call fcn.004945f0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x50]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0049d840
add esp, 8
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x54]
call fcn.004997d0
lea ecx, [ebp - 0x50]
push ecx
mov ecx, dword [ebp - 0x54]
call fcn.0049c450
mov dword [ebp - 0x68], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x50]
call fcn.0049dfe0
jmp 0x49a052
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0xb64]
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0xb64]
add eax, 0xe0c
mov edx, dword [ecx + 0xe0c]
mov ecx, eax
mov eax, dword [edx + 0x18]
call eax
mov dword [ebp - 0x68], 1
xor ecx, ecx
jne 0x499f21
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x7c], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84]
call fcn.00473a60
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret 4
Function at 0x49c270
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x501040
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x550070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x18]
call fcn.004050b0
mov dword [ebp - 4], 0
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.004a2ef0
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jg 0x49c2d9
mov byte [ebp - 0xd], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004036f0
mov al, byte [ebp - 0xd]
jmp 0x49c430
mov ecx, dword [ebp - 0x24]
push ecx
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x18]
call fcn.00427c80
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x18]
call fcn.00410ec0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.004036f0
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0xae0]
cmp dword [eax + 0x3c], 0
je 0x49c368
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xae0]
mov eax, dword [edx + 0x40]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0xae0]
mov eax, dword [edx + 0x3c]
call eax
add esp, 0xc
movzx ecx, al
test ecx, ecx
jne 0x49c368
mov byte [ebp - 0xe], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004036f0
mov al, byte [ebp - 0xe]
jmp 0x49c430
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x49c3ac
push 0
push str.msg_file_browse_exist.xml
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
push ecx
call fcn.0044c6c0
add esp, 0xc
cmp eax, 2
jne 0x49c3ac
mov byte [ebp - 0xf], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004036f0
mov al, byte [ebp - 0xf]
jmp 0x49c430
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xffffffff
jne 0x49c40a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x49c40a
push 0
push str.msg_file_browse_saveas_deny.xml
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 4]
push ecx
call fcn.0044c6c0
add esp, 0xc
mov byte [ebp - 0x10], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004036f0
mov al, byte [ebp - 0x10]
jmp 0x49c430
cmp dword [ebp - 0x20], 0xffffffff
je 0x49c41a
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x11], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.004036f0
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x49c6c0
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x501076
mov eax, dword fs:[0]
push eax
sub esp, 0x2c8
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
je 0x49c6fe
jmp 0x49c83a
lea ecx, [ebp - 0x2d4]
call fcn.00473ab0
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0xc]
call fcn.00405bb0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0
push 0x2b4
push 0
lea edx, [ebp - 0x2c4]
push edx
call fcn.004d43c0
add esp, 0xc
push 0x4600
push 0x2b4
lea eax, [ebp - 0x2c4]
push eax
push 0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov edx, dword [ebp + 8]
push edx
call fcn.00469760
add esp, 4
movzx eax, al
test eax, eax
jne 0x49c776
lea ecx, [ebp - 0x2b8]
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.00406270
mov ecx, dword [ebp + 0xc]
call fcn.004037d0
movzx edx, al
test edx, edx
je 0x49c80e
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.004050b0
mov byte [ebp - 4], 1
push 0x5c
lea ecx, [ebp - 0x2cc]
call fcn.004a2e60
push 0x5c
lea ecx, [ebp - 0x2cc]
call fcn.004038a0
push eax
call fcn.0040d340
add esp, 8
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2c8], 0
je 0x49c7df
mov ecx, dword [ebp - 0x2c8]
add ecx, 2
mov dword [ebp - 0x2c8], ecx
jmp 0x49c7f0
lea ecx, [ebp - 0x2cc]
call fcn.004038a0
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x2c8]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.00406270
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2cc]
call fcn.004036f0
lea eax, [ebp - 0xb0]
push eax
mov ecx, dword [ebp + 0x10]
call fcn.00406270
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x2c0]
mov dword [ecx], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2d4]
call fcn.00473a60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret
Function at 0x49c860
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5010cd
mov eax, dword fs:[0]
push eax
sub esp, 0x2e4
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c8], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov edx, dword [0x55fe78]
cmp edx, dword [ecx + 4]
jle 0x49c8f3
push 0x55fe78
call fcn.004d1b94
add esp, 4
cmp dword [0x55fe78], 0xffffffff
jne 0x49c8f3
mov dword [ebp - 4], 0
mov ecx, 0x55fe7c
call fcn.004399b0
push 0x504030
call fcn.004d1eeb
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x55fe78
call fcn.004d1b55
add esp, 4
push 0x2e
mov eax, dword [ebp + 0xc]
push eax
call fcn.004d3e3c
add esp, 8
push eax
lea ecx, [ebp - 0x2cc]
call fcn.004050b0
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x2cc]
push ecx
lea edx, [ebp - 0x2d4]
push edx
mov ecx, 0x55fe7c
call fcn.00439b10
lea eax, [ebp - 0x2e0]
push eax
mov ecx, 0x55fe7c
call fcn.00439900
push eax
lea ecx, [ebp - 0x2d4]
call fcn.0041a350
movzx ecx, al
test ecx, ecx
je 0x49c990
lea ecx, [ebp - 0x2d4]
call fcn.004398e0
add eax, 4
push eax
mov ecx, dword [ebp + 8]
call fcn.0040e000
mov edx, dword [ebp - 0x2c8]
or edx, 1
mov dword [ebp - 0x2c8], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2cc]
call fcn.004036f0
mov eax, dword [ebp + 8]
jmp 0x49ca75
push 0x2b4
push 0
lea eax, [ebp - 0x2c4]
push eax
call fcn.004d43c0
add esp, 0xc
push 0x400
push 0x2b4
lea ecx, [ebp - 0x2c4]
push ecx
push 0
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x2d0]
call fcn.004050b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2d0]
push ecx
lea edx, [ebp - 0x2cc]
push edx
lea eax, [ebp - 0x2e8]
push eax
call fcn.004a5230
add esp, 0xc
mov dword [ebp - 0x2d8], eax
mov ecx, dword [ebp - 0x2d8]
mov dword [ebp - 0x2dc], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x2dc]
push edx
lea eax, [ebp - 0x2f0]
push eax
mov ecx, 0x55fe7c
call fcn.004a5270
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2e8]
call fcn.00473df0
lea ecx, [ebp - 0x2d0]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040e000
mov edx, dword [ebp - 0x2c8]
or edx, 1
mov dword [ebp - 0x2c8], edx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2d0]
call fcn.004036f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2cc]
call fcn.004036f0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret
Function at 0x49ca90
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x2bc], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov edx, dword [0x55fe84]
cmp edx, dword [ecx + 4]
jle 0x49cafd
push 0x55fe84
call fcn.004d1b94
add esp, 4
cmp dword [0x55fe84], 0xffffffff
jne 0x49cafd
mov ecx, 0x55fe88
call fcn.00403790
push 0x504020
call fcn.004d1eeb
add esp, 4
push 0x55fe84
call fcn.004d1b55
add esp, 4
mov ecx, 0x55fe88
call fcn.004037d0
movzx eax, al
test eax, eax
jne 0x49cb2f
push 0x55fe88
mov ecx, dword [ebp + 8]
call fcn.0040e000
mov ecx, dword [ebp - 0x2bc]
or ecx, 1
mov dword [ebp - 0x2bc], ecx
mov eax, dword [ebp + 8]
jmp 0x49cb92
push 0x2b4
push 0
lea edx, [ebp - 0x2b8]
push edx
call fcn.004d43c0
add esp, 0xc
push 0x400
push 0x2b4
lea eax, [ebp - 0x2b8]
push eax
push 0
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea edx, [ebp - 0xa4]
push edx
mov ecx, 0x55fe88
call fcn.00406270
push 0x55fe88
mov ecx, dword [ebp + 8]
call fcn.0040e000
mov eax, dword [ebp - 0x2bc]
or eax, 1
mov dword [ebp - 0x2bc], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret

Function at 0x49cba0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x810
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x52c528]
mov dword [ebp - 0xc], eax
mov cx, word [0x52c52c]
mov word [ebp - 8], cx
mov edx, dword [ebp + 8]
add edx, 0x41
mov eax, 2
imul ecx, eax, 0
mov word [ebp + ecx - 0xc], dx
push 0x400
lea edx, [ebp - 0x80c]
push edx
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
test eax, eax
jne 0x49cbf7
xor eax, eax
jmp 0x49cc2d
push 0xe
push str.DeviceFloppy
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004de740
add esp, 0xc
test eax, eax
jne 0x49cc1d
mov dword [ebp - 0x810], 1
jmp 0x49cc27
mov dword [ebp - 0x810], 0
mov eax, dword [ebp - 0x810]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret
Function at 0x49d7a0
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c4
mov eax, dword [0x550070]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [0x55ba14], 0
jle 0x49d7c3
mov eax, dword [0x55ba14]
jmp 0x49d827
push 0
push 0x24
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x49d822
push 0x2b4
push 0
lea ecx, [ebp - 0x4c0]
push ecx
call fcn.004d43c0
add esp, 0xc
push 0x4000
push 0x2b4
lea edx, [ebp - 0x4c0]
push edx
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov dword [ebp - 0x4c4], eax
mov ecx, dword [ebp - 0x4bc]
mov dword [0x55ba14], ecx
mov eax, dword [0x55ba14]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d181f
mov esp, ebp
pop ebp
ret

Function at 0x49ec40
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], ecx
cmp dword [0x55b9cc], 0
ja 0x49ec5b
cmp dword [0x55b9c8], 0
jbe 0x49ec8d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
sub eax, dword [0x55b9c8]
sbb ecx, dword [0x55b9cc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
ja 0x49ec8d
jb 0x49ec86
cmp dword [ebp - 0xc], 0x7d0
jae 0x49ec8d
mov eax, 0x55feb8
jmp 0x49ecf9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov dword [0x55b9c8], eax
mov dword [0x55b9cc], edx
mov ecx, dword [ebp - 4]
add ecx, 0xb40
call fcn.0040efc0
test eax, eax
jne 0x49eccd
push 0
mov ecx, dword [ebp - 4]
add ecx, 0xb40
call fcn.0040ec90
test eax, eax
jne 0x49eccd
mov eax, 0x55feb8
jmp 0x49ecf9
push 0xb60
push 0
push 0x55feb8
call fcn.004d43c0
add esp, 0xc
push 0x55feb8
mov ecx, dword [ebp - 4]
add ecx, 0xb40
call fcn.0040eff0
mov eax, 0x55feb8
mov esp, ebp
pop ebp
ret
Function at 0x4a0f40
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
push 0
push 0
mov eax, dword [ebp + 8]
push eax
push 0x4a1090
push 0
push 0
call fcn.004dd348
add esp, 0x18
mov esp, ebp
pop ebp
ret 4