joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4b3fe0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
je 0x4b3ffa
mov eax, dword [ebp - 0x38]
sub eax, 0x20
mov dword [ebp - 0x3c], eax
jmp 0x4b4001
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], 1
cmp dword [ebp + 0x14], 0
je 0x4b4060
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 8]
add ecx, 4
call fcn.00493e70
mov ecx, eax
call fcn.004dfdf0
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0x10]
shr ecx, 1
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
cmp dword [ebp - 0xc], eax
jge 0x4b405e
mov dword [ebp - 4], 0
jmp 0x4b4076
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
add ecx, 4
call fcn.004a06e0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4b4091
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 8]
add ecx, 0x20
call fcn.004c3240
jmp 0x4b40f8
cmp dword [ebp + 0x14], 0
je 0x4b40f8
cmp dword [ebp + 0x18], 0
je 0x4b40f8
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, dword [ebp + 0x1c]
jle 0x4b40f8
mov dword [ebp - 0x30], 1
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
add ecx, 0x20
call fcn.004b4110
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 0x18
Function at 0x4b7a10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572d16
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], ecx
push 1
push 0x5868d8
lea ecx, [ebp - 0x10]
call fcn.004ccc50
mov dword [ebp - 4], 0
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x20c], ax
cmp dword [ebp + 8], 0
jne 0x4b7a80
push 0
push 0
push 0x208
mov edx, dword [ebp - 0x18]
add edx, 0x20c
push edx
push 0x5868e4
lea ecx, [ebp - 0x10]
call fcn.004cd280
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x208], 1
cmp dword [ebp + 8], 0
jne 0x4b7ab9
push 4
lea ecx, [ebp - 0x14]
push ecx
push 4
mov edx, dword [ebp - 0x18]
add edx, 0x208
push edx
push 0x5868fc
lea ecx, [ebp - 0x10]
call fcn.004cd280
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x414], 0
cmp dword [ebp + 8], 0
jne 0x4b7aeb
push 4
lea ecx, [ebp - 0x14]
push ecx
push 4
mov edx, dword [ebp - 0x18]
add edx, 0x414
push edx
push 0x586920
lea ecx, [ebp - 0x10]
call fcn.004cd280
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov word [ecx], ax
mov edx, dword [ebp - 0x18]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x586944
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp dword [ebp + 8], 0
jne 0x4b7b31
push 0
push 0
push 0x208
mov ecx, dword [ebp - 0x18]
push ecx
push 0x586954
lea ecx, [ebp - 0x10]
call fcn.004cd280
push 0x104
mov edx, dword [ebp - 0x18]
add edx, 0x20c
push edx
mov ecx, dword [ebp - 0x18]
call fcn.004b7c60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004ccd70
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x4b7b70
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x5f969c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x214], ecx
mov eax, dword [ebp - 0x214]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b7bfa
xor ecx, ecx
mov word [ebp - 0x210], cx
push 0x206
push 0
lea edx, [ebp - 0x20e]
push edx
call fcn.0053c870
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x58696c
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
jmp 0x4b7c33
mov ecx, dword [ebp - 0x214]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x58697c
mov edx, dword [ebp - 0x214]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x214]
push edx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
mov eax, dword [ebp - 0x214]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053c85d
mov esp, ebp
pop ebp
ret 8

Function at 0x4b7c60
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
cmp dword [eax + 0x414], 0
jne 0x4b7cc4
mov ecx, dword [ebp - 8]
movzx edx, word [ecx + 0x20c]
test edx, edx
je 0x4b7cb0
mov eax, dword [ebp - 8]
add eax, 0x20c
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b7cb0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
add edx, 0x20c
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
jmp 0x4b7cc0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00495630
add esp, 8
xor eax, eax
jmp 0x4b7d2e
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b7d1b
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 8]
add edx, 0x20c
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b7cff
mov eax, 1
jmp 0x4b7d2e
mov edx, dword [ebp + 8]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4b7d1b
mov eax, 1
jmp 0x4b7d2e
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov eax, 1
mov esp, ebp
pop ebp
ret 8
Function at 0x4b7e00
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572d5c
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x414], 0
je 0x4b7e88
mov ecx, dword [ebp - 0x14]
add ecx, 0x20c
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x20007
push str.Paths
lea ecx, [ebp - 0x10]
call fcn.004ccc50
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x14]
add edx, 0x20c
push edx
push str.StartFolder
lea ecx, [ebp - 0x10]
call fcn.004cce90
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004ccd70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4b83f0
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572df8
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xb4], ecx
mov eax, dword [ebp - 0xb4]
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
cmp dword [ebp + 0xc], 0
je 0x4b843b
mov dword [ebp - 0x10], 0
jmp 0x4b84e1
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
push 0x586cac
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4b8461
mov dword [ebp - 0x10], 2
jmp 0x4b84e1
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xb4]
call fcn.004b86f0
test eax, eax
je 0x4b847d
mov dword [ebp - 0x10], 2
jmp 0x4b84e1
cmp dword [ebp - 0x10], 3
jne 0x4b84e1
lea ecx, [ebp - 0x34]
call fcn.004b9310
mov dword [ebp - 4], 0
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x34]
call fcn.004b9560
cmp eax, 1
je 0x4b84cc
mov dword [ebp - 0xb0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.004a8d30
mov eax, dword [ebp - 0xb0]
jmp 0x4b85f4
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.004a8d30
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0xb8], edx
cmp dword [ebp - 0xb8], 0
je 0x4b850e
cmp dword [ebp - 0xb8], 1
je 0x4b8521
cmp dword [ebp - 0xb8], 2
je 0x4b859c
jmp 0x4b85f2
mov eax, dword [ebp + 8]
push eax
call fcn.004ceca0
add esp, 4
xor eax, eax
jmp 0x4b85f4
mov ecx, dword [ebp - 0xb4]
add ecx, 0x218
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4b858a
mov dword [ebp - 0x70], 0
push 0x38
push 0
lea edx, [ebp - 0x6c]
push edx
call fcn.0053c870
add esp, 0xc
mov dword [ebp - 0x70], 0x3c
mov dword [ebp - 0x6c], 0x140
mov eax, dword [ebp + 8]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0xb4]
add ecx, 0x218
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x54], 1
lea edx, [ebp - 0x70]
push edx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov eax, dword [ebp - 0x38]
jmp 0x4b85f4
mov eax, dword [ebp + 8]
push eax
call fcn.004ceca0
add esp, 4
xor eax, eax
jmp 0x4b85f4
mov dword [ebp - 0xac], 0
push 0x38
push 0
lea ecx, [ebp - 0xa8]
push ecx
call fcn.0053c870
add esp, 0xc
mov dword [ebp - 0xac], 0x3c
mov dword [ebp - 0xa8], 0x140
mov edx, dword [ebp + 8]
mov dword [ebp - 0x9c], edx
mov dword [ebp - 0x90], 1
lea eax, [ebp - 0xac]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov eax, dword [ebp - 0x74]
jmp 0x4b85f4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x4b8b90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572eb2
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
push 0x20007
push str.FileList
lea ecx, [ebp - 0x10]
call fcn.004ccc50
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push ecx
push str.Detailed
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
push eax
push str.ShowGrid
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 8]
push edx
push str.FullRow
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
push ecx
push str.ArchivesFirst
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
push eax
push str.AllowUppercase
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x14]
push edx
push str.ColorAttr
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x18]
push ecx
push str.AllVolumes
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x1c]
push eax
push str.ShowSeconds
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x30]
push edx
push str.SingleClick
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x2c]
push ecx
push str.Underline
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x34]
push eax
push str.DBOpen
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 0x38]
push edx
push str.DBExrt
lea ecx, [ebp - 0x10]
call fcn.004cced0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004ccd70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4b9a90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x572fce
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
push 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x98
call fcn.004d7680
mov dword [ebp - 4], 0
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 dword [edx + 8], 1
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x2c], 1
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x30], 0
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x34], 1
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x38], 0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], 1
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x10], 1
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x14], 1
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x18], 1
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x1c], 1
mov eax, dword [ebp - 0x10]
mov dword [eax + 0x20], 1
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x24], 1
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x28], 0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0xa4], 1
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xa0], 1
mov edx, dword [ebp - 0x10]
mov dword [edx + 0x9c], 1
mov eax, dword [ebp - 0x10]
mov dword [eax + 0xa8], 0
push 0x5c
push 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x3c
push ecx
call fcn.0053c870
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x4b9bb9
push 0
mov ecx, dword [ebp - 0x10]
call fcn.004b8770
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 4

Function at 0x4bc700
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x573238
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x5f969c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x14]
call fcn.00438030
mov dword [ebp - 4], 0
push 0x5874f8
push 0x5874e8
push 0x5874e8
push 0x5874c4
lea eax, [ebp - 0x14]
push eax
call fcn.004386c0
add esp, 0x14
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push ecx
push 1
push 0
lea ecx, [ebp - 0x14]
call fcn.004dfdf0
push eax
push reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp dword [ebp - 0x10], 0
je 0x4bc7a8
mov dword [ebp - 0x20], 4
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x1c]
push ecx
push 0
push 0x5874a4
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0044fc20
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x4bdf20
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
je 0x4bdf3a
mov eax, dword [ebp - 0x38]
sub eax, 0x54
mov dword [ebp - 0x3c], eax
jmp 0x4bdf41
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], 1
cmp dword [ebp + 0x14], 0
je 0x4bdfa0
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 8]
add ecx, 4
call fcn.00493e70
mov ecx, eax
call fcn.004dfdf0
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0x10]
shr ecx, 1
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
cmp dword [ebp - 0xc], eax
jge 0x4bdf9e
mov dword [ebp - 4], 0
jmp 0x4bdfb6
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
add ecx, 4
call fcn.004a06e0
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4bdfd1
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
mov ecx, dword [ebp - 8]
add ecx, 0x54
call fcn.004b7710
jmp 0x4be038
cmp dword [ebp + 0x14], 0
je 0x4be038
cmp dword [ebp + 0x18], 0
je 0x4be038
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, dword [ebp + 0x1c]
jle 0x4be038
mov dword [ebp - 0x30], 1
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x30]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
add ecx, 0x54
call fcn.004b7770
mov dword [ebp - 4], 0
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 0x18
Function at 0x4bfc80
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x68]
mov dword [eax + 0x228], edx
mov ecx, dword [ebp - 8]
add ecx, 0x6c
call fcn.00401410
push eax
mov ecx, dword [ebp + 8]
add ecx, 0x22c
call fcn.0041a580
mov eax, dword [ebp + 8]
add eax, 8
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0x58]
mov dword [ecx + 0x214], eax
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x54], 0
je 0x4bfce0
mov edx, dword [ebp + 8]
mov dword [edx + 0x214], 3
mov eax, dword [ebp - 4]
mov dword [eax + 0x210], 0
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x214], 0
je 0x4bfd33
mov edx, dword [ebp - 4]
add edx, 0x638
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4bfd33
push 0x104
mov eax, dword [ebp - 4]
add eax, 0x638
push eax
call fcn.00495840
add esp, 8
test eax, eax
jne 0x4bfd33
xor ecx, ecx
mov edx, dword [ebp - 4]
mov word [edx + 0x638], cx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20c], 7
jne 0x4bfd6d
push 0x5877a4
mov ecx, dword [ebp - 4]
add ecx, 0x848
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4bfd6d
push 0x5877ac
mov edx, dword [ebp - 4]
add edx, 0x848
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov esp, ebp
pop ebp
ret 4

Function at 0x4c1840
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x5f969c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x224], ecx
push 0x44a
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x224]
add ecx, 4
call fcn.00493e70
mov ecx, eax
call fcn.004dfdf0
push eax
mov ecx, dword [ebp - 0x224]
add ecx, 0x54
call fcn.00493da0
push 0x58788c
mov ecx, dword [ebp - 0x224]
add ecx, 0x54
push ecx
call fcn.004cd760
add esp, 8
lea edx, [ebp - 0x210]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x224]
add ecx, 0x54
call fcn.0043c4b0
push 0
push 0
push 0x504
mov ecx, dword [ebp - 0x224]
add ecx, 4
call fcn.0043c480
push 0x4c2
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, dword [ebp - 0x224]
add ecx, 4
call fcn.00493e70
mov ecx, eax
call fcn.004dfdf0
mov dword [ebp - 0x214], eax
push 0
mov edx, dword [ebp - 0x214]
push edx
push 0x500
lea eax, [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x224]
add ecx, 4
call fcn.0044e7b0
mov ecx, eax
call fcn.0043c480
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053c85d
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4c3a80
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x5f969c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x214], ecx
mov eax, dword [ebp - 0x214]
cmp dword [eax + 0x20c], 0
je 0x4c3ab5
push 0x587980
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov ecx, dword [ebp - 0x214]
movzx edx, word [ecx + 0x210]
test edx, edx
je 0x4c3af4
push str.Setup
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov eax, dword [ebp - 0x214]
add eax, 0x210
push eax
mov ecx, dword [ebp + 8]
call fcn.004565d0
push 0x5879a8
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov ecx, dword [ebp - 0x214]
movzx edx, word [ecx + 0x418]
test edx, edx
je 0x4c3b33
push str.Presetup
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov eax, dword [ebp - 0x214]
add eax, 0x418
push eax
mov ecx, dword [ebp + 8]
call fcn.004565d0
push 0x5879c4
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov ecx, dword [ebp - 0x214]
movzx edx, word [ecx]
test edx, edx
je 0x4c3bf3
push 0x5879cc
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov eax, dword [ebp - 0x214]
cmp dword [eax + 0x208], 0
jne 0x4c3b75
push 0
push 0x26
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
jmp 0x4c3bb6
mov edx, dword [ebp - 0x214]
cmp dword [edx + 0x208], 1
jne 0x4c3b98
lea eax, [ebp - 0x210]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
jmp 0x4c3bb6
mov ecx, dword [ebp - 0x214]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004565d0
push 0x5879d8
mov ecx, dword [ebp + 8]
call fcn.004565d0
jmp 0x4c3bf3
mov edx, dword [ebp - 0x214]
push edx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea edx, [ebp - 0x210]
push edx
mov ecx, dword [ebp + 8]
call fcn.004565d0
push 0x5879e0
mov ecx, dword [ebp + 8]
call fcn.004565d0
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053c85d
mov esp, ebp
pop ebp
ret 4