joyce8/EMBER2024-capa huggingface dataset:
Function at 0x413000
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
mov eax, dword [0x456178]
xor eax, esp
mov dword [esp + 4], eax
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
mov esi, dword [esp + 0x1c]
mov ebp, ecx
push edi
mov edi, dword [esp + 0x1c]
mov ecx, 0x100000
mov dword [ebx], 0
jmp 0x413030
cmp esi, 0x100000
mov dword [esp + 0x10], 0
push 0
mov eax, esi
cmova eax, ecx
lea ecx, [esp + 0x14]
push ecx
push eax
push edi
push dword [ebp]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x10]
test eax, eax
setne al
add dword [ebx], ecx
test al, al
je 0x41308a
test ecx, ecx
je 0x413073
add edi, ecx
sub esi, ecx
mov ecx, 0x100000
jne 0x413030
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.004333fa
add esp, 8
ret 0xc
mov ecx, dword [esp + 0x14]
xor al, al
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004333fa
add esp, 8
ret 0xc
Function at 0x41f93f
Capabilities:
Encode data using xor
Hash data using crc32b

Disassembly:
push ebx
push esi
push edi
xor esi, esi
mov edi, esi
push 8
shl edi, 0x18
pop ebx
lea ecx, [edi + edi]
mov edx, edi
mov eax, ecx
mov edi, ecx
xor eax, 0x4c11db7
and edx, 0x80000000
cmovne edi, eax
dec ebx
test ebx, ebx
jg 0x41f94c
mov dword [esi*4 + 0x45a8b0], edi
inc esi
cmp esi, 0x100
jb 0x41f944
pop edi
pop esi
pop ebx
ret
Function at 0x42be80
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [0x456178]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push esi
mov eax, ecx
xorps xmm0, xmm0
push edi
lea edi, [eax + 8]
mov dword [esp + 0x10], eax
push 1
lea eax, [esp + 0x28]
movlpd qword [esp + 0x24], xmm0
push eax
push 0
push dword [edi]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov dword [esp + 0x20], esi
cmp esi, 0xffffffff
jne 0x42beee
call ebx
test eax, eax
je 0x42beea
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.004333fa
mov esp, ebp
pop ebp
ret 8
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0xc], eax
cmp eax, 0xffffffff
jne 0x42bf12
call ebx
test eax, eax
jne 0x42bed1
mov eax, dword [esp + 0x1c]
xor ecx, ecx
add ecx, dword [esp + 0xc]
push 0
adc eax, 0
add ecx, dword [ebp + 8]
adc eax, dword [ebp + 0xc]
push eax
push ecx
mov ecx, edi
call fcn.0040ff00
test eax, eax
sete bl
test bl, bl
je 0x42bf41
mov eax, dword [esp + 0x10]
mov byte [eax + 0x34], 1
lea eax, [esp + 0x10]
xorps xmm0, xmm0
push eax
push dword [esp + 0x28]
mov ecx, edi
movlpd qword [esp + 0x18], xmm0
push esi
call fcn.00412db0
test al, al
je 0x42bf67
test bl, bl
je 0x42bf67
mov cl, 1
jmp 0x42bf69
xor cl, cl
xor edx, edx
mov eax, 0x80004005
test cl, cl
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
cmovne eax, edx
pop ebx
xor ecx, esp
call fcn.004333fa
mov esp, ebp
pop ebp
ret 8

Function at 0x42c99e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 0x10]
xor esi, esi
test edi, edi
je 0x42c9ae
mov dword [edi], esi
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x10], esi
test ecx, ecx
je 0x42ca06
mov eax, 0x8000
cmp ecx, eax
push esi
cmovb eax, ecx
lea ecx, [ebp + 0x10]
push ecx
push eax
push dword [ebp + 8]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test edi, edi
je 0x42c9e3
mov ecx, dword [ebp + 0x10]
add dword [edi], ecx
test eax, eax
jne 0x42ca06
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x42c9f8
mov esi, 0x80004005
jmp 0x42ca06
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
pop edi
mov eax, esi
pop esi
pop ebp
ret 0xc
Function at 0x4307c6
Capabilities:
Check os version
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x456178]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x11c], ebx
mov ecx, ebx
movzx eax, byte [ecx + str.cw]
mov byte [eax + 0x45ae40], cl
inc ecx
cmp ecx, 0x100
jb 0x4307e6
movzx edi, byte [ebx + str.cw]
mov eax, edi
mov ecx, edi
and al, 0x80
movzx esi, al
neg esi
lea eax, [edi + edi]
sbb esi, esi
shl ecx, 8
and esi, 0x1b
xor esi, eax
and esi, 0xff
mov edx, esi
xor edx, edi
mov eax, edx
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, esi
mov dword [ebx*4 + 0x45bf40], eax
mov eax, ecx
or ecx, esi
or eax, edi
shl eax, 8
or eax, esi
shl ecx, 8
shl esi, 8
or ecx, edx
or esi, edx
shl eax, 8
or eax, edx
shl esi, 8
or esi, edi
shl ecx, 8
mov dword [ebx*4 + 0x45c340], eax
or ecx, edi
shl esi, 8
or esi, edi
mov dword [ebx*4 + 0x45c740], ecx
movzx edi, byte [ebx + 0x45ae40]
mov dword [ebx*4 + 0x45cb40], esi
mov eax, edi
and al, 0x80
mov ebx, 0xff
movzx esi, al
neg esi
lea eax, [edi + edi]
sbb esi, esi
and esi, 0x1b
xor esi, eax
and esi, ebx
mov eax, esi
and al, 0x80
movzx ecx, al
neg ecx
lea eax, [esi + esi]
sbb ecx, ecx
and ecx, 0x1b
xor ecx, eax
and ecx, ebx
mov eax, ecx
and al, 0x80
movzx edx, al
neg edx
lea eax, [ecx + ecx]
sbb edx, edx
and edx, 0x1b
xor edx, eax
and edx, ebx
mov dword [ebp - 0x120], edx
mov ebx, edx
mov eax, dword [ebp - 0x120]
xor edx, esi
xor eax, ecx
xor ebx, edi
mov ecx, eax
mov dword [ebp - 0x120], eax
xor edx, edi
xor ecx, edi
mov edi, eax
mov eax, edx
shl eax, 8
xor edi, esi
mov esi, dword [ebp - 0x11c]
or eax, ecx
shl eax, 8
or eax, ebx
shl eax, 8
or eax, edi
mov dword [esi*4 + 0x45af40], eax
mov eax, ecx
shl eax, 8
or eax, ebx
shl eax, 8
or eax, edi
shl eax, 8
or eax, edx
mov dword [esi*4 + 0x45b340], eax
mov eax, ebx
shl eax, 8
or eax, edi
shl edi, 8
or edi, edx
shl eax, 8
shl edi, 8
or eax, edx
or edi, ecx
shl eax, 8
shl edi, 8
or eax, ecx
or edi, ebx
mov dword [esi*4 + 0x45b740], eax
mov ebx, esi
mov dword [ebx*4 + 0x45bb40], edi
inc ebx
mov dword [ebp - 0x11c], ebx
cmp ebx, 0x100
jb 0x4307fc
lea eax, [ebp - 0x118]
mov dword [0x45e144], 0x431477
push eax
mov dword [0x45e140], 0x4314d1
mov dword [0x45e148], 0x43156d
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
pop edi
pop esi
pop ebx
test eax, eax
je 0x4309e6
cmp dword [ebp - 0x114], 5
sbb eax, eax
inc eax
je 0x4309e6
lea ecx, [ebp - 0x140]
call fcn.00413200
test eax, eax
je 0x4309e6
mov eax, dword [ebp - 0x128]
shr eax, 0x19
and eax, 1
je 0x4309e6
mov dword [0x45e144], 0x432218
mov dword [0x45e140], 0x432270
mov dword [0x45e148], 0x4323a1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004333fa
mov esp, ebp
pop ebp
ret
Function at 0x431e6a
Capabilities:
Create thread
Resume thread

Disassembly:
push esi
push edi
mov edi, ecx
push ecx
lea esi, [edi + 4]
mov ecx, esi
call fcn.00408990
test al, al
je 0x431e82
pop edi
xor al, al
pop esi
ret
push 0xc
call fcn.0043451f
pop ecx
test eax, eax
je 0x431e9d
push edi
push 0x431e1e
mov ecx, eax
call fcn.00411670
jmp 0x431e9f
xor eax, eax
push eax
mov ecx, esi
call fcn.0040bf3f
mov ecx, esi
call fcn.0040892a
pop edi
mov ecx, eax
pop esi
jmp fcn.004118b0
Function at 0x43d282
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x456178]
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.004367c2
mov dword [ebp - 0x14], eax
cmp dword [0x45a870], esi
jne 0x43d375
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x43d302
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x43d455
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x43d455
push 0x449580
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x43d455
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x45a870], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x45a874], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x45a878], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x45a880], eax
test eax, eax
je 0x43d372
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x45a87c], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x43d39a
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x43d38d
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x43d3af
push 4
pop eax
jmp 0x43d457
cmp dword [ebp - 0x14], esi
je 0x43d3af
push dword [0x45a870]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x43d394
mov eax, dword [0x45a87c]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x43d40d
cmp dword [0x45a880], edi
je 0x43d40d
push eax
call ebx
push dword [0x45a880]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x43d40d
test eax, eax
je 0x43d40d
call ecx
test eax, eax
je 0x43d402
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 0x43d402
test byte [ebp - 8], 1
jne 0x43d40d
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x43d43d
mov eax, dword [0x45a874]
cmp eax, edi
je 0x43d43a
push eax
call ebx
test eax, eax
je 0x43d43a
call eax
mov esi, eax
test esi, esi
je 0x43d43a
mov eax, dword [0x45a878]
cmp eax, edi
je 0x43d43a
push eax
call ebx
test eax, eax
je 0x43d43a
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x45a870]
call ebx
test eax, eax
je 0x43d455
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x43d457
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004333fa
mov esp, ebp
pop ebp
ret
Function at 0x401960
Capabilities:
Access the windows event log
Clear file content
Clear windows event logs
Get common file path
Get keyboard layout

Disassembly:
sub esp, 0x400
push esi
push edi
xor esi, esi
xor edi, edi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
cmp edi, 0x58ced85
jg 0x401986
inc edi
cmp edi, 0x1f6502b1
jl 0x40196c
cmp dword [0x285eee4], 0x400
jne 0x4019e8
push str.sadahoziyofejonoh_niforapo_pihekezavokigubodatojup_rafepigojamulexiwodugaxexude_jam
push str.nelugidoneyari
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push esi
push esi
call dword [sym.imp.USER32.dll_DdeKeepStringHandle]
push esi
call dword [sym.imp.USER32.dll_GetKeyboardLayoutNameW]
push 0x46dc20
push esi
call dword [sym.imp.ADVAPI32.dll_BackupEventLogW]
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_ClearEventLogW]
push esi
call fcn.00402159
push esi
call fcn.0040211f
push esi
push esi
call fcn.00402317
push esi
call fcn.004023c4
push esi
call fcn.004023d3
add esp, 0x18
xor edi, edi
cmp edi, 0xd09a
jge 0x4019f9
push esi
call dword [sym.imp.USER32.dll_GetCaretPos]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
cmp edi, 0xd2ced2
jg 0x401a21
inc edi
cmp edi, 0x263ff
jl 0x4019ea
mov eax, dword [0x471044]
mov dword [0x285eee4], eax
call fcn.004016c8
mov edi, 0x3078f
cmp dword [0x285eee4], 0x51f
jne 0x401a4d
push esi
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
dec edi
jne 0x401a35
pop edi
xor eax, eax
pop esi
add esp, 0x400
ret 0x10

Function at 0x4057de
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x470a70]
jne 0x4057e8
repz ret
jmp fcn.0040784c
Function at 0x40704b
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x470a70]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004030b2
and dword [ebp - 0x14], 0
cmp dword [0x47bbac], 0
mov dword [ebp - 0x18], eax
jne 0x4070fe
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x4071a6
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x4071a6
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x47bbac], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x47bbb0], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x47bbb4], eax
call edi
push eax
call esi
mov dword [0x47bbbc], eax
test eax, eax
je 0x4070fe
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x47bbb8], eax
mov eax, dword [0x47bbb8]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x407157
cmp dword [0x47bbbc], ecx
je 0x407157
push eax
call esi
push dword [0x47bbbc]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x407157
test ebx, ebx
je 0x407157
call edi
test eax, eax
je 0x40714e
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40714e
test byte [ebp - 8], 1
jne 0x407157
or dword [ebp + 0x10], 0x200000
jmp 0x40718a
mov eax, dword [0x47bbb0]
cmp eax, dword [ebp - 0x18]
je 0x40718a
push eax
call esi
test eax, eax
je 0x40718a
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40718a
mov eax, dword [0x47bbb4]
cmp eax, dword [ebp - 0x18]
je 0x40718a
push eax
call esi
test eax, eax
je 0x40718a
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x47bbac]
call esi
test eax, eax
je 0x4071a6
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x4071a8
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004057de
leave
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x407ef8
nop
mov ecx, 0x1248781c
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x42e04e
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x42e024
nop
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x42cd70
nop
mov ecx, 0x2250530e
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x42e084
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
jne 0x42e06c
nop
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x404e90
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 8]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10]
mov dword [esp], eax
mov dword [esp + 0xc], 0
call sub.msvcrt.dll___getmainargs
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 8]
mov edx, dword [eax + 0x3c]
cmp word [eax + edx + 0x5c], 2
sete al
movzx eax, al
add eax, 1
mov dword [esp], eax
call sub.msvcrt.dll___set_app_type
mov eax, dword [ebp - 8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.00404f50
mov dword [esp], eax
call sub.msvcrt.dll_exit
nop
nop
nop
nop
push ebp
mov ebp, esp
call sub.msvcrt.dll___iob_func
mov edx, dword [ebp + 8]
pop ebp
shl edx, 5
add eax, edx
ret
Function at 0x403bc0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433020
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x44600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x448258], 0x2c
jl 0x403c18
push 0x44825c
call fcn.00414c70
mov edx, dword [0x448254]
add esp, 4
test edx, edx
je 0x403c0a
mov eax, dword [edx]
mov dword [0x448254], eax
mov dword [0x44825c], 1
test edx, edx
jne 0x403c2f
push 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
test edx, edx
je 0x403c62
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], 0
mov ecx, edx
call fcn.004050a0
mov byte [ebp - 4], 1
mov dword [edx], vtable.CWConstString.0
mov dword [ebp - 4], 0xffffffff
mov eax, edx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00423ea3
int3

Function at 0x403c70
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433058
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x44600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp dword [0x448258], 0x2c
jl 0x403ccd
push 0x44825c
call fcn.00414c70
mov esi, dword [0x448254]
add esp, 4
test esi, esi
je 0x403cbf
mov eax, dword [esi]
mov dword [0x448254], eax
mov dword [0x44825c], 1
test esi, esi
jne 0x403ce8
push 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x403d6f
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.004050a0
mov byte [ebp - 4], 1
mov dword [esi], vtable.CWConstString.0
mov byte [ebp - 4], 2
mov dword [esi], vtable.CWConstString.0
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x10]
cmp eax, vtable.CVolMem.0
jne 0x403d76
mov eax, dword [edi + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov ecx, dword [edi + 0x24]
test ecx, ecx
jne 0x403d40
xor eax, eax
jmp 0x403d43
mov eax, dword [edi + 0x1c]
push ecx
push eax
lea ecx, [esi + 0x10]
mov dword [esi + 0x24], 0
call fcn.004146a0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00423ea3
lea ecx, [esi + 0x10]
call dword [eax + 0x44]
jmp 0x403d29
Function at 0x404340
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433178
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x44600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x448258], 0x2c
jl 0x404398
push 0x44825c
call fcn.00414c70
mov ecx, dword [0x448254]
add esp, 4
test ecx, ecx
je 0x40438a
mov eax, dword [ecx]
mov dword [0x448254], eax
mov dword [0x44825c], 1
test ecx, ecx
jne 0x4043af
push 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, eax
test ecx, ecx
je 0x4043d4
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
call fcn.004050a0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00423ea3
int3

Function at 0x404490
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4331d8
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x44600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [0x448258], 0x2c
jl 0x4044eb
push 0x44825c
call fcn.00414c70
mov ecx, dword [0x448254]
add esp, 4
test ecx, ecx
je 0x4044dd
mov eax, dword [ecx]
mov dword [0x448254], eax
mov dword [0x44825c], 1
test ecx, ecx
jne 0x404502
push 0x2c
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, eax
test ecx, ecx
je 0x404529
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
push esi
call fcn.004043e0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00423ea3
int3

Function at 0x404a50
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4332c0
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x44600c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x448258], 0x1c
jl 0x404aa8
push 0x44825c
call fcn.00414c70
mov ecx, dword [0x448254]
add esp, 4
test ecx, ecx
je 0x404a9a
mov eax, dword [ecx]
mov dword [0x448254], eax
mov dword [0x44825c], 1
test ecx, ecx
jne 0x404abf
push 0x1c
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, eax
test ecx, ecx
je 0x404b1b
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], 0
mov dword [ecx], vtable.CVolObject.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ebp - 4], 1
mov dword [ecx], vtable.CVolMem.0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x18], 0x40
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
push 0xffffffffffffffff
call fcn.00423ea3
int3