joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41d700
Capabilities:
Delete file
Get common file path

Disassembly:
sub esp, 0xa28
push ebx
push ebp
push esi
push edi
xor ebp, ebp
mov ebx, dword [esp + 0xa3c]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x21a]
mov word [esp + 0x218], bp
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.MSVCRT.dll__snwprintf]
push ebx
stosw word es:[edi], ax
push 0x4f6574
lea eax, [esp + 0x220]
push 0x103
push eax
call esi
mov edi, dword [sym.imp.MSVCRT.dll_wcsrchr]
lea ecx, [esp + 0x228]
push 0x5c
push ecx
call edi
add esp, 0x18
test eax, eax
je 0x41d776
add eax, 2
lea edx, [esp + 0x218]
push eax
push edx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
lea eax, [esp + 0x218]
push 0x2e
push eax
call edi
xor edx, edx
add esp, 8
cmp eax, edx
je 0x41d78e
mov word [eax], dx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x62a]
mov word [esp + 0x628], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x12]
mov word [esp + 0x10], dx
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x628]
push ecx
push 0x103
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea edx, [esp + 0x218]
lea eax, [esp + 0x628]
push edx
push eax
push str._sTheWorld_skin_s_
lea ecx, [esp + 0x1c]
push 0x103
push ecx
call esi
lea edx, [esp + 0x24]
push edx
call fcn.00428a20
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.004abe00
mov cx, word [0x50fce0]
xor eax, eax
mov word [esp + 0x440], cx
mov ecx, 0x81
lea edi, [esp + 0x442]
add esp, 0x20
rep stosd dword es:[edi], eax
push str.Skin
push 0x50ff44
push 0x4f8500
lea edx, [esp + 0x42c]
push 0x103
push edx
stosw word es:[edi], ax
call esi
lea eax, [esp + 0x434]
push eax
call fcn.00428a20
mov cx, word [0x50fce0]
xor eax, eax
mov word [esp + 0x848], cx
mov ecx, 0x81
lea edi, [esp + 0x84a]
add esp, 0x18
rep stosd dword es:[edi], eax
lea edx, [esp + 0x10]
stosw word es:[edi], ax
push edx
push str._sskin.ini
lea eax, [esp + 0x838]
push 0x103
push eax
call esi
lea ecx, [esp + 0x840]
push 0
push ecx
call fcn.00428660
add esp, 0x18
test eax, eax
je 0x41d8c3
lea edx, [esp + 0x420]
push 1
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00429280
add esp, 0xc
mov ebp, 1
lea ecx, [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea edx, [esp + 0x10]
push edx
call esi
push 0
push ebx
call fcn.004290d0
add esp, 8
push ebx
call esi
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0xa28
ret 4
Function at 0x41d990
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dfe60
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x668
push ebx
push esi
mov dword [ebp - 0x14], ecx
push edi
xor ebx, ebx
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x672]
mov word [ebp - 0x674], bx
mov dword [ebp - 0x10], esp
rep stosd dword es:[edi], eax
mov ecx, dword [0x5eb4e4]
push ebx
stosw word es:[edi], ax
lea eax, [ebp - 0x674]
push 0x103
push eax
push ecx
call fcn.00428670
mov ecx, 0x81
xor eax, eax
lea edi, [ebp - 0x46a]
mov word [ebp - 0x46c], bx
mov edx, dword [ebp + 8]
add esp, 0x10
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x4f8540
lea eax, [ebp - 0x674]
push edx
push eax
push 0x4f6ae4
lea ecx, [ebp - 0x46c]
push 0x103
push ecx
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x18
lea edx, [ebp - 0x264]
lea eax, [ebp - 0x46c]
mov word [ebp - 0x266], bx
push edx
push eax
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
mov dword [ebp + 8], edi
je 0x41dab9
mov esi, dword [sym.imp.MSVCRT.dll_wcscmp]
lea ecx, [ebp - 0x238]
push 0x4f853c
push ecx
call esi
add esp, 8
test eax, eax
je 0x41daa0
lea edx, [ebp - 0x238]
push 0x4f8534
push edx
call esi
add esp, 8
test eax, eax
je 0x41daa0
test byte [ebp - 0x264], 0x10
je 0x41daa0
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x238]
push eax
push ebx
call fcn.0041c710
lea ecx, [ebp - 0x264]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41da5d
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x41daf0
Capabilities:
Copy file
Create process on windows
Get common file path

Disassembly:
mov eax, 0x18a8
call fcn.004ace40
mov eax, dword [0x5e8040]
push esi
xor esi, esi
push edi
cmp eax, esi
mov edi, ecx
je 0x41dcee
lea eax, [esp + 8]
mov dword [esp + 8], esi
push eax
push str.Count
push str.UnInstallExt
call fcn.004082f0
mov eax, dword [esp + 0x14]
add esp, 0xc
cmp eax, esi
ja 0x41db3b
pop edi
xor eax, eax
pop esi
add esp, 0x18a8
ret
mov ecx, edi
call fcn.0041d900
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x86a]
mov word [esp + 0x868], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x4a]
mov word [esp + 0x48], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x662]
mov word [esp + 0x660], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x45a]
mov word [esp + 0x458], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x252]
mov word [esp + 0x250], si
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x458]
push ecx
push 0x103
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov esi, dword [sym.imp.MSVCRT.dll__snwprintf]
lea edx, [esp + 0x458]
push edx
push str._sTheWorld_
lea eax, [esp + 0x258]
push 0x103
push eax
call esi
lea ecx, [esp + 0x260]
push ecx
call fcn.00428a20
add esp, 0x14
lea edx, [esp + 0x250]
lea eax, [esp + 0x48]
push edx
push 0x4f8548
push 0x103
push eax
call esi
add esp, 0x10
call fcn.00408060
push eax
lea ecx, [esp + 0x664]
push 0x103
push ecx
call esi
add esp, 0xc
lea edx, [esp + 0x48]
lea eax, [esp + 0x660]
push 1
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [esp + 0x48]
lea edx, [esp + 0x868]
push ecx
push 0x4f6850
push 9
push str._tp:
push str._s_d__s_s
push 0x823
push edx
call esi
add esp, 0x1c
mov ecx, 0xe
xor eax, eax
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0xc]
lea eax, [esp + 0x868]
push ecx
mov dword [esp + 0x10], 0x3c
mov dword [esp + 0x14], 0x40
mov dword [esp + 0x20], 0x50fd3c
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], str.runas
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x41dcd3
mov edx, dword [esp + 0x44]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esp + 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.UnInstallExt
call fcn.00407f20
add esp, 4
mov eax, 1
pop edi
pop esi
add esp, 0x18a8
ret
mov ecx, edi
call fcn.00422530
pop edi
mov eax, 1
pop esi
add esp, 0x18a8
ret
Function at 0x421340
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x208
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0xe4]
test eax, eax
jne 0x421437
mov eax, dword [esi + 0xf0]
dec eax
je 0x4213eb
dec eax
jne 0x421447
mov ecx, dword [esi + 0xd3c]
lea eax, [esi + 0xb30]
push 0x4f83b8
push eax
call fcn.0041dd80
mov edx, eax
test edx, edx
je 0x421447
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xa]
mov word [esp + 8], 0
rep stosd dword es:[edi], eax
push edx
lea ecx, [esp + 0xc]
push 0x103
push ecx
push 0x50fce0
push str.Type
push str.Global
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [esp + 8], 0
je 0x421447
mov ecx, dword [esi + 0xd3c]
lea edx, [esi + 0xe0]
lea eax, [esp + 8]
push edx
push eax
call fcn.00421230
pop edi
pop esi
add esp, 0x208
ret
mov edi, dword [esi + 0xd38]
test edi, edi
jne 0x421402
mov ecx, esi
call fcn.00421260
mov edi, eax
test edi, edi
je 0x421447
push str.Ext_GetExtensionType
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [0x5e3154], eax
je 0x42141f
call eax
mov dword [esi + 0xe0], eax
cmp edi, dword [esi + 0xd38]
je 0x421447
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
add esp, 0x208
ret
cmp eax, 1
jne 0x421447
call fcn.004ae390
mov dword [esi + 0xe0], eax
pop edi
pop esi
add esp, 0x208
ret
Function at 0x421910
Capabilities:
Read .ini file

Disassembly:
mov eax, dword [ecx + 0xe0]
sub esp, 0xa2c
cmp eax, 0x2000
push ebp
push esi
jne 0x421ac3
lea eax, [ecx + 0xb30]
mov ecx, dword [ecx + 0xd3c]
push 0x4f83b8
push eax
mov dword [esp + 0x10], eax
call fcn.0041dd80
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x421ac3
push ebx
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x836]
mov word [esp + 0x834], bp
rep stosd dword es:[edi], eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push esi
stosw word es:[edi], ax
lea eax, [esp + 0x838]
push 0x103
push eax
push 0x50fce0
push str.Text
push str.SideWeb
call ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x62e]
mov word [esp + 0x62c], bp
rep stosd dword es:[edi], eax
push esi
lea ecx, [esp + 0x630]
push 0x103
push ecx
push 0x50fce0
push 0x4f868c
push str.SideWeb
stosw word es:[edi], ax
call ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x21e]
mov word [esp + 0x21c], bp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x16]
mov word [esp + 0x14], bp
rep stosd dword es:[edi], eax
push esi
lea edx, [esp + 0x220]
push 0x103
push edx
push 0x50fce0
push str.Icon
push str.SideWeb
stosw word es:[edi], ax
call ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x426]
mov word [esp + 0x424], bp
rep stosd dword es:[edi], eax
push 0x5c
push esi
stosw word es:[edi], ax
call dword [sym.imp.MSVCRT.dll_wcsrchr]
add esp, 8
cmp eax, ebp
pop edi
pop ebx
je 0x421a83
sub eax, esi
sar eax, 1
cmp eax, 0x103
jbe 0x421a53
mov eax, 0x103
push eax
lea eax, [esp + 0x420]
push esi
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x214]
lea edx, [esp + 0x41c]
lea eax, [esp + 0xc]
push ecx
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
jmp 0x421a99
lea ecx, [esp + 0x214]
lea edx, [esp + 0xc]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
lea eax, [esp + 0xc]
lea ecx, [esp + 0x624]
push eax
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x830]
push ecx
mov ecx, dword [esp + 0xa40]
push edx
push eax
push ecx
call fcn.0046d380
add esp, 0x14
pop esi
pop ebp
add esp, 0xa2c
ret 4
Function at 0x422530
Capabilities:
Delete directory
Delete file

Disassembly:
sub esp, 0x414
push ebx
lea eax, [esp + 4]
push edi
push eax
xor ebx, ebx
push str.Count
push str.UnInstallExt
mov dword [esp + 0x14], ebx
call fcn.004082f0
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x222]
mov word [esp + 0x220], bx
rep stosd dword es:[edi], eax
mov cx, word [0x50fce0]
add esp, 0xc
stosw word es:[edi], ax
mov word [esp + 0xc], cx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0xe]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
cmp dword [esp + 8], ebx
jbe 0x42264a
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll__snwprintf]
push esi
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x14]
push ebx
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [esp + 0x220]
push str.ext_d
lea edx, [esp + 0x1c]
push 0x103
push edx
rep stosd dword es:[edi], eax
call ebp
lea eax, [esp + 0x22c]
push 0x104
lea ecx, [esp + 0x28]
push eax
push ecx
push str.UnInstallExt
call fcn.00408230
add esp, 0x20
lea edx, [esp + 0x21c]
push 0x4f83c0
push edx
call fcn.0041bc60
mov ecx, eax
call fcn.0041dd80
mov esi, eax
push 0
push esi
call fcn.00428660
add esp, 8
test eax, eax
je 0x42263b
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x42262d
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, 0x64
jl 0x422614
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, eax
jb 0x42259c
pop esi
pop ebp
push str.UnInstallExt
call fcn.00407f20
add esp, 4
pop edi
pop ebx
add esp, 0x414
ret
Function at 0x422660
Capabilities:
Delete directory
Delete file

Disassembly:
sub esp, 0xa30
push ebp
push esi
mov esi, dword [esp + 0xa3c]
push 1
push esi
call fcn.00428660
add esp, 8
test eax, eax
je 0x42289d
xor ebp, ebp
lea eax, [esp + 8]
push ebp
push esi
push eax
call fcn.00462270
add esp, 0xc
cmp eax, 1
je 0x42289d
mov eax, dword [esp + 8]
cmp eax, ebp
je 0x42289d
push ebx
push edi
push ebp
push str.Count
push str.UnInstallExt
push eax
call fcn.00462870
mov esi, eax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x84a]
mov ebx, dword [sym.imp.MSVCRT.dll__snwprintf]
mov word [esp + 0x848], bp
add esp, 0x10
mov dword [esp + 0x14], esi
rep stosd dword es:[edi], eax
push esi
push 0x4f6b28
lea ecx, [esp + 0x840]
push 0x104
push ecx
stosw word es:[edi], ax
call ebx
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x232]
mov word [esp + 0x230], bp
rep stosd dword es:[edi], eax
mov dx, word [0x50fce0]
mov ecx, 0x81
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x43a]
mov word [esp + 0x438], dx
add esp, 0x10
rep stosd dword es:[edi], eax
test esi, esi
stosw word es:[edi], ax
jbe 0x42287e
mov ecx, 0x82
xor eax, eax
lea edi, [esp + 0x428]
push ebp
rep stosd dword es:[edi], eax
mov ecx, 0x82
lea edi, [esp + 0x224]
rep stosd dword es:[edi], eax
push str.ext_d
lea eax, [esp + 0x430]
push 0x103
push eax
call ebx
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x230]
push 0x103
lea edx, [esp + 0x43c]
push ecx
push edx
push str.UnInstallExt
push eax
call fcn.00462720
mov dx, word [0x50fce0]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x3e]
mov word [esp + 0x3c], dx
mov word [esp + 0x654], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edx, dword [0x5eb4e4]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x656]
rep stosd dword es:[edi], eax
push 0
lea ecx, [esp + 0x658]
push 0x104
push ecx
push edx
stosw word es:[edi], ax
call fcn.00428670
add esp, 0x34
lea eax, [esp + 0x220]
lea ecx, [esp + 0x220]
lea edx, [esp + 0x630]
push eax
push ecx
push str.Extensions
push edx
push str._s_s_s_s.dll
lea eax, [esp + 0x2c]
push 0x103
push eax
call ebx
mov eax, dword [0x5e45c4]
add esp, 0x1c
test eax, eax
jne 0x422850
xor esi, esi
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x422844
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x64
jl 0x422825
jmp 0x42285b
mov dword [0x5e45c4], 1
jmp 0x42285b
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov eax, dword [esp + 0x14]
inc ebp
cmp ebp, eax
jb 0x42273f
lea edx, [esp + 0x10]
push 0
push edx
call fcn.00462470
mov eax, dword [esp + 0xa4c]
add esp, 8
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0xa30
ret 4
Function at 0x4272a0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x208
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0
call fcn.004270c0
mov eax, dword [esi + 4]
push 0x3f0
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea ebx, [esi + 0x1874]
mov ecx, ebx
call fcn.00414a70
lea edx, [ebx + 0x5d4d8]
mov ecx, 0x412
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
lea ecx, [esi + 0x214]
push ecx
push 0x4f6574
push 0x824
push edx
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov dx, word [0x50fce0]
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x22]
mov word [esp + 0x20], dx
add esp, 0x10
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x10]
push eax
push 0x103
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ebp, [esi + 0xc]
push ebp
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
lea ecx, [esp + 0x18]
push 0x4f6864
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea edx, [ebx + 0x5d0c8]
push ebp
mov ecx, 0x82
xor eax, eax
mov edi, edx
push 0x4f6574
push 0x104
push edx
rep stosd dword es:[edi], eax
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov esi, dword [esi + 4]
add esp, 0x10
mov ecx, ebx
mov dword [ebx + 0x2694], 0x427470
mov dword [ebx + 0x2690], esi
call fcn.004149a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x208
ret
Function at 0x427bb0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dff90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x74
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x10], esp
cmp word [edi + 4], bx
lea eax, [edi + 4]
mov dword [ebp - 0x18], edi
jne 0x427bf4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x5013c4
push eax
mov dword [ebp - 4], ebx
call dword [sym.imp.MSVCRT.dll__wfopen]
mov esi, eax
add esp, 8
cmp esi, ebx
mov dword [ebp - 0x1c], esi
jne 0x427c22
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov ecx, edi
call fcn.00427fc0
cmp eax, ebx
jne 0x427c4b
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x18
xor eax, eax
lea edi, [ebp - 0x7f]
mov byte [ebp - 0x80], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 0x64
lea eax, [ebp - 0x80]
push 1
push eax
call edi
add esp, 0x10
cmp eax, 0x64
jae 0x427c94
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push 1
lea ecx, [ebp - 0x14]
push 4
push ecx
mov dword [ebp - 0x14], ebx
call edi
add esp, 0x10
cmp eax, 1
jae 0x427cc7
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x14]
push edx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0x14]
push esi
push eax
push 1
push ebx
call edi
mov ecx, dword [ebp - 0x14]
add esp, 0x10
cmp eax, ecx
jae 0x427cfc
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x18]
push ecx
push ebx
mov ecx, edi
call fcn.00428090
test eax, eax
push ebx
jne 0x427d2f
call fcn.004ace19
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004ace19
add esp, 4
mov ecx, edi
push esi
call fcn.00428100
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x427fc0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
xor eax, eax
push ebp
mov ebp, dword [esp + 0x20]
push esi
mov dword [esp + 0x15], eax
push edi
mov dword [esp + 0x1d], eax
push ebp
push 1
lea ecx, [esp + 0x20]
mov word [esp + 0x29], ax
push 0xc
push ecx
mov byte [esp + 0x28], 0
mov byte [esp + 0x33], al
call ebx
add esp, 0x10
mov ecx, 0xc
mov edi, str.TW.3_TAIHANG
lea esi, [esp + 0x18]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x428011
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x42802b
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 4
xor edx, edx
push ebp
mov dword [esp + 0x15], edx
push 1
lea eax, [esp + 0x18]
mov word [esp + 0x1d], dx
push 7
push eax
mov byte [esp + 0x20], 0
mov byte [esp + 0x27], dl
call ebx
add esp, 0x10
mov ecx, 7
mov edi, str.3.0.0.1
lea esi, [esp + 0x10]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x428067
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x428081
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x14
ret 4

Function at 0x428100
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
mov edx, dword [ecx + 0x210]
push edi
xor edi, edi
mov dword [esp + 8], ecx
cmp edx, edi
jne 0x42811a
mov dword [esp + 4], edi
jmp 0x428129
mov eax, dword [ecx + 0x214]
sub eax, edx
sar eax, 2
mov dword [esp + 4], eax
cmp dword [esp + 4], edi
jle 0x428173
push ebx
push ebp
push esi
jmp 0x428138
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x210]
mov ebx, dword [eax + edi*4]
mov esi, dword [ebx + 0x18]
push esi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ecx, dword [esp + 0x20]
mov ebp, eax
push ecx
push 1
push esi
push ebp
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x14
mov ecx, ebx
push esi
push ebp
call fcn.00427af0
mov eax, dword [esp + 0x10]
inc edi
cmp edi, eax
jl 0x428134
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 4
Function at 0x428910
Capabilities:
Get file version info

Disassembly:
mov eax, 0x400c
call fcn.004ace40
push esi
push edi
mov ecx, 0xfff
xor eax, eax
lea edi, [esp + 0x16]
mov word [esp + 0x14], 0
rep stosd dword es:[edi], eax
mov esi, dword [esp + 0x4018]
stosw word es:[edi], ax
lea eax, [esp + 0xc]
push eax
push esi
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x4289d9
cmp eax, 0x3fff
ja 0x4289d9
lea ecx, [esp + 0x14]
push ecx
push eax
push 0
push esi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4289d9
lea edx, [esp + 0x10]
lea eax, [esp + 8]
push edx
push eax
lea ecx, [esp + 0x1c]
push 0x4f6a18
push ecx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4289d9
mov eax, dword [esp + 8]
xor edx, edx
mov esi, dword [esp + 0x4020]
mov edi, dword [esp + 0x401c]
mov dx, word [eax + 0xc]
mov ecx, dword [eax + 0xc]
push edx
xor edx, edx
mov dx, word [eax + 8]
mov eax, dword [eax + 8]
shr ecx, 0x10
push ecx
push edx
shr eax, 0x10
push eax
push str._d._d._d._d
push esi
push edi
call dword [sym.imp.MSVCRT.dll__snwprintf]
add esp, 0x1c
mov word [edi + esi*2 - 2], 0
mov eax, 1
pop edi
pop esi
add esp, 0x400c
ret
pop edi
xor eax, eax
pop esi
add esp, 0x400c
ret

Function at 0x4289f0
Capabilities:
Create directory

Disassembly:
mov eax, dword [esp + 4]
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov esi, eax
test esi, esi
jne 0x428a16
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
mov eax, 1
je 0x428a18
mov eax, esi
pop esi
ret