joyce8/EMBER2024-capa huggingface dataset:
Function at 0x42f0e0
Capabilities:
Persist via windows service
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x10
push esi
push str.Init_sdfilter_manager
call fcn.00404c20
add esp, 4
push 0x457f98
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x4ad0ac], eax
test eax, eax
je 0x42f12a
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.FilterSendMessage
push eax
call esi
mov dword [0x4ad0b0], eax
mov eax, dword [0x4ad0ac]
push str.FilterConnectCommunicationPort
push eax
call esi
mov dword [0x4ad0b4], eax
lea ecx, [esp + 4]
push ecx
push 1
push 0
push str.SOFTWAREBkav
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42f214
mov ecx, dword [esp + 4]
lea edx, [esp + 8]
push edx
push 0x4ace84
lea eax, [esp + 0x14]
push eax
push 0
push str.szBkavDir
push ecx
mov dword [esp + 0x20], 0x228
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x42f188
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
add esp, 0x10
ret
mov eax, dword [esp + 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push eax
call esi
push 0x4ace84
push str.szBkavDir:__s
call fcn.00404c20
add esp, 8
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 8]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SYSTEMCurrentControlSet_servicesBkavSdFltParameters
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x42f214
mov eax, 0x4ace84
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42f1e0
mov ecx, dword [esp + 4]
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push 0x4ace84
push 1
push 0
push str.szBkavDir
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [esp + 4]
push edx
call esi
pop esi
add esp, 0x10
ret

Function at 0x42f3a0
Capabilities:
Create process on windows
Get common file path

Disassembly:
sub esp, 0x434
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x42c], eax
push 0x104
lea eax, [esp + 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str._system32drivers
lea ecx, [esp + 0x20c]
push 0x104
push ecx
call fcn.0043f083
add esp, 0xc
lea edx, [esp + 0x208]
push edx
push str.DefaultInstall_128__sBkavSdFlt.inf
lea eax, [esp + 8]
push 0x104
push eax
call fcn.0043ed50
lea ecx, [esp + 0x10]
push ecx
push str.params:__s
call fcn.00404c20
add esp, 0x18
push 0
lea edx, [esp + 4]
push edx
push 0
push 0
call sub.SETUPAPI.dll_InstallHinfSectionW
push 0
push str.fltmc_load_BkavSdFlt
call dword [sym.imp.KERNEL32.dll_WinExec]
mov ecx, dword [esp + 0x42c]
xor ecx, esp
xor al, al
call fcn.0043e4c7
add esp, 0x434
ret
Function at 0x42f9d0
Capabilities:
Check os version

Disassembly:
sub esp, 0x12c
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x128], eax
lea eax, [esp + 0xc]
push eax
mov dword [esp + 8], 0
mov dword [esp + 0x10], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x42faca
cmp dword [esp + 0x10], 6
jb 0x42faca
cmp dword [esp + 0x14], 1
jb 0x42faca
lea ecx, [esp + 8]
push ecx
push 1
push 0
push str.SYSTEMCurrentControlSet_servicesBkavSRCoreInstancesBkavSRCore
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42fa5c
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor al, al
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x12c
ret
call fcn.00431020
test eax, eax
je 0x42fac1
lea eax, [esp + 4]
push eax
call dword [0x4adbb4]
test eax, eax
je 0x42faca
call fcn.0042faf0
test al, al
je 0x42fa9f
mov ecx, dword [esp + 4]
push ecx
call dword [0x4adbb8]
mov al, 1
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x12c
ret
mov edx, dword [esp + 4]
push edx
call dword [0x4adbb8]
xor al, al
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x12c
ret
call fcn.0042faf0
test al, al
jne 0x42fa88
mov ecx, dword [esp + 0x128]
xor ecx, esp
xor al, al
call fcn.0043e4c7
add esp, 0x12c
ret

Function at 0x42faf0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x434
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x42c], eax
push 0x104
lea eax, [esp + 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x42fb32
xor al, al
mov ecx, dword [esp + 0x42c]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x434
ret
push str._system32drivers
lea ecx, [esp + 0x20c]
push 0x104
push ecx
call fcn.0043f083
add esp, 0xc
lea edx, [esp + 0x208]
push edx
push str.DefaultInstall_128__sBkavSRCore.inf
lea eax, [esp + 8]
push 0x104
push eax
call fcn.0043ed50
lea ecx, [esp + 0x10]
push ecx
push str.params:__s
call fcn.00404c20
add esp, 0x18
push 0
lea edx, [esp + 4]
push edx
push 0
push 0
call sub.SETUPAPI.dll_InstallHinfSectionW
mov ecx, dword [esp + 0x42c]
xor ecx, esp
mov al, 1
call fcn.0043e4c7
add esp, 0x434
ret
Function at 0x42fca0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x453bf2
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48e050]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x5c]
push 0x484c44
push eax
call fcn.00440469
add esp, 8
lea ecx, [esp + 0x14]
push ecx
mov esi, eax
call fcn.00439920
mov dword [esp + 0x54], 0
test esi, esi
je 0x42fd7f
mov edi, 7
xor edx, edx
mov eax, esi
mov word [esp + 0x30], dx
mov dword [esp + 0x44], edi
mov dword [esp + 0x40], 0
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42fd12
sub eax, edx
sar eax, 1
push eax
mov eax, esi
lea esi, [esp + 0x30]
call fcn.00419db0
mov eax, esi
push eax
lea ebx, [esp + 0x18]
mov byte [esp + 0x58], 1
call fcn.0041de90
xor ebx, ebx
mov byte [esp + 0x54], bl
cmp dword [esp + 0x44], 8
jb 0x42fd58
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0043e4bc
add esp, 4
xor edx, edx
push 0x484c44
push ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebx
mov word [esp + 0x38], dx
call fcn.00440469
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x42fcfa
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
je 0x42fdba
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x58], 0xffffffff
call fcn.0041de10
xor eax, eax
jmp 0x42fe7c
mov ebp, 8
cmp dword [esi + 0x34], ebp
jb 0x42fdc9
mov eax, dword [esi + 0x20]
jmp 0x42fdcc
lea eax, [esi + 0x20]
cmp dword [esi + 0x18], ebp
jb 0x42fdd6
mov esi, dword [esi + 4]
jmp 0x42fdd9
add esi, 4
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ebx, eax
mov ecx, edi
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
ja 0x42fe16
call fcn.0043f37f
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x34], ebp
jb 0x42fe20
mov ebp, dword [esi + 0x20]
jmp 0x42fe23
lea ebp, [esi + 0x20]
sub edi, esi
mov eax, 0x92492493
imul edi
add edx, edi
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x42fe43
call fcn.0043f37f
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x18], 8
jb 0x42fe4e
mov esi, dword [esi + 4]
jmp 0x42fe51
add esi, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push ebp
push esi
push str.CopyFileFromSafeRun:__s____s____d____d
call fcn.00404c20
add esp, 0x14
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x58], 0xffffffff
call fcn.0041de10
mov eax, ebx
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
Function at 0x4301e0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
push str.ThreadGetMessFromSRCore
call fcn.00404c20
add esp, 4
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x244]
lea ecx, [edx + 0xaec]
mov edx, dword [edx + 0xafc]
push ecx
push 0
push 8
lea ecx, [esp + 0x1c]
push ecx
push 0
push eax
mov dword [esp + 0x28], 0xc5dc9d7a
mov dword [esp + 0x2c], 0
call edx
mov ecx, eax
and ecx, 0x80000000
cmp ecx, 0x80000000
jne 0x43025f
push eax
push str.ThreadGetMessFromSRCore:_Could_not_connect_to_SRCore:_0x_08x_n
call fcn.00404c20
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualFree]
push 4
push 0x3000
push 0x5000
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
test edi, edi
je 0x430265
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xaec]
mov eax, dword [eax + 0xb00]
push 0
push 0x5000
push edi
push edx
call eax
mov ecx, eax
and ecx, 0x80000000
cmp ecx, 0x80000000
jne 0x4302c3
push eax
push str.ThreadGetMessFromSRCore:_Get_mess_from_SRCore_failed__0x_08x_n
call fcn.00404c20
add esp, 8
push 0x8000
push 0
push edi
call ebx
jmp 0x430265
push str.ThreadGetMessFromSRCore:_Get_new_mess_from_SRCore_
call fcn.00404c20
add esp, 4
push 4
push 0x3000
push 8
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
test esi, esi
je 0x430265
lea edx, [esp + 0xc]
push edx
push 0
push esi
push 0x4301b0
push 0
push 0
mov dword [esi], 0x4ad0c0
mov dword [esi + 4], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
jne 0x430326
push 0x8000
push eax
push esi
call ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ThreadGetMessFromSRCore:_create_thread_dispatch_mess_failed__0x_08x_n
jmp 0x4302af
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x430265
Function at 0x430ac0
Capabilities:
Get disk information

Disassembly:
sub esp, 0x318
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x314], eax
mov eax, dword [esp + 0x31c]
mov ecx, dword [0x483690]
mov dx, word [0x483694]
push esi
mov dword [esp + 4], eax
lea esi, [esp + 0x10]
mov eax, esi
push eax
push 0x80
mov dword [esp + 0x10], ecx
mov word [esp + 0x14], dx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
jne 0x430b22
pop esi
mov ecx, dword [esp + 0x314]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x318
ret
push ebp
mov ebp, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov cx, word [esi]
push 0x104
lea edx, [esp + 0x11c]
push edx
lea eax, [esp + 0x18]
push eax
mov word [esp + 0x1c], cx
call edi
test eax, eax
je 0x430b60
lea ecx, [esp + 0x118]
push ecx
push ebx
call ebp
test eax, eax
jne 0x430b8a
nop
mov dx, word [esi]
add esi, 2
test dx, dx
jne 0x430b60
cmp word [esi], dx
jne 0x430b30
pop edi
pop ebp
xor eax, eax
pop esi
mov ecx, dword [esp + 0x314]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x318
ret
lea eax, [esp + 0x118]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x430b94
sub eax, edx
mov edx, dword [esp + 0xc]
sar eax, 1
lea eax, [ebx + eax*2]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0x457c24
push edx
call fcn.0043ecb8
xor ecx, ecx
add esp, 0x10
cmp eax, 0xffffffff
setne cl
pop edi
pop ebp
pop esi
mov eax, ecx
mov ecx, dword [esp + 0x314]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x318
ret

Function at 0x430be0
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x23c
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x238], eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
jne 0x430c25
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x238]
xor ecx, esp
call fcn.0043e4c7
add esp, 0x23c
ret
lea eax, [esp + 0xc]
push eax
push esi
mov dword [esp + 0x14], 0x22c
xor edi, edi
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x430c0c
mov edi, edi
lea ecx, [esp + 0x30]
push 0x478fa0
push ecx
call fcn.0043ec25
add esp, 8
test eax, eax
je 0x430c67
lea edx, [esp + 0xc]
push edx
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x430c40
jmp 0x430c6b
mov edi, dword [esp + 0x14]
push 1
push ebx
mov ecx, edi
call fcn.00413450
mov ecx, dword [esp + 0x248]
add esp, 8
pop edi
pop esi
xor ecx, esp
call fcn.0043e4c7
add esp, 0x23c
ret
Function at 0x430c90
Capabilities:
Check if file exists
Get disk information

Disassembly:
sub esp, 0x528
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x524], eax
mov eax, dword [esp + 0x534]
mov ecx, dword [0x483690]
mov dx, word [0x483694]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x14], eax
lea esi, [esp + 0x20]
mov eax, esi
push eax
push 0x80
mov dword [esp + 0x20], ecx
mov word [esp + 0x24], dx
call dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
test eax, eax
je 0x430da4
mov edi, dword [esp + 0x53c]
mov ebx, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
mov ebp, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
jmp 0x430d00
mov cx, word [esi]
push 0x104
lea edx, [esp + 0x32c]
push edx
lea eax, [esp + 0x20]
push eax
mov word [esp + 0x24], cx
call ebx
test eax, eax
je 0x430d90
push edi
push str.BkavSafeRun
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x12c]
push str._s_s_lx
push edx
call fcn.0043ecb8
add esp, 0x14
cmp eax, 0xffffffff
je 0x430d90
lea eax, [esp + 0x120]
push eax
push str.ScanAllFileInSafeRun:_scan_path:_s_n
call fcn.00404c20
add esp, 8
lea ecx, [esp + 0x120]
push ecx
call ebp
test eax, eax
je 0x430d90
push str.CopyFileInSafeRun
call fcn.00404c20
mov edx, dword [esp + 0x18]
add esp, 4
push edx
lea eax, [esp + 0x124]
push eax
call fcn.00430dc0
add esp, 8
lea ebx, [ebx]
mov cx, word [esi]
add esi, 2
test cx, cx
jne 0x430d90
cmp word [esi], cx
jne 0x430d00
mov ecx, dword [esp + 0x534]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043e4c7
add esp, 0x528
ret
Function at 0x430dc0
Capabilities:
Copy file
Enumerate files on windows
Enumerate files recursively

Disassembly:
sub esp, 0xc84
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0xc7c], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push ebp
mov ebp, dword [esp + 0xc94]
push esi
push edi
mov edi, dword [esp + 0xc98]
push 0x47df94
push edi
lea eax, [esp + 0x490]
push 0x47903c
push eax
call ebx
add esp, 0x10
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x430ffb
mov esi, dword [sym.imp.SHLWAPI.dll_StrStrIW]
lea ebx, [ebx]
lea eax, [esp + 0x44]
push 0x47dcbc
push eax
call fcn.0043ec25
add esp, 8
test eax, eax
je 0x430fd8
lea ecx, [esp + 0x44]
push 0x47dcc0
push ecx
call fcn.0043ec25
add esp, 8
test eax, eax
je 0x430fd8
test byte [esp + 0x18], 0x10
jne 0x430fb2
lea edx, [esp + 0x44]
push edx
push edi
lea eax, [esp + 0x490]
push 0x47903c
push eax
call ebx
lea ecx, [esp + 0x498]
push ecx
push str.szBuff___file_name__s
call fcn.00404c20
add esp, 0x18
push str..doc
lea edx, [esp + 0x48c]
push edx
call esi
test eax, eax
jne 0x430efc
push str..docx
lea eax, [esp + 0x48c]
push eax
call esi
test eax, eax
jne 0x430efc
push str..xls
lea ecx, [esp + 0x48c]
push ecx
call esi
test eax, eax
jne 0x430efc
push str..xlsx
lea edx, [esp + 0x48c]
push edx
call esi
test eax, eax
jne 0x430efc
push str..pdf
lea eax, [esp + 0x48c]
push eax
call esi
test eax, eax
je 0x430fd8
push str..lnk
lea ecx, [esp + 0x48c]
push ecx
call esi
test eax, eax
jne 0x430fd8
push 0x104
push ebp
lea edx, [esp + 0x270]
push 0x10e
push edx
call fcn.0043e9ba
push 0x104
push 0x4576d8
lea eax, [esp + 0x280]
push 0x10e
push eax
call fcn.0043e4d6
push 0x104
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x290]
push 0x10e
push edx
call fcn.0043e4d6
lea eax, [esp + 0x298]
push eax
push str.szDest_:__s
call fcn.00404c20
add esp, 0x38
push 0
lea ecx, [esp + 0x26c]
push ecx
lea edx, [esp + 0x490]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x430fa3
push str.bCopy_is_TRUE
call fcn.00404c20
add esp, 4
jmp 0x430fd8
push str.bCopy_is_FALSE
call fcn.00404c20
add esp, 4
jmp 0x430fd8
lea eax, [esp + 0x44]
push eax
push edi
lea ecx, [esp + 0x490]
push 0x47903c
push ecx
call ebx
lea edx, [esp + 0x498]
push ebp
push edx
call fcn.00430dc0
add esp, 0x18
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x430e30
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [esp + 0xc8c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043e4c7
add esp, 0xc84
ret
Function at 0x431070
Capabilities:
Copy file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x48a248
push 0x441f50
mov eax, dword fs:[0]
push eax
sub esp, 0x364
mov eax, dword [0x48e050]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x374], eax
mov edi, ecx
mov dword [ebp - 0x368], 0xffffffff
xor ebx, ebx
mov dword [ebp - 0x36c], ebx
mov dword [ebp - 0x370], ebx
mov dword [ebp - 4], ebx
push str.:Zone.Identifier
push edi
push 0x457c24
lea edx, [ebp - 0x254]
call fcn.004321e0
add esp, 0xc
lea ecx, [ebp - 0x254]
push ecx
push str.szDestZoneFilePath:__s
call fcn.00404c20
add esp, 8
push ebx
push 0x2000000
push 3
push ebx
push 3
push bind
lea edx, [ebp - 0x254]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x368], esi
cmp esi, 0xffffffff
je 0x431159
push ebx
lea eax, [ebp - 0x36c]
push eax
push 0x104
lea ecx, [ebp - 0x364]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x431147
mov ebx, 1
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or esi, 0xffffffff
mov dword [ebp - 0x368], esi
jmp 0x43116d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateFile_szDestZoneFilePath_error:__d
call fcn.00404c20
add esp, 8
push 0
push edi
mov edx, dword [ebp - 0x374]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x370], eax
test ebx, ebx
je 0x4311d1
push 0
push 0x80
push 1
push 0
push 3
push 0x40000000
lea eax, [ebp - 0x254]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x368], esi
cmp esi, 0xffffffff
je 0x4311d1
push 0
lea ecx, [ebp - 0x36c]
push ecx
mov edx, dword [ebp - 0x36c]
push edx
lea eax, [ebp - 0x364]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 4], 0xfffffffe
call fcn.00431207
mov eax, dword [ebp - 0x370]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.0043e4c7
mov esp, ebp
pop ebp
ret 4
Function at 0x432430
Capabilities:
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x453bb8
mov eax, dword fs:[0]
push eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48e050]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, ecx
mov ebp, dword [esp + 0x24]
test esi, esi
jne 0x432462
xor eax, eax
jmp 0x432476
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x432467
sub eax, edx
sar eax, 1
mov ebx, eax
push esi
mov eax, ebp
call fcn.004015c0
push 0x4858b0
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call fcn.004322c0
lea edi, [ebp + 4]
mov dword [esp + 0x1c], 0
call fcn.0042e780
mov dword [esp + 0x1c], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4324c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
push str.pszAppFolder:__s
call fcn.00404c20
mov eax, dword [edi]
mov esi, dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
add esp, 8
push eax
call esi
test eax, eax
jne 0x4324f0
mov ecx, dword [edi]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, dword [edi]
push edi
call esi
test eax, eax
je 0x432515
mov ecx, ebp
call fcn.00433560
push eax
call fcn.0040d7e0
add esp, 4
mov ecx, ebp
call fcn.00433760
mov eax, 1
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 4
Function at 0x432bb0
Capabilities:
Check if file exists
Get file attributes
Get file size

Disassembly:
sub esp, 0x9ac
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x9a8], eax
mov eax, dword [esp + 0x9b0]
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
test ebx, ebx
je 0x432d14
push 0x984
lea ecx, [esp + 0x2c]
push 0
push ecx
call fcn.004416b0
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x82c], eax
cmp eax, 0xffffffff
je 0x432d14
push 0
push 0x80
push 3
push 0
push 1
push bind
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
test esi, esi
je 0x432d14
cmp esi, 0xffffffff
je 0x432d14
lea edx, [esp + 0x840]
push edx
lea eax, [esp + 0x83c]
push eax
lea ecx, [esp + 0x838]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x432d0d
lea edx, [esp + 0x10]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp dword [esp + 0x10], 0
mov ebp, eax
ja 0x432d0d
test ebp, ebp
je 0x432d0d
push 0
push 0
push 0
push esi
mov dword [esp + 0x838], ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x432ca6
push ebp
call fcn.00432d30
test eax, eax
jne 0x432ca8
xor eax, eax
push esi
mov dword [esp + 0x84c], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea ecx, [esp + 0x85c]
push ecx
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
push 0x63
lea eax, [esp + 0x868]
push edi
push eax
call fcn.0043e6ef
push 0x3ff
lea ecx, [esp + 0x38]
push ebx
push ecx
call fcn.0043e6ef
mov edi, dword [esp + 0x2c]
mov ecx, 0x261
lea esi, [esp + 0x40]
add esp, 0x18
rep movsd dword es:[edi], dword [esi]
mov eax, 1
jmp 0x432d16
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x9b4]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.0043e4c7
add esp, 0x9ac
ret 4

Function at 0x432d30
Capabilities:
Parse pe header
Read file on windows

Disassembly:
sub esp, 0x88
mov eax, dword [0x48e050]
xor eax, esp
mov dword [esp + 0x84], eax
push ebx
push ebp
mov ebp, dword [esp + 0x94]
xor ebx, ebx
cmp ebp, 0x64
ja 0x432d58
xor eax, eax
jmp 0x432dd2
push edi
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [esp + 0x10]
push eax
push 0x40
lea ecx, [esp + 0x1c]
push ecx
push esi
call edi
cmp dword [esp + 0xc], 0x40
je 0x432d7b
xor eax, eax
jmp 0x432dd1
mov edx, 0x5a4d
cmp word [esp + 0x10], dx
jne 0x432d8c
mov ebx, 1
mov eax, dword [esp + 0x4c]
add ebp, 0xfffffff6
cmp eax, ebp
ja 0x432dcf
push 0
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x432dcf
push 0
lea eax, [esp + 0x10]
push eax
push 4
lea ecx, [esp + 0x1c]
push ecx
push esi
call edi
cmp dword [esp + 0xc], 4
jne 0x432dcf
cmp dword [esp + 0x10], 0x4550
jne 0x432dcf
mov ebx, 2
mov eax, ebx
pop edi
mov ecx, dword [esp + 0x8c]
pop ebp
pop ebx
xor ecx, esp
call fcn.0043e4c7
add esp, 0x88
ret 4