joyce8/EMBER2024-capa huggingface dataset:
Function at 0x406ef0
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x40c478
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x1c]
push esi
mov esi, ecx
push eax
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_2
push 1
lea ecx, [esp + 0x24]
mov dword [esp + 0x14], 0
call sub.MFC42.DLL_CString::GetBuffer
mov cl, byte [esp + 0x1c]
lea edx, [esp + 4]
push edx
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerUser_Shell_Folders
mov byte [eax], cl
push 0x80000001
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov eax, dword [esp + 0x18]
cmp eax, 5
ja case.default.0x406f5a
jmp dword [eax*4 + 0x407148]
push 0x4128ec
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x4128ec
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 8]
push eax
push 2
push 0
push str.Personal
push ecx
jmp 0x40710a
push 0x4128dc
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x4128dc
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [edx - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esp + 0xc]
push 2
push 0
push str.Desktop
push eax
jmp 0x40710a
push 0x4128c0
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x4128c0
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 2
push 0
push str.Cache
jmp 0x407105
push 0x4128ac
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x4128ac
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [esp + 8]
push eax
push 2
push 0
push str.History
push ecx
jmp 0x40710a
push 0x412898
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push 0x412898
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x20]
mov eax, dword [edx - 8]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
mov eax, dword [esp + 0xc]
push 2
push 0
push str.Favorites
push eax
jmp 0x40710a
push str.Moving_Recent
push 0x3f5
mov ecx, esi
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
push str.Moving_Recent
lea ecx, [esi + 0x94]
call fcn.0040ad3e
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x20]
inc eax
push eax
push 1
call sub.MFC42.DLL_CString::GetBuffer
push eax
push 2
push 0
push str.Recent
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esi + 0x94]
mov ecx, esi
push eax
push 0x3f5
call sub.MFC42.DLL_CWnd::SetDlgItemTextA
lea ecx, [esp + 0x20]
mov dword [esp + 0x10], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 8]
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 0xc
Function at 0x4072e0
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
sub esp, 0x968
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x97c]
lea eax, [esp + 0x18]
push eax
mov esi, ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x407506
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x770]
push edi
push ecx
call ebp
mov edx, dword [esp + 0x980]
lea eax, [esp + 0x568]
push edx
push eax
call ebp
mov edi, dword [sym.imp.MSVCRT.dll__mbsrchr]
lea ecx, [esp + 0x770]
push 0x5c
push ecx
call edi
lea edx, [esp + 0x570]
push 0x5c
push edx
mov byte [eax + 1], 0
call edi
mov byte [eax + 1], 0
add esp, 0xc
lea eax, [esp + 0x56c]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.00407770
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileA]
test byte [esp + 0x18], 0x10
je 0x407464
lea ecx, [esp + 0x44]
push 0x41292c
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4074d1
lea edx, [esp + 0x44]
push 0x412928
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4074d1
lea eax, [esp + 0x770]
lea ecx, [esp + 0x360]
push eax
push ecx
call ebp
lea edx, [esp + 0x44]
lea eax, [esp + 0x360]
push edx
push eax
call edi
lea ecx, [esp + 0x360]
push str..
push ecx
call edi
lea edx, [esp + 0x568]
lea eax, [esp + 0x158]
push edx
push eax
call ebp
lea ecx, [esp + 0x44]
lea edx, [esp + 0x158]
push ecx
push edx
call edi
push ecx
lea eax, [esp + 0x15c]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, esi
call fcn.00407770
test eax, eax
je 0x40743c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x158]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [esp + 0x158]
push str..
push eax
call edi
lea ecx, [esp + 0x158]
lea edx, [esp + 0x360]
push ecx
push edx
mov ecx, esi
call fcn.004072e0
jmp 0x4074d1
lea eax, [esp + 0x770]
lea ecx, [esp + 0x360]
push eax
push ecx
call ebp
lea edx, [esp + 0x44]
lea eax, [esp + 0x360]
push edx
push eax
call edi
lea ecx, [esp + 0x568]
lea edx, [esp + 0x158]
push ecx
push edx
call ebp
lea eax, [esp + 0x44]
lea ecx, [esp + 0x158]
push eax
push ecx
call edi
lea edx, [esp + 0x158]
push 0
lea eax, [esp + 0x364]
push edx
push eax
call ebx
mov edx, dword [esi + 0x80]
mov ecx, esi
inc edx
mov eax, edx
mov dword [esi + 0x80], edx
push eax
call fcn.00407730
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40737e
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x968
ret 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x968
ret 8
Function at 0x407520
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
sub esp, 0x554
push ebp
push esi
mov esi, dword [esp + 0x560]
lea eax, [esp + 0xc]
push edi
push eax
mov ebp, ecx
push esi
xor edi, edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
je 0x407621
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x35c]
push esi
push ecx
call ebx
lea edx, [esp + 0x35c]
push 0x5c
push edx
call dword [sym.imp.MSVCRT.dll__mbsrchr]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 8
mov byte [eax + 1], 0
test byte [esp + 0x14], 0x10
je 0x4075ee
lea eax, [esp + 0x40]
push 0x41292c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4075ef
lea ecx, [esp + 0x40]
push 0x412928
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x4075ef
lea edx, [esp + 0x35c]
lea eax, [esp + 0x154]
push edx
push eax
call ebx
lea ecx, [esp + 0x40]
lea edx, [esp + 0x154]
push ecx
push edx
call esi
lea eax, [esp + 0x154]
push str..
push eax
call esi
lea ecx, [esp + 0x154]
push ecx
mov ecx, ebp
call fcn.00407520
add edi, eax
jmp 0x4075ef
inc edi
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40757c
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x554
ret 4
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x554
ret 4
Function at 0x407770
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x40c4f3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x214
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x18], ecx
xor ebx, ebx
lea ecx, [esp + 0x10]
mov dword [esp + 0x22c], ebx
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x234]
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x1c]
mov ebp, dword [edx - 8]
lea esi, [esp + 0x1c]
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0x14]
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
mov byte [esp + 0x234], 1
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
call esi
cmp eax, 1
jne 0x40782b
lea ecx, [esp + 0x10]
mov byte [esp + 0x22c], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x234]
mov dword [esp + 0x22c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x4078d8
sub ebp, 2
cmp ebp, ebx
jle 0x407844
cmp byte [esp + ebp + 0x1c], 0x5c
je 0x407842
mov byte [esp + ebp + 0x1c], bl
dec ebp
cmp ebp, ebx
jg 0x407832
cmp ebp, ebx
je 0x4078af
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x14]
call fcn.0040ad3e
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0040ae94
mov ecx, dword [esp + 0x1c]
call fcn.00407770
cmp eax, ebx
je 0x4078af
mov eax, dword [esp + 0x234]
push ebx
push eax
call esi
test eax, eax
mov byte [esp + 0x22c], bl
lea ecx, [esp + 0x10]
je 0x4078ba
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x234]
mov dword [esp + 0x22c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov eax, 1
jmp 0x4078d8
mov byte [esp + 0x22c], bl
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x234]
mov dword [esp + 0x22c], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x220
ret 4

Function at 0x408480
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
push esi
push 0
push 0
push 3
push 0
push 1
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4084a6
or eax, eax
pop esi
ret
push edi
mov edi, dword [esp + 0x10]
lea ecx, [esp + 0xc]
push 0
push ecx
push 0x48
push edi
push esi
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi]
pop edi
sub eax, 0x49554758
pop esi
neg eax
sbb eax, eax
ret
Function at 0x4084e0
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x24
mov eax, dword [esp + 0x2c]
push ebx
push esi
push edi
push 0
push 0
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
push edi
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
lea ecx, [esp + 0xc]
push 0
push ecx
push edi
push eax
push esi
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], 0
push edx
push 1
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
push 0x40efb0
push 0
push edi
push ecx
call dword [sym.imp.OLEPRO32.DLL_OleLoadPicture]
mov eax, dword [esp + 0x38]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, dword [esp + 0x3c]
mov ecx, esi
call sub.MFC42.DLL_CGdiObject::DeleteObject
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call sub.MFC42.DLL_CGdiObject::Attach
mov edx, dword [esi + 4]
lea ecx, [esp + 0x18]
push ecx
push 0x18
push edx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
pop edi
pop esi
mov dword [eax], ecx
mov dword [eax + 4], edx
pop ebx
add esp, 0x24
ret
Function at 0x8bf9b7
Capabilities:
Encode data using xor

Disassembly:
adc bl, 0x2f
clc
rcr bh, cl
mov bl, dh
mov bx, word [esi]
call fcn.008bd128
mov word [esp], 0x6cc4
lea esp, [esp + 0x28]
je 0x6a81a8
clc
push 0xed97e7c7
call fcn.008c018e
inc bh
not bh
mov bx, word [esi]
test bp, di
pushal
pushal
shr ebx, 0xc
pushfd
bt edx, esp
test ch, dl
cmp ebx, 1
mov word [esp], cx
lea esp, [esp + 0x44]
je 0x8bc16f
test edx, 0x382c3712
pushal
bt si, 0xb
cmp ebx, 2
pushal
lea esp, [esp + 0x40]
je 0x8be351
pushfd
cmp ebx, 3
pushal
pushfd
lea esp, [esp + 0x28]
je 0x8bbd7e
pushal
lea esp, [esp + 0x20]
jmp fcn.008bed23
push ecx
push edi
pushal
cmp dword [esi], 0
jmp 0x8bda38
cmc
adc bx, cx
sub bx, 0xdf68
mov bx, word [esi]
stc
pushal
mov byte [esp + 4], 0x4b
test bl, bl
and ebx, 0xfff
call fcn.008bfc8a
add byte [eax], al
dec ebp
jae 0x8be3ea
popal
inc edx
outsd dx, dword [esi]
js 0x8be3bf
add byte [ebp + 0xf042464], cl
test dword [ecx], ebx
invalid
jecxz 0x8be3fb
and ebx, dword [eax + 0x48dc5fa0]
xor esp, dword [ebx - 0x67e0b64f]
stc
adc byte [edx + 0x48], dl
xchg dword [ecx - 0x4a], esp
pushal
mov cl, 0x6d
dec esi
movsd dword es:[edi], dword [esi]
fadd st(1), st(0)
and al, 0x75
das
dec eax
inc edx
cmp bl, byte [ecx - 0x4e34b0e4]
aad 0x23
ljmp 0xa226
ror ch, 1
hlt
and al, 8
sbb al, 1
lea esp, [esp + 0xc]
jne 0x8bdad5
pushfd
lea esp, [esp + 4]
jmp 0x8be14e
Function at 0x40de60
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x4e7dd8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
xor ebx, ebx
push edi
push ebx
lea ecx, [esp + 0x10]
call fcn.004be1d0
mov edi, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
mov ecx, edi
call fcn.004be660
add al, 2
lea ecx, [esp + 0xc]
push eax
call fcn.004be640
push 0x73
lea ecx, [esp + 0x10]
call fcn.004be640
mov ecx, edi
xor esi, esi
call fcn.004be660
test ax, ax
jle 0x40ded8
push esi
mov ecx, edi
call fcn.004be4c0
push eax
lea ecx, [esp + 0x10]
call fcn.004be640
mov ecx, edi
inc esi
call fcn.004be660
cmp si, ax
jl 0x40deb9
lea ecx, [esp + 0xc]
xor esi, esi
call fcn.004be660
test ax, ax
jle 0x40df07
push esi
lea ecx, [esp + 0x10]
call fcn.004be4c0
movzx ax, al
xor ebx, eax
lea ecx, [esp + 0xc]
inc esi
call fcn.004be660
cmp si, ax
jl 0x40dee8
cmp word [esp + 0x20], 1
jne 0x40df11
not bl
push ebx
lea ecx, [esp + 0x10]
call fcn.004be640
push ecx
lea edx, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x24], esp
push edx
call fcn.004be1b0
mov ecx, edi
call fcn.004be4d0
lea ecx, [esp + 0xc]
mov dword [esp + 0x18], 0xffffffff
call fcn.004be2e0
mov ecx, dword [esp + 0x10]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add esp, 0x10
ret
Function at 0x41b6a0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4e8c08
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0xc]
call fcn.004be1a0
mov edi, dword [esp + 0x28]
xor ebp, ebp
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], ebp
mov al, byte [edi]
inc al
push eax
call fcn.004be640
xor ecx, ecx
mov cl, byte [esi + 0x41]
push ecx
lea ecx, [esp + 0x10]
call fcn.004be640
mov dl, byte [esi + 0x40]
lea ecx, [esp + 0xc]
push edx
call fcn.004be640
mov al, byte [esi + 0x43]
mov cl, al
or cl, 0x10
inc al
push ecx
lea ecx, [esp + 0x10]
mov byte [esi + 0x43], al
call fcn.004be640
cmp byte [esi + 0x43], 0x10
jb 0x41b71b
mov byte [esi + 0x43], 0
cmp byte [edi], 0
jle 0x41b73b
movsx eax, bp
mov cl, byte [eax + edi + 1]
push ecx
lea ecx, [esp + 0x10]
call fcn.004be640
movsx dx, byte [edi]
inc ebp
cmp bp, dx
jl 0x41b720
lea ecx, [esp + 0x10]
call fcn.004be1a0
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 1
call fcn.004be1a0
mov edi, dword [esp + 0x2c]
push 0
push 0x520010
mov ecx, edi
mov byte [esp + 0x28], 2
call fcn.004be740
push 4
push 0x50fd0c
lea ecx, [esp + 0x18]
call fcn.004be740
xor eax, eax
lea ecx, [esp + 0x10]
mov al, byte [esi + 0x41]
push eax
push 1
call fcn.004be5e0
mov cl, byte [esi + 0x40]
push ecx
push 2
lea ecx, [esp + 0x18]
call fcn.004be5e0
mov ecx, 0x520070
call fcn.004c6770
lea edx, [esp + 0x14]
lea eax, [esp + 0x10]
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call fcn.004be1b0
call fcn.0047d320
add esp, 8
lea edx, [esp + 0xc]
push edi
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push edx
call fcn.004be1b0
mov ecx, esi
call fcn.0041a510
mov ecx, 0x520070
mov esi, eax
call fcn.004c67b0
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 1
call fcn.004be2e0
lea ecx, [esp + 0x10]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
mov ecx, dword [esp + 0x18]
mov ax, si
pop edi
pop esi
mov dword fs:[0], ecx
pop ebp
add esp, 0x18
ret 8
Function at 0x423f20
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4e98e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
push 6
push 0x510140
lea ecx, [esp + 0x14]
call fcn.004be240
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0
call fcn.004be1a0
push 1
push 5
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 1
call fcn.004be5e0
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
mov ecx, esi
call fcn.004235d0
test ax, ax
jge 0x423fb9
lea ecx, [esp + 8]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
or ax, 0xffff
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop esi
pop ebx
add esp, 0x1c
ret
push 1
lea ecx, [esp + 0xc]
call fcn.004be4c0
cmp al, 5
jb 0x424185
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 2
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x510138
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
xor ebx, ebx
mov dl, bl
lea ecx, [esp + 0xc]
add dl, 2
push edx
push 5
call fcn.004be5e0
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
mov ecx, esi
call fcn.004235d0
test ax, ax
jl 0x423f85
inc ebx
cmp bx, 2
jl 0x42400c
push 1
lea ecx, [esp + 0xc]
call fcn.004be4c0
cmp al, 5
jb 0x424185
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 3
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x510130
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
xor ebx, ebx
mov dl, bl
lea ecx, [esp + 0xc]
add dl, 2
push edx
push 5
call fcn.004be5e0
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
mov ecx, esi
call fcn.004235d0
test ax, ax
jl 0x423f85
inc ebx
cmp bx, 2
jl 0x424091
push 1
lea ecx, [esp + 0xc]
call fcn.004be4c0
cmp al, 5
jb 0x424185
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 4
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x510128
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 5
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x510120
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
lea ecx, [esp + 8]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
xor ax, ax
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop esi
pop ebx
add esp, 0x1c
ret
lea ecx, [esp + 8]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
mov ecx, dword [esp + 0x18]
pop esi
mov ax, 1
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret
Function at 0x445540
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4ebd18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
push 6
push 0x510218
lea ecx, [esp + 0x10]
call fcn.004be240
lea ecx, [esp + 0xc]
mov dword [esp + 0x20], 0
call fcn.004be1a0
mov ax, word [esi + 0x2c]
lea ecx, [esp + 8]
sar eax, 8
push eax
push 1
mov byte [esp + 0x28], 1
call fcn.004be5e0
mov cl, byte [esi + 0x2c]
push ecx
push 2
lea ecx, [esp + 0x10]
call fcn.004be5e0
push 1
push 3
lea ecx, [esp + 0x10]
call fcn.004be5e0
push 0
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 2
mov ecx, esp
mov dword [esp + 0x24], esp
push 6
push 0x50fb4c
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
xor ebx, ebx
mov dl, bl
lea ecx, [esp + 8]
add dl, 5
push edx
push 5
call fcn.004be5e0
lea eax, [esp + 0xc]
lea ecx, [esp + 8]
push eax
push ecx
mov ecx, esi
call fcn.004235d0
test ax, ax
jl 0x4456b7
inc ebx
cmp ebx, 6
jl 0x4455f1
push 0
push 4
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 3
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x510f50
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
cmp ax, 4
je 0x445729
xor ebx, ebx
mov dl, bl
lea ecx, [esp + 8]
add dl, 0xb
push edx
push 5
call fcn.004be5e0
lea eax, [esp + 0xc]
lea ecx, [esp + 8]
push eax
push ecx
mov ecx, esi
call fcn.004235d0
inc ebx
cmp ebx, 4
jl 0x44566c
push 4
push 5
lea ecx, [esp + 0x10]
call fcn.004be5e0
lea edx, [esp + 0xc]
lea eax, [esp + 8]
push edx
push eax
mov ecx, esi
call fcn.004235d0
test ax, ax
jge 0x4456eb
lea ecx, [esp + 0xc]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
or ax, 0xffff
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop esi
pop ebx
add esp, 0x1c
ret
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x50f634
call fcn.004be240
push ecx
mov byte [esp + 0x30], 4
mov ecx, esp
mov dword [esp + 0x20], esp
push 6
push 0x510f48
call fcn.004be240
mov ecx, 0x5200a8
mov byte [esp + 0x30], 1
call fcn.004caf10
lea ecx, [esp + 0xc]
mov byte [esp + 0x20], 0
call fcn.004be2e0
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0xffffffff
call fcn.004be2e0
mov ecx, dword [esp + 0x18]
pop esi
xor ax, ax
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret
Function at 0x478010
Capabilities:
Get common file path

Disassembly:
sub esp, 0x200
lea eax, [esp]
push ebx
push esi
push edi
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, str._vinfo.dat
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5121d8
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x10]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.004df409
mov edx, dword [esp + 0x218]
lea ecx, [esp + 0x21c]
mov esi, eax
push ecx
lea eax, [esp + 0x18]
push edx
push eax
call fcn.004df398
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
push esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x28]
push 1
push ecx
call fcn.004df28e
push esi
call fcn.004df238
add esp, 0x28
pop edi
pop esi
pop ebx
add esp, 0x200
ret