joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4045e0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
cmp dword [ecx + 0x38], 0
push ebx
push esi
push edi
mov dword [esp + 0xc], ecx
je 0x4046c6
mov esi, dword [ebp + 0x10]
mov ebx, esi
mov edx, dword [ebp + 0xc]
mov edi, edx
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], eax
test esi, esi
jl 0x4046b5
jg 0x404620
test edx, edx
je 0x4046b5
nop dword [eax]
call fcn.00405f40
mov esi, eax
mov eax, edx
mov dword [esp + 0x14], eax
test eax, eax
jl 0x404674
jg 0x404637
test esi, esi
je 0x404674
cmp ebx, eax
jg 0x404647
jl 0x404641
cmp edi, esi
jae 0x404647
mov esi, edi
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
push esi
push eax
mov eax, dword [ecx + 0x20]
push dword [eax]
call fcn.00409240
mov ecx, dword [esp + 0x18]
add esp, 0xc
sub edi, esi
sbb ebx, dword [esp + 0x14]
mov eax, dword [ecx + 0x30]
sub dword [eax], esi
mov eax, dword [ecx + 0x20]
add dword [eax], esi
jmp 0x404699
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [ecx]
movzx eax, byte [eax]
push eax
call dword [edx + 0xc]
cmp eax, 0xffffffff
je 0x4046af
mov ecx, dword [esp + 0xc]
add edi, 0xffffffff
mov esi, 1
adc ebx, 0xffffffff
add dword [esp + 0x10], esi
test ebx, ebx
jg 0x404620
jl 0x4046af
test edi, edi
jne 0x404620
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
sub edx, edi
mov eax, edx
sbb esi, ebx
mov edx, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ecx + 0x20]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x18], esi
mov eax, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x4046e8
mov eax, dword [ecx + 0x30]
mov eax, dword [eax]
jmp 0x4046ea
xor eax, eax
cdq
mov ebx, eax
mov eax, edx
mov dword [esp + 0x14], eax
test edi, edi
jl 0x404768
jg 0x4046fd
test esi, esi
je 0x404768
test eax, eax
jl 0x40474c
jg 0x404707
test ebx, ebx
je 0x40474c
cmp edi, eax
jg 0x404717
jl 0x404711
cmp esi, ebx
jae 0x404717
mov ebx, esi
mov dword [esp + 0x14], edi
push ebx
push dword [ebp + 8]
push dword [esp + 0x18]
call fcn.00409240
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [ebp + 8]
sub esi, ebx
sbb edi, dword [esp + 0x14]
add edx, ebx
mov eax, dword [ecx + 0x30]
sub dword [eax], ebx
mov eax, dword [ecx + 0x20]
add dword [eax], ebx
test edi, edi
jl 0x404768
jg 0x40474f
test esi, esi
je 0x404768
jmp 0x40474f
mov edx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
test eax, eax
je 0x404768
push eax
push esi
push 1
push edx
call fcn.0040e605
add esp, 0x10
sub esi, eax
sbb edi, 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub eax, esi
sbb edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x404780
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], edi
test eax, eax
jg 0x4047b2
jl 0x4047a5
test ecx, ecx
jne 0x4047b2
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x38], 0
je 0x404872
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov ecx, ebx
call fcn.00405f60
mov esi, eax
mov eax, edx
mov dword [esp + 0x14], eax
test eax, eax
jl 0x40481e
jg 0x4047dd
test esi, esi
je 0x40481e
mov ecx, dword [esp + 0xc]
cmp ecx, eax
jg 0x4047f5
mov eax, dword [esp + 0x10]
jl 0x4047ef
cmp eax, esi
jae 0x4047f5
mov esi, eax
mov dword [esp + 0x14], ecx
mov eax, dword [ebx + 0x1c]
push esi
push dword [eax]
push edi
call fcn.00409240
mov eax, dword [ebx + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
sub ecx, esi
sbb edx, dword [esp + 0x14]
sub dword [eax], esi
mov eax, dword [ebx + 0x1c]
add dword [eax], esi
jmp 0x40483f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov edx, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x40485b
mov ecx, dword [esp + 0x10]
mov esi, 1
add ecx, 0xffffffff
mov byte [edi], al
adc edx, 0xffffffff
add edi, esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
test edx, edx
jg 0x4047c4
jl 0x40485b
test ecx, ecx
jne 0x4047c4
mov eax, dword [ebp + 0xc]
sub eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x10]
sbb ecx, edx
mov edx, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x1c]
mov edi, ecx
mov edx, dword [eax]
test edx, edx
je 0x4048b1
mov eax, dword [ebx + 0x2c]
mov eax, dword [eax]
test eax, eax
je 0x4048b1
mov edi, dword [esp + 0xc]
cmp eax, ecx
mov esi, ecx
cmovb esi, eax
push esi
push edx
push edi
call fcn.00409240
mov eax, dword [ebx + 0x2c]
add edi, esi
mov dword [esp + 0x18], edi
add esp, 0xc
mov edi, dword [ebp + 0xc]
sub edi, esi
sub dword [eax], esi
mov eax, dword [ebx + 0x1c]
add dword [eax], esi
cmp dword [ebx + 0x4c], 0
mov ecx, edi
je 0x404920
mov esi, dword [ebx + 0xc]
lea eax, [ebx + 0x3c]
cmp dword [esi], eax
jne 0x4048d7
mov edx, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
sub edx, ecx
mov dword [esi], ecx
mov eax, dword [ebx + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebx + 0x2c]
mov dword [eax], edx
mov esi, dword [esp + 0xc]
mov ecx, edi
cmp edi, 0xfff
jbe 0x404909
push dword [ebx + 0x4c]
push 0xfff
push 1
push esi
call fcn.0040ec5c
sub edi, eax
add esp, 0x10
add esi, eax
mov ecx, edi
cmp eax, 0xfff
jne 0x404934
cmp edi, eax
ja 0x4048e5
test ecx, ecx
je 0x404920
push dword [ebx + 0x4c]
push edi
push 1
push esi
call fcn.0040ec5c
mov ecx, edi
add esp, 0x10
sub ecx, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub eax, ecx
sbb edx, 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub eax, edi
pop edi
pop esi
sbb edx, 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x404ca0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x438008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x404cd0
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
push edi
mov ecx, dword [eax]
test ecx, ecx
je 0x404d0c
mov edx, dword [esi + 0x30]
mov edi, dword [edx]
lea eax, [edi + ecx]
cmp ecx, eax
jae 0x404d0c
lea ecx, [edi - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], bl
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
je 0x404df4
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x404d34
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x404d67
push dword [esi + 0x4c]
movsx eax, bl
push eax
call fcn.0040d712
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x25], bl
mov edx, dword [ecx]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x25]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x1c]
sub eax, 0
je 0x404dc7
sub eax, 1
je 0x404dc7
sub eax, 2
jne 0x404df4
push dword [esi + 0x4c]
movsx eax, byte [ebp - 0x25]
push eax
call fcn.0040d712
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x404de4
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.0040e605
add esp, 0x10
cmp edi, eax
jne 0x404df4
lea eax, [ebp - 0x25]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x30], eax
jne 0x404cf7
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406e3d
mov esp, ebp
pop ebp
ret 4
Function at 0x405c70
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x438008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x405d2a
cmp byte [esi + 0x3d], 0
je 0x405d2a
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x405d18
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x405ce0
sub eax, 1
je 0x405ce4
sub eax, 2
jne 0x405d18
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x405d01
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.0040e605
add esp, 0x10
cmp edi, eax
jne 0x405d18
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00406e3d
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.00406e3d
mov esp, ebp
pop ebp
ret

Function at 0x406350
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x428290
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x438008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
push 8
mov dword [eax], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.00407048
mov esi, eax
xorps xmm0, xmm0
movq qword [esi], xmm0
push 1
mov dword [ebp - 4], 0
call fcn.00407e2e
mov dword [esi + 4], eax
add esp, 8
mov eax, dword [ebp - 0x10]
lea edi, [eax + 0x14]
lea ecx, [eax + 0x18]
lea edx, [eax + 0x24]
mov dword [eax + 0x34], esi
lea ebx, [eax + 4]
mov dword [eax + 0xc], ebx
lea esi, [eax + 8]
mov dword [eax + 0x10], esi
mov dword [eax + 0x1c], edi
mov dword [eax + 0x20], ecx
mov dword [eax + 0x2c], edx
add eax, 0x28
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 0x30], eax
mov ebx, dword [ebp - 0x14]
mov dword [esi], 0
mov dword [ecx], 0
mov dword [eax], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx], 0
mov dword [edi], 0
mov dword [edx], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x419fd8
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00419e4e

Function at 0x41d782
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0041d2d5
Function at 0x401ea0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push edi
mov edi, dword [esp + 0x10]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x401eb9
pop edi
pop ebx
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x401ef4
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [esp + 0x18]
add eax, esi
and ecx, 0xf
jbe 0x401ef0
lea ebx, [ebx]
cmp esi, eax
jae 0x401ef4
sub ecx, 1
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x401ee0
cmp esi, eax
jb 0x401efa
pop esi
pop edi
xor eax, eax
pop ebx
ret
mov ax, word [esi]
neg ax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebx
ret
Function at 0x402ea0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x454bd8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4738c0]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
call fcn.00418a14
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x402edf
push 0x80004005
call fcn.00401890
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], 0
mov eax, dword [edi - 8]
mov esi, dword [0x477b98]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 2
or eax, ecx
jge 0x402f1e
push 2
lea ecx, [esp + 0x18]
call fcn.004018e0
mov edi, dword [esp + 0x14]
push esi
push 2
push edi
push 0x4636c0
push str.ExecuteType
push str.SystemState
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x4636c0
push edi
call fcn.0043d449
add esp, 8
test eax, eax
setne al
test al, al
jne 0x403031
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x50]
push edx
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x403031
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 5
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ebx, dword [sym.imp.USER32.dll_GetWindow]
push eax
call ebx
mov ebp, dword [sym.imp.USER32.dll_IsWindow]
mov esi, eax
push esi
call ebp
test eax, eax
je 0x402fc1
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x50]
push ecx
push esi
call dword [sym.imp.USER32.dll_GetPropA]
test eax, eax
jne 0x402fdb
push 2
push esi
call ebx
mov esi, eax
push esi
call ebp
test eax, eax
jne 0x402fa0
lea eax, [edi - 0x10]
mov dword [esp + 0x20], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x403021
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
je 0x402ff1
push 9
push esi
call ebx
push 5
push esi
call ebx
mov ebx, dword [sym.imp.USER32.dll_SetForegroundWindow]
push esi
call ebx
push esi
call dword [sym.imp.USER32.dll_GetLastActivePopup]
push eax
call ebx
lea eax, [edi - 0x10]
mov dword [esp + 0x20], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40302d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
jmp 0x403057
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x20], 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x403055
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4
Function at 0x4084b0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x454b4d
mov eax, dword fs:[0]
push eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4738c0]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x24]
push 0
push 0x84
mov ecx, ebp
call fcn.0040cd7a
lea esi, [ebp + 0x74]
mov dword [esp + 0x1c], 0
mov ecx, esi
mov dword [ebp], vtable.CLogonDialog.0
call fcn.004210f0
mov dword [esi], vtable.CHtmlCtrl.0
lea esi, [ebp + 0x164]
mov ecx, esi
mov byte [esp + 0x1c], 1
call fcn.0040f304
mov dword [esi], vtable.CButton.0
mov byte [esp + 0x1c], 2
lea esi, [ebp + 0x1b8]
call fcn.00418a14
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x408542
push 0x80004005
call fcn.00401890
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x1c], 3
lea edi, [ebp + 0x1bc]
call fcn.00418a14
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x408575
push 0x80004005
call fcn.00401890
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x1c], 4
mov eax, dword [esi]
mov edx, dword [eax - 8]
mov ebx, dword [0x477e8c]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, 0x1e
or ecx, edx
jge 0x4085ae
push 0x1e
mov ecx, esi
call fcn.004018e0
mov eax, dword [esi]
push ebx
push 0x1e
push eax
push 0x464740
push str.UserName
push str.LoginInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esi]
test ecx, ecx
jne 0x4085d3
xor eax, eax
jmp 0x4085e9
mov eax, ecx
lea ebx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4085d8
sub eax, ebx
js 0x408683
cmp eax, dword [ecx - 8]
jg 0x408683
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
mov byte [eax + ecx], 0
mov eax, dword [edi]
mov esi, dword [0x477e8c]
sub eax, 0x10
mov edx, 1
sub edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, 0x10
or edx, eax
jge 0x408621
push 0x10
mov ecx, edi
call fcn.004018e0
mov ecx, dword [edi]
push esi
push 0x10
push ecx
push 0x464740
push str.Password
push str.LoginInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [edi]
test ecx, ecx
jne 0x408646
xor eax, eax
jmp 0x40865d
mov eax, ecx
lea esi, [eax + 1]
jmp 0x408650
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x408650
sub eax, esi
js 0x408683
cmp eax, dword [ecx - 8]
jg 0x408683
mov dword [ecx - 0xc], eax
mov edx, dword [edi]
mov byte [eax + edx], 0
mov eax, ebp
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
push 0x80070057
call fcn.00401890
int3
Function at 0x40bdd0
Capabilities:
Get file version info

Disassembly:
mov eax, dword [esi + 0x210]
sub esp, 0xc
push ebx
lea ecx, [esp + 8]
push ecx
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov ebx, eax
test ebx, ebx
je 0x40be61
push edi
push ebx
call fcn.0040cba5
mov edx, dword [esp + 0x10]
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x210]
push edi
push ebx
push edx
push eax
call sub.VERSION.dll_GetFileVersionInfoA
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0xc]
push edx
push 0x46577c
push edi
mov dword [esp + 0x18], 0
call sub.VERSION.dll_VerQueryValueA
mov eax, dword [esp + 8]
movzx ecx, word [eax + 0x12]
mov word [esi + 0x22c], cx
movzx edx, word [eax + 0x10]
mov word [esi + 0x22e], dx
movzx ecx, word [eax + 0x16]
mov word [esi + 0x230], cx
movzx edx, word [eax + 0x14]
push edi
mov word [esi + 0x232], dx
call fcn.0040cbaa
add esp, 4
pop edi
pop ebx
add esp, 0xc
ret
Function at 0x40c090
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x454d10
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push esi
push edi
mov eax, dword [0x4738c0]
xor eax, esp
push eax
lea eax, [esp + 0x74]
mov dword fs:[0], eax
mov eax, dword [esp + 0x84]
mov eax, dword [eax + 0x210]
sub eax, 0x10
push eax
call fcn.00401bb0
add eax, 0x10
add esp, 4
mov dword [esp + 0x10], eax
push str.New.exe
push str..exe
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x88], 0
call fcn.0040c940
test eax, eax
jne 0x40c10c
push str.NEW.EXE
push str..EXE
lea edx, [esp + 0x18]
push edx
call fcn.0040c940
mov eax, dword [0x478018]
push eax
push 0x4636dc
push str.ExecuteType
push str.SystemState
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
call fcn.00418a14
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40c149
push 0x80004005
call fcn.00401890
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x84], eax
mov byte [esp + 0x7c], 1
mov edi, dword [esp + 0x10]
push esi
push edi
lea ecx, [esp + 0x8c]
push str._s__d
push ecx
call fcn.00403910
push 0x44
lea edx, [esp + 0x38]
push 0
push edx
call fcn.0043e310
mov esi, dword [esp + 0xa0]
xor eax, eax
add esp, 0x1c
mov dword [esp + 0x24], 0x44
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
cmp dword [esi - 4], 1
jle 0x40c1c8
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x88]
call fcn.004017b0
mov esi, dword [esp + 0x84]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push edx
push 0
push 0
push 0
push 1
push 0
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test esi, esi
jne 0x40c1ef
xor eax, eax
jmp 0x40c201
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40c1f4
sub eax, edx
js 0x40c26d
cmp eax, dword [esi - 8]
jg 0x40c26d
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
lea eax, [esi - 0x10]
mov byte [0x477cec], 1
mov byte [esp + 0x7c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c235
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [esp + 0x7c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c259
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x74]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x74
ret 4
push 0x80070057
call fcn.00401890
int3
Function at 0x40c280
Capabilities:
Copy file
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x454ce0
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push esi
push edi
mov eax, dword [0x4738c0]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x476ec0]
mov ecx, dword [eax + 4]
push ecx
call fcn.0043ccf8
add esp, 4
test eax, eax
je 0x40c2e0
push eax
push 1
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x40c2e0
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0x210]
sub eax, 0x10
push eax
call fcn.00401bb0
add eax, 0x10
add esp, 4
mov dword [esp + 0x10], eax
push str..exe
push str.New.exe
lea edx, [esp + 0x18]
push edx
mov dword [esp + 0x84], 0
call fcn.0040c940
test eax, eax
jne 0x40c330
push str..EXE
push str.NEW.EXE
lea eax, [esp + 0x18]
push eax
call fcn.0040c940
mov eax, dword [edi + 0x210]
mov edi, dword [esp + 0x10]
push 0
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [0x478018]
push ecx
push 0x463ef4
push str.ExecuteType
push str.SystemState
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
call fcn.00418a14
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40c382
push 0x80004005
call fcn.00401890
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0xc], eax
push esi
push edi
lea ecx, [esp + 0x14]
push str._s__d
push ecx
mov byte [esp + 0x88], 1
call fcn.00403910
push 0x44
lea edx, [esp + 0x38]
push 0
push edx
call fcn.0043e310
mov esi, dword [esp + 0x28]
xor eax, eax
add esp, 0x1c
mov dword [esp + 0x24], 0x44
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
cmp dword [esi - 4], 1
jle 0x40c3f1
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x10]
call fcn.004017b0
mov esi, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x28]
push edx
push 0
push 0
push 0
push 1
push 0
push 0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test esi, esi
jne 0x40c418
xor eax, eax
jmp 0x40c42d
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40c420
sub eax, edx
js 0x40c497
cmp eax, dword [esi - 8]
jg 0x40c497
mov dword [esi - 0xc], eax
mov byte [eax + esi], 0
lea eax, [esi - 0x10]
mov byte [0x477cec], 1
mov byte [esp + 0x78], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c461
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [esp + 0x78], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c485
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x70
ret
push 0x80070057
call fcn.00401890
int3