joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4143b0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43d460
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x452550]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x2c]
push eax
call fcn.00402680
add esp, 4
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x28]
push edx
mov ecx, 0x638fe8
call fcn.00403d20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00403d40
push 0x44a9b4
lea ecx, [ebp - 0x1c]
call fcn.004046f0
mov dword [ebp - 4], 1
mov dword [ebp - 0x34], 0x34
push 0
mov ecx, 0x638fe8
call fcn.004031a0
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x41450b
mov eax, dword [ebp - 0x14]
add eax, 1
push eax
call fcn.0041533a
add esp, 4
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x14]
push eax
push 0
mov ecx, 0x638fe8
call fcn.004031a0
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x4144f9
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x10]
push edx
push 0x44a9b8
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x4144f9
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0xc]
and edx, 0xffff
movzx eax, dx
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0xc]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 8]
and edx, 0xffff
movzx eax, dx
push eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 8]
shr edx, 0x10
and edx, 0xffff
movzx eax, dx
push eax
push str._d._d._d._d
lea ecx, [ebp - 0x1c]
push ecx
call fcn.00403970
add esp, 0x18
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.00415343
add esp, 4
lea ecx, [ebp - 0x1c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004039e0
mov edx, dword [ebp - 0x20]
or edx, 1
mov dword [ebp - 0x20], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.00403d40
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
Function at 0x416230
Capabilities:
Get disk information

Disassembly:
push 0x158
mov eax, 0x43d5be
call fcn.00429cff
mov esi, dword [ebp + 8]
xor eax, eax
mov ebx, dword [ebp + 0xc]
test esi, esi
mov edi, dword [ebp + 0x10]
setne al
mov dword [ebp - 0x158], esi
test eax, eax
jne 0x41625e
call fcn.004158d3
xor eax, eax
test ebx, ebx
setne al
test eax, eax
je 0x416259
lea eax, [ebp - 0x154]
push eax
push esi
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
test eax, eax
jne 0x4162a6
push 0xffffffffffffffff
push ebx
push 0x104
push esi
call fcn.00429ac9
push eax
call fcn.004033e0
add esp, 0x14
push ebx
push edi
call fcn.00416203
xor eax, eax
jmp 0x4163c7
cmp eax, 0x104
jb 0x4162c3
test edi, edi
je 0x41629f
push ebx
lea ecx, [edi + 0x10]
mov dword [edi + 8], 3
call fcn.00404680
jmp 0x41629f
call fcn.00415dc0
push eax
lea ecx, [ebp - 0x15c]
call fcn.00403d60
and dword [ebp - 4], 0
lea eax, [ebp - 0x15c]
push eax
push esi
call fcn.004161b9
mov esi, dword [ebp - 0x15c]
push esi
call dword [sym.imp.SHLWAPI.dll_PathIsUNCA]
test eax, eax
jne 0x4163bc
xor ecx, ecx
lea eax, [ebp - 0x160]
push ecx
push ecx
push eax
lea eax, [ebp - 0x164]
push eax
push ecx
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x41632e
push ebx
push edi
call fcn.00416203
lea ecx, [esi - 0x10]
call fcn.00404190
jmp 0x41629f
mov eax, dword [ebp - 0x160]
test al, 2
jne 0x41634a
push dword [ebp - 0x158]
call dword [sym.imp.USER32.dll_CharUpperA]
mov eax, dword [ebp - 0x160]
test al, 4
jne 0x4163bc
lea eax, [ebp - 0x150]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
je 0x4163bc
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x41631a
cmp eax, dword [ebp - 0x158]
jbe 0x41631a
lea eax, [ebp - 0x124]
push eax
call fcn.004296a0
mov edx, dword [ebp - 0x154]
sub edx, dword [ebp - 0x158]
pop ecx
add eax, edx
mov ecx, 0x104
cmp eax, ecx
jge 0x4163cf
lea eax, [ebp - 0x124]
sub ecx, edx
push eax
push ecx
push dword [ebp - 0x154]
call fcn.0042a607
push eax
call fcn.004033e0
add esp, 0x10
lea ecx, [esi - 0x10]
call fcn.00404190
xor eax, eax
inc eax
call fcn.00429cae
ret 0xc
test edi, edi
je 0x416321
push ebx
lea ecx, [edi + 0x10]
mov dword [edi + 8], 3
call fcn.00404680
jmp 0x416321

Function at 0x418f31
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 4], ecx
mov esi, edi
cmp dword [ebp + 8], esi
je 0x418f76
call fcn.0041727c
push 0xf0
push dword [ebp + 8]
mov ebx, dword [eax + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x418f76
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
je 0x418f92
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.00414e68
mov ebx, eax
test edi, edi
je 0x418f90
test esi, esi
je 0x418f90
push esi
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x41f265
Capabilities:
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43dac3
mov eax, dword fs:[0]
push eax
mov eax, 0x101c
call fcn.0042c040
mov eax, dword [0x452550]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0x10]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0x101c], edx
mov dword [ebp - 0x1028], ebx
cmp dword [ecx + 0x58], ebx
je 0x41f399
push ebx
push eax
call fcn.0041f3e8
mov ebx, eax
test ebx, ebx
jne 0x41f2cd
push esi
jmp 0x41f3c1
call fcn.00415dc0
push eax
lea ecx, [ebp - 0x1014]
call fcn.00403d60
xor ecx, ecx
lea eax, [ebp - 0x1018]
push eax
push ecx
lea eax, [ebp - 0x1020]
mov dword [ebp - 4], ecx
push eax
push ecx
push dword [ebp - 0x101c]
mov dword [ebp - 0x1020], ecx
push ebx
mov dword [ebp - 0x1018], ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x1024], eax
test eax, eax
jne 0x41f358
push dword [ebp - 0x1018]
lea ecx, [ebp - 0x1014]
call fcn.004043f0
lea ecx, [ebp - 0x1018]
push ecx
push eax
lea eax, [ebp - 0x1020]
push eax
push 0
push dword [ebp - 0x101c]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 0xffffffffffffffff
lea ecx, [ebp - 0x1014]
mov dword [ebp - 0x1024], eax
call fcn.004037f0
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x1024], 0
jne 0x41f386
mov esi, dword [ebp - 0x1014]
add esi, 0xfffffff0
push esi
call fcn.00403be0
pop ecx
add eax, 0x10
mov ecx, esi
mov dword [edi], eax
call fcn.00404190
jmp 0x41f3c8
push esi
mov ecx, edi
call fcn.004046f0
mov ecx, dword [ebp - 0x1014]
lea ecx, [ecx - 0x10]
jmp 0x41f37f
test esi, esi
jne 0x41f3a2
mov esi, 0x44b9a7
push dword [ecx + 0x6c]
lea ecx, [ebp - 0x1010]
push 0x1000
push ecx
push esi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x1010]
push eax
mov ecx, edi
call fcn.004046f0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004279e7
mov esp, ebp
pop ebp
ret 0x10

Function at 0x422d10
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x452550]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x422da2
test esi, esi
je 0x422da2
push esi
call fcn.004296a0
push 0xff
mov ebx, eax
mov byte [ebp - 0x104], 0
lea eax, [ebp - 0x103]
push 0
push eax
call fcn.00429610
mov eax, 0x100
add esp, 0x10
cmp ebx, eax
ja 0x422d87
push eax
lea eax, [ebp - 0x104]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextA]
cmp eax, ebx
jne 0x422d87
push esi
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x422d8f
push esi
push edi
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004279e7
mov esp, ebp
pop ebp
ret 8
call fcn.004158d3
int3
Function at 0x4253eb
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x230
mov eax, 0x43e028
call fcn.00429cff
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x230], ebx
call fcn.0041727c
push ebx
mov ecx, dword [eax + 4]
call fcn.0041f00b
mov esi, eax
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x234], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x224], ebx
mov eax, dword [edi]
lea ecx, [ebp - 0x21c]
push ecx
mov ecx, edi
mov byte [ebp - 4], 1
call dword [eax + 0x20]
push 0x2001f
lea ecx, [ebp - 0x22c]
push dword [eax]
push esi
call fcn.00404e60
mov ecx, dword [ebp - 0x21c]
mov ebx, eax
neg ebx
sbb bl, bl
lea ecx, [ecx - 0x10]
call fcn.00404190
inc bl
je 0x425599
xor ebx, ebx
lea eax, [ebp - 0x113]
push 0x103
push ebx
push eax
mov esi, ebx
mov byte [ebp - 0x114], bl
call fcn.00429610
add esp, 0xc
mov dword [ebp - 0x21c], 0x104
lea eax, [ebp - 0x21c]
push ebx
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x114]
push eax
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
jmp 0x425555
push 0x103
lea eax, [ebp - 0x217]
mov dword [ebp - 0x21c], 0x104
push 0
push eax
inc esi
mov byte [ebp - 0x218], 0
call fcn.00429610
add esp, 0xc
mov dword [ebp - 0x220], 0x104
lea eax, [ebp - 0x220]
lea ecx, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00404c70
test eax, eax
jne 0x425540
lea eax, [ebp - 0x114]
push eax
lea ecx, [edi + 4]
call fcn.00424419
lea ecx, [ebp - 0x218]
push ecx
mov ecx, eax
call fcn.00404680
mov dword [ebp - 0x230], 1
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x114]
push eax
push esi
push dword [ebp - 0x22c]
call ebx
test eax, eax
je 0x4254c3
lea ecx, [ebp - 0x22c]
call fcn.00405160
mov eax, dword [edi]
lea ecx, [ebp - 0x220]
push ecx
mov ecx, edi
call dword [eax + 0x20]
lea ecx, [ebp - 0x23c]
push dword [eax]
call fcn.004249df
mov ecx, dword [ebp - 0x220]
add ecx, 0xfffffff0
call fcn.00404190
lea ecx, [ebp - 0x22c]
call fcn.00405160
lea ecx, [ebp - 0x23c]
call fcn.00405160
mov eax, dword [ebp - 0x230]
call fcn.00429cae
ret
Function at 0x436a7f
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x452550]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.0042f4f2
mov dword [ebp - 0x14], eax
cmp dword [0x638cac], esi
jne 0x436b72
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x436aff
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x436c52
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x436c52
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x436c52
push eax
call ebx
push 0x4433a4
push edi
mov dword [0x638cac], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x4433b4
push edi
mov dword [0x638cb0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x638cb4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x638cbc], eax
test eax, eax
je 0x436b6f
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x638cb8], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x436b97
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x436b8a
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x436bac
push 4
pop eax
jmp 0x436c54
cmp dword [ebp - 0x14], esi
je 0x436bac
push dword [0x638cac]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x436b91
mov eax, dword [0x638cb8]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x436c0a
cmp dword [0x638cbc], edi
je 0x436c0a
push eax
call ebx
push dword [0x638cbc]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x436c0a
test eax, eax
je 0x436c0a
call ecx
test eax, eax
je 0x436bff
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x436bff
test byte [ebp - 8], 1
jne 0x436c0a
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x436c3a
mov eax, dword [0x638cb0]
cmp eax, edi
je 0x436c37
push eax
call ebx
test eax, eax
je 0x436c37
call eax
mov esi, eax
test esi, esi
je 0x436c37
mov eax, dword [0x638cb4]
cmp eax, edi
je 0x436c37
push eax
call ebx
test eax, eax
je 0x436c37
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x638cac]
call ebx
test eax, eax
je 0x436c52
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x436c54
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004279e7
mov esp, ebp
pop ebp
ret
Function at 0x1001a6a
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push edi
push 1
push 0x30
push dword [ebp + 0xc]
call fcn.01001a25
mov esi, eax
test esi, esi
je 0x1001aba
cmp word [esi], 0
je 0x1001aba
push 0
dec esi
push 0x20
dec esi
push esi
call fcn.01001a25
push dword [ebp + 8]
mov edi, eax
sub eax, esi
push 0x100112c
sar eax, 1
push eax
push esi
call fcn.0100207d
add esp, 0x10
cmp eax, 1
jne 0x1001aba
mov eax, edi
pop edi
pop esi
pop ebp
ret 8
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x1001b4b
Capabilities:
Accept command line arguments
Create thread
Terminate process

Disassembly:
push 0x40
push 0x1001138
call fcn.010020b8
mov eax, dword [0x1008034]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], 8
mov dword [ebp - 0x48], 0x401
mov ebx, 0x100111c
mov esi, ebx
lea edi, [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ebx
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x4c], edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
push 0x8003
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
push 0x2f
push esi
call fcn.01001a25
mov esi, eax
cmp esi, edi
je 0x1001cd5
mov ax, word [esi]
cmp ax, di
je 0x1001cd5
movzx eax, ax
cmp eax, 0x43
je 0x1001bfb
cmp eax, 0x49
je 0x1001bf6
cmp eax, 0x4d
je 0x1001bf2
cmp eax, 0x53
je 0x1001bee
cmp eax, 0x58
jne 0x1001cd5
add esi, 2
push esi
lea eax, [ebp - 0x48]
push eax
call fcn.01001a6a
jmp 0x1001c08
or dword [ebp - 0x44], 2
inc esi
inc esi
jmp 0x1001c0a
lea eax, [ebp - 0x2c]
jmp 0x1001bfe
lea eax, [ebp - 0x3c]
add esi, 2
push esi
push eax
call fcn.01001ac8
mov esi, eax
cmp esi, edi
je 0x1001c13
cmp word [esi], di
jne 0x1001b9f
push dword [ebp - 0x44]
push edi
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
jge 0x1001c28
push 2
jmp 0x1001cd7
mov dword [ebp - 4], edi
push edi
push edi
push edi
push 0x1001b29
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0x50], eax
cmp eax, edi
jne 0x1001c4a
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x1001c21
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x2c]
push eax
push dword [ebp - 0x48]
push edi
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x1001c69
cmp dword [ebp - 0x40], edi
jne 0x1001c78
push 3
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
lea edx, [ebp - 0x4c]
push edx
push ebx
push eax
call dword [ecx]
test eax, eax
jl 0x1001c98
push 3
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x1001cbf
or dword [ebp - 4], 0xffffffff
xor eax, eax
mov ecx, dword [ebp - 0x1c]
call fcn.01001d56
call fcn.010020f3
ret 0x10
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x1001e9d
Capabilities:
Parse pe header

Disassembly:
push 0x60
push 0x1001148
call fcn.010020b8
mov edi, 0x94
mov eax, edi
call fcn.01002f10
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x10085b8], ecx
mov eax, dword [esi + 4]
mov dword [0x10085c4], eax
mov edx, dword [esi + 8]
mov dword [0x10085c8], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x10085bc], esi
cmp ecx, 2
je 0x1001efd
or esi, 0x8000
mov dword [0x10085bc], esi
shl eax, 8
add eax, edx
mov dword [0x10085c0], eax
cmp word [0x1000000], 0x5a4d
jne 0x1001f39
mov eax, dword [0x100003c]
lea eax, [eax + 0x1000000]
cmp dword [eax], 0x4550
jne 0x1001f39
movzx ecx, word [eax + 0x18]
cmp ecx, 0x10b
je 0x1001f52
cmp ecx, 0x20b
je 0x1001f3f
and dword [ebp - 0x1c], 0
jmp 0x1001f66
cmp dword [eax + 0x84], 0xe
jbe 0x1001f39
xor ecx, ecx
cmp dword [eax + 0xf8], ecx
jmp 0x1001f60
cmp dword [eax + 0x74], 0xe
jbe 0x1001f39
xor ecx, ecx
cmp dword [eax + 0xe8], ecx
setne cl
mov dword [ebp - 0x1c], ecx
push 0
call fcn.01002eac
pop ecx
test eax, eax
jne 0x1001f93
cmp dword [0x10085a8], 1
jne 0x1001f80
call fcn.010025a0
push 0x1c
call fcn.010023b3
push 0xff
call fcn.01002212
pop ecx
pop ecx
and dword [ebp - 4], 0
call fcn.01002cdc
test eax, eax
jge 0x1001fa8
push 0x1b
call fcn.01001e6e
pop ecx
call fcn.01002c2c
mov dword [0x1009a10], eax
call fcn.01002a8d
mov dword [0x10085a4], eax
call fcn.010029f0
test eax, eax
jge 0x1001fcd
push 8
call fcn.01001e6e
pop ecx
call fcn.010027af
test eax, eax
jge 0x1001fde
push 9
call fcn.01001e6e
pop ecx
call fcn.0100226c
mov dword [ebp - 0x28], eax
test eax, eax
je 0x1001ff1
push eax
call fcn.01001e6e
pop ecx
and dword [ebp - 0x44], 0
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
call fcn.01002756
mov dword [ebp - 0x20], eax
test byte [ebp - 0x44], 1
je 0x1002013
movzx eax, word [ebp - 0x40]
jmp 0x1002016
push 0xa
pop eax
push eax
push dword [ebp - 0x20]
push 0
push 0x1000000
call fcn.01001b4b
mov esi, eax
mov dword [ebp - 0x2c], esi
cmp dword [ebp - 0x1c], 0
jne 0x1002037
push esi
call fcn.0100234c
call fcn.01002384
jmp 0x1002069
or dword [ebp - 4], 0xffffffff
mov eax, esi
lea esp, [ebp - 0x7c]
call fcn.010020f3
ret
Function at 0x10023b3
Capabilities:
Write file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x1008034]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 4], eax
push edi
xor eax, eax
cmp ecx, dword [eax*8 + 0x1008040]
je 0x10023dd
inc eax
cmp eax, 0x12
jb 0x10023ce
mov esi, eax
shl esi, 3
cmp ecx, dword [esi + 0x1008040]
mov dword [ebp - 0x110], esi
jne 0x1002588
mov eax, dword [0x10085a8]
cmp eax, 1
je 0x1002556
test eax, eax
jne 0x1002413
cmp dword [0x100803c], 1
je 0x1002556
cmp ecx, 0xfc
je 0x1002588
push 0x104
lea eax, [ebp - 0x10c]
push eax
push 0
mov byte [ebp - 8], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x100244e
push 5
pop ecx
mov esi, 0x10014bc
lea edi, [ebp - 0x10c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ebx, [ebp - 0x10c]
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002459
sub eax, edx
inc eax
cmp eax, 0x3c
jbe 0x1002491
lea eax, [ebp - 0x10c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002471
sub eax, edx
push 3
lea ebx, [ebp + eax - 0x147]
push 0x10014b8
push ebx
call fcn.010043c0
add esp, 0xc
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1002496
sub eax, edx
mov ecx, eax
mov eax, dword [ebp - 0x110]
mov eax, dword [eax + 0x1008044]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10024b0
sub eax, esi
lea eax, [eax + ecx + 0x1c]
add eax, 3
and eax, 0xfffffffc
call fcn.01002f10
mov edx, esp
push 6
pop ecx
mov esi, 0x100149c
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
movsw word es:[edi], word [esi]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10024dc
mov edi, edx
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x10024e8
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x1002501
mov eax, dword [ebp - 0x110]
mov esi, 0x1001498
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [eax + 0x1008044]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100251f
mov edi, edx
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x100252b
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0x12010
mov ecx, eax
and ecx, 3
push 0x1001470
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.010042bb
add esp, 0xc
jmp 0x1002588
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
test eax, eax
je 0x1002588
mov esi, dword [esi + 0x1008044]
mov ecx, esi
lea edx, [ecx + 1]
mov bl, byte [ecx]
inc ecx
test bl, bl
jne 0x100256d
push 0
sub ecx, edx
lea edx, [ebp - 0x114]
push edx
push ecx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea esp, [ebp - 0x120]
mov ecx, dword [ebp - 4]
call fcn.01001d56
pop edi
pop esi
pop ebx
leave
ret