joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40a018
Capabilities:
Allocate or change rwx memory
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffbc
mov edi, eax
lea esi, [esp + 0x28]
lea eax, [esp + 4]
push eax
call sub.kernel32.dll_GetSystemInfo
mov ebx, edi
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x40a0cc
jmp 0x40a0c1
cmp dword [esi + 0x10], 0x1000
jne 0x40a0ad
test byte [esi + 0x15], 1
jne 0x40a0ad
xor ebx, ebx
mov eax, dword [esi + 0x14]
cmp eax, 1
je 0x40a06c
cmp eax, 2
je 0x40a06c
cmp eax, 0x10
je 0x40a06c
cmp eax, 0x20
jne 0x40a081
push esp
push 0x40
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
je 0x40a081
mov bl, 1
xor ebp, ebp
jmp 0x40a092
mov eax, dword [esi]
add eax, ebp
call fcn.0040a010
add ebp, dword [esp + 8]
cmp ebp, dword [esi + 0xc]
jb 0x40a085
test bl, bl
je 0x40a0ad
push esp
mov eax, dword [esp + 4]
push eax
mov eax, dword [esi + 0xc]
push eax
mov eax, dword [esi]
push eax
call sub.kernel32.dll_VirtualProtect
mov eax, dword [esi]
add eax, dword [esi + 0xc]
mov ebx, eax
push 0x1c
push esi
push ebx
call sub.kernel32.dll_VirtualQuery
test eax, eax
je 0x40a0cc
mov eax, dword [esi + 4]
cmp eax, edi
je 0x40a044
add esp, 0x44
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x43b630
Capabilities:
Encode data using xor

Disassembly:
push 0x43b3c1
pop edx
add eax, eax
add edi, 0xff333ef9
call fcn.0043b66a
inc edi
dec edi
xor dword [esi], edx
and edi, edi
inc esi
sub eax, 0xc674d2c3
mov eax, edi
sub edi, 0xc4ad859e
cmp esi, ebx
jne fcn.0043b630
or eax, eax
add eax, edi
ret

Function at 0x42e006
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
call 0x42e00c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x42e030
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x42e01e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp fcn.00401219
Function at 0x4012e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
xor ecx, ecx
push edi
mov dword [0x4e96f8], ecx
mov dword [ebp - 4], ecx
mov edi, 0x915f38
mov eax, dword [edi - 0xfd0]
test eax, eax
je 0x4013ae
mov eax, dword [edi + 8]
test eax, eax
jne 0x4013ae
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x401331
mov edx, eax
shl edx, 7
add edx, eax
mov ecx, eax
lea eax, [eax + edx*4]
mov eax, dword [eax*8 + 0x915f38]
cmp eax, 0xffffffff
jne 0x401319
mov edx, ecx
shl edx, 7
add edx, ecx
lea esi, [ecx + edx*4]
shl esi, 3
mov eax, dword [esi + 0x915f3c]
test eax, eax
jne 0x4013a4
call fcn.0044ea0b
mov ecx, eax
shl ecx, 0x11
or ecx, eax
or ecx, 0x11111111
mov dword [esi + 0x915f3c], ecx
mov eax, dword [esi + 0x914f7c]
mov esi, dword [esi + 0x914f68]
test esi, esi
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], esi
je 0x4013a4
cmp eax, 4
jb 0x4013a4
mov esi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov ebx, dword [ebp - 8]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x4013a4
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x401395
mov dword [0x4e96f8], 1
mov ecx, dword [ebp - 4]
inc ecx
add edi, 0x1028
cmp edi, 0xd08ba0
mov dword [ebp - 4], ecx
jl 0x4012f9
mov eax, dword [0x4e96fc]
test eax, eax
jne 0x4014b4
mov eax, dword [0xd0abec]
test eax, eax
je 0x4014b4
call fcn.0044ea0b
mov esi, eax
shl esi, 0x11
call fcn.0044ea0b
or esi, eax
mov eax, dword [0xd0abec]
or esi, 1
test eax, eax
mov edi, 0xfa0
mov dword [0x4e96fc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
je 0x40143e
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov ebx, dword [ebp - 0x10]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x401438
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x401429
mov esi, dword [0x4e96fc]
mov eax, dword [0xd0abf0]
test eax, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
je 0x40147c
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov ebx, dword [ebp - 0x10]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x401476
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x401467
mov esi, dword [0x4e96fc]
mov eax, dword [0x8ed8fc]
test eax, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
je 0x4014b4
mov esi, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, esi
mov ebx, dword [ebp - 0x10]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x4014b4
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x4014a5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4014c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x4e96f8]
test eax, eax
push ebx
push esi
push edi
je 0x40159e
xor edi, edi
mov edx, 0x915f38
mov dword [ebp - 4], edi
mov dword [ebp - 8], edx
mov eax, dword [edx - 0xfd0]
test eax, eax
je 0x401578
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x401510
mov ecx, eax
shl ecx, 7
add ecx, eax
mov edi, eax
lea eax, [eax + ecx*4]
mov eax, dword [eax*8 + 0x915f38]
cmp eax, 0xffffffff
jne 0x4014f8
mov ecx, edi
shl ecx, 7
add ecx, edi
lea edi, [edi + ecx*4]
shl edi, 3
mov eax, dword [edi + 0x915f3c]
test eax, eax
je 0x401578
mov ecx, dword [edi + 0x914f7c]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x914f68]
test eax, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
je 0x40156e
cmp ecx, 4
jb 0x40156e
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov ebx, dword [ebp - 0xc]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x40156b
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x40155c
mov edx, dword [ebp - 8]
mov dword [edi + 0x915f3c], 0
mov edi, dword [ebp - 4]
add edx, 0x1028
inc edi
cmp edx, 0xd08ba0
mov dword [ebp - 4], edi
mov dword [ebp - 8], edx
jl 0x4014e3
mov dword [0x4e96f8], 0
mov eax, dword [0x4e96fc]
test eax, eax
je 0x40166e
mov ecx, dword [0xd0abec]
test ecx, ecx
mov edi, 0xfa0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], ecx
je 0x4015ee
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov ebx, dword [ebp - 0x14]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x4015e9
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x4015da
mov eax, dword [0x4e96fc]
mov ecx, dword [0xd0abf0]
test ecx, ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], ecx
je 0x40162c
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov ebx, dword [ebp - 0x14]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x401627
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x401618
mov eax, dword [0x4e96fc]
mov dword [ebp - 0x14], eax
mov eax, dword [0x8ed8fc]
test eax, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], eax
je 0x401664
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov edx, esi
mov ebx, dword [ebp - 0x14]
and edx, 3
sub ecx, edx
add esi, edx
shr ecx, 2
je 0x401664
ror ebx, 1
mov eax, dword [esi]
add esi, 4
xor eax, ebx
dec ecx
mov dword [esi - 4], eax
jne 0x401655
mov dword [0x4e96fc], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4041e0
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
push esi
push 0
push 0x4eb8c4
push 0x500
push eax
call sub.DINPUT.dll_DirectInputCreateA
test eax, eax
je 0x4041ff
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8c4]
mov ecx, dword [eax]
push 0
push 0x4eb8c8
push 0x4a8a00
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x40421e
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8c8]
mov edx, dword [eax]
push 0x4a8a78
push eax
call dword [edx + 0x2c]
test eax, eax
je 0x404236
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8c8]
mov esi, dword [esp + 8]
mov ecx, dword [eax]
push 6
push esi
push eax
call dword [ecx + 0x34]
test eax, eax
je 0x404250
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8c4]
mov edx, dword [eax]
push 0
push 0x4eb8cc
push 0x4a8a10
push eax
call dword [edx + 0xc]
test eax, eax
je 0x40426f
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8cc]
mov ecx, dword [eax]
push 0x4a8a60
push eax
call dword [ecx + 0x2c]
test eax, eax
je 0x404287
xor eax, eax
pop esi
ret
mov eax, dword [0x4eb8cc]
mov edx, dword [eax]
push 6
push esi
push eax
call dword [edx + 0x34]
test eax, eax
je 0x40429d
xor eax, eax
pop esi
ret
cmp dword [0x4c222c], 2
jne 0x404354
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
mov dword [0x4eb8d0], eax
jne 0x4042c3
pop esi
ret
mov ecx, dword [0x4eb8cc]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x30]
test eax, eax
je 0x4042d8
xor eax, eax
pop esi
ret
mov eax, 0x10
push 0x4eb8b0
mov dword [0x4eb8b4], eax
mov dword [0x4eb8c0], eax
mov eax, dword [0x4eb8cc]
push 1
mov dword [0x4eb8b0], 0x14
mov dword [0x4eb8b8], 0
mov dword [0x4eb8bc], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x40431f
xor eax, eax
pop esi
ret
push 0x4eb8a8
push 0
push 0x4eb8b0
push 0x4040e0
push 0
push 0
call fcn.0044f2cb
add esp, 0x18
test eax, eax
mov dword [0x4eb8d4], eax
jne 0x404347
pop esi
ret
push 0x17
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x4eb8ac], eax
mov eax, dword [0x4eb8c8]
mov edx, dword [eax]
push eax
call dword [edx + 0x1c]
mov eax, dword [0x4eb8cc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov eax, 1
pop esi
ret
Function at 0x4044e0
Capabilities:
Create thread

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [sym.imp.ole32.dll_CoCreateInstance]
push edi
push 0x4eb8dc
push 0x4a8940
xor eax, eax
push 3
push eax
mov ecx, 0x10
mov edi, 0x4eb8d8
push 0x4a89d0
rep stosd dword es:[edi], eax
call ebx
test eax, eax
jge 0x404519
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov eax, dword [0x4eb8dc]
mov ecx, dword [eax]
push 0
push 0
push 0x4eb8d8
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x404539
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
test eax, eax
mov dword [0x4eb8f8], eax
jne 0x404556
pop edi
pop ebx
add esp, 0x24
ret
push 0x4eb900
push 0
push 0x4eb8d8
push 0x404be0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
mov dword [0x4eb8fc], eax
jne 0x404580
pop edi
pop ebx
add esp, 0x24
ret
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x4eb8f8]
mov eax, dword [0x4eb8dc]
mov edx, dword [eax]
push 0
push 0
push ecx
push eax
call dword [edx + 0x50]
test eax, eax
jge 0x4045a9
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov eax, dword [0x4eb8dc]
mov edx, dword [eax]
push 0x4a89a0
push eax
call dword [edx + 0x58]
test eax, eax
jge 0x4045c5
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
push 0
push 0x4eb8e4
xor eax, eax
lea edx, [esp + 0x10]
push edx
mov ecx, 9
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
mov eax, dword [0x4eb8d8]
push 0x4a174c
mov dword [esp + 0x18], 0x24
mov dword [esp + 0x30], 1
mov dword [0x4eb908], 1
mov dword [esp + 0x24], 1
mov dword [esp + 0x1c], 0x22
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
test eax, eax
jge 0x404624
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov eax, dword [0x4eb8e4]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x3c]
test eax, eax
jge 0x40463d
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov ecx, dword [0x4eb8e4]
mov eax, dword [0x4eb8dc]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x60]
test eax, eax
jge 0x40465b
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov ecx, dword [0x4eb8e4]
mov eax, dword [0x4eb8dc]
mov edx, dword [eax]
push 1
push ecx
push 0
push eax
call dword [edx + 0x68]
test eax, eax
jge 0x40467d
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
push 0x4eb8e8
push 0x4a8960
push 3
push 0
push 0x4a89b0
call ebx
test eax, eax
jge 0x40469e
pop edi
xor eax, eax
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x30]
pop edi
mov dword [0x4eb8f4], edx
mov eax, 1
pop ebx
add esp, 0x24
ret
Function at 0x405350
Capabilities:
Get file size

Disassembly:
sub esp, 0x108
push ebx
push ebp
mov ebp, dword [esp + 0x114]
mov cl, byte [ebp]
push esi
push edi
mov edi, dword [esp + 0x124]
mov al, byte [edi]
or al, cl
jne 0x40537e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x108
ret
push ebp
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x14]
push edi
push edx
call fcn.00414c70
mov ebx, dword [esp + 0x130]
add esp, 8
xor eax, eax
test ebx, 0x80000000
je 0x4053ae
mov eax, 1
push 0
push 0x80
push 3
push 0
push eax
push ebx
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x405452
mov edi, dword [esp + 0x12c]
test edi, edi
je 0x405405
push 1
push 0
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov dword [edi], eax
jne 0x405405
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x108
ret
mov edi, dword [esp + 0x130]
test edi, edi
je 0x405434
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [edi], eax
jne 0x405434
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x108
ret
mov eax, dword [esp + 0x138]
test eax, eax
je 0x405445
mov dword [eax], 0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
push 0x5c
push edi
call fcn.0044f430
add esp, 8
test eax, eax
je 0x405464
lea edi, [eax + 1]
mov esi, dword [esp + 0x120]
test esi, esi
je 0x4054d3
push ebp
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x134]
mov edx, dword [esp + 0x130]
push eax
mov eax, dword [esp + 0x130]
push ecx
push edx
push eax
push ebx
lea ecx, [esp + 0x28]
push edi
push ecx
call fcn.004746d0
mov esi, eax
add esp, 0x1c
cmp esi, 0xffffffff
je 0x40554b
call fcn.00415410
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
mov al, byte [0x8d3704]
test al, al
je 0x40554b
mov esi, 0x8d3704
mov dword [esp + 0x10], esi
push ebp
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x134]
mov eax, dword [esp + 0x130]
push ecx
mov ecx, dword [esp + 0x130]
push edx
push eax
push ecx
push ebx
lea edx, [esp + 0x28]
push edi
push edx
call fcn.004746d0
mov esi, eax
add esp, 0x1c
cmp esi, 0xffffffff
jne 0x4054c1
mov esi, dword [esp + 0x10]
mov al, byte [esi + 0x104]
add esi, 0x104
test al, al
mov dword [esp + 0x10], esi
jne 0x4054e5
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x108
ret
Function at 0x405b00
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebx
mov ebx, dword [esp + 8]
mov eax, ebx
shl eax, 7
add eax, ebx
lea ebx, [ebx + eax*4]
shl ebx, 3
mov eax, dword [ebx + 0x914f8c]
test eax, eax
push ebp
push esi
push edi
je 0x405b33
mov ecx, dword [ebx + 0x914f68]
push 0x8000
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.00405940
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x405b50
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esp + 0x14]
push 0x40
push 0x3000
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
mov dword [ebx + 0x914f64], eax
jne 0x405b73
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esp + 0x14]
mov edx, ecx
shr ecx, 2
mov edi, eax
mov esi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push ebp
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebx + 0x914f7c], eax
mov ecx, dword [ebx + 0x914f64]
mov dword [ebx + 0x914f68], ecx
mov dword [ebx + 0x914f8c], 1
mov eax, dword [ebx + 0x914f64]
mov dword [ebx + 0x914f6c], eax
mov dword [ebx + 0x914f70], eax
mov dword [ebx + 0x915f38], 0xffffffff
xor edi, edi
mov dword [ebx + 0x915f3c], edi
mov dword [ebx + 0x915f40], edi
mov dword [ebx + 0x915f5c], 0x3e8
cmp dword [ebx + 0x915f58], edi
jne 0x405c0c
push 0xfa0
push 0x40
call esi
cmp eax, edi
mov dword [ebx + 0x915f58], eax
jne 0x405c0c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
cmp dword [ebx + 0x915f60], edi
jne 0x405c2e
push 0xfa0
push 0x40
call esi
cmp eax, edi
mov dword [ebx + 0x915f60], eax
jne 0x405c2e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret

Function at 0x405fd0
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [esp + 4]
mov cl, byte [eax]
sub esp, 0x108
push esi
mov esi, dword [esp + 0x114]
or cl, byte [esi]
jne 0x405ff2
xor eax, eax
pop esi
add esp, 0x108
ret
mov ecx, dword [0x4eb91c]
test ecx, ecx
je 0x406081
push eax
lea edx, [esp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 8]
push esi
push eax
call fcn.00414c70
add esp, 8
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x406048
xor eax, eax
pop esi
add esp, 0x108
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0
lea edx, [esp + 8]
push edx
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
push esi
jne 0x40607b
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop esi
add esp, 0x108
ret
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop esi
add esp, 0x108
ret
Function at 0x406760
Capabilities:
Encode data using xor

Disassembly:
push ebx
push 0x1f48
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x406788
push str.Global_Alloc_Error
push 0xd09bfc
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
pop ebx
ret
push esi
mov esi, dword [0x8ed8fc]
push edi
mov ecx, 0x3e8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0xd0abf0]
lea edi, [ebx + 0xfa0]
mov ecx, 0x3e8
rep movsd dword es:[edi], dword [esi]
xor eax, eax
lea ecx, [ebx + 0x1f40]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x4c23a0]
test eax, eax
je 0x40680c
push ebp
xor esi, esi
call fcn.0044ea0b
and eax, 0x800000ff
jns 0x4067d8
dec eax
or eax, 0xffffff00
inc eax
mov edx, ebx
mov edi, 0x1f40
xor ecx, ecx
mov cl, byte [edx]
mov ebp, ecx
and ebp, 0xff
xor cl, al
xor ebp, 0xd3
xor cl, 0xf4
add esi, ebp
mov byte [edx], cl
inc edx
dec edi
jne 0x4067df
xor al, 0xb1
xor esi, 0x4bc57d21
mov byte [edx], al
mov dword [edx + 4], esi
pop ebp
mov edx, dword [esp + 0x10]
push 0x1f48
push ebx
push edx
call fcn.00406090
add esp, 0xc
test eax, eax
pop edi
pop esi
push ebx
jne 0x406830
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
pop ebx
ret
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 1
pop ebx
ret

Function at 0x406840
Capabilities:
Encode data using xor

Disassembly:
push ebx
push 0xfa8
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x406868
push str.Global_Alloc_Error
push 0xd09bfc
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
pop ebx
ret
push esi
mov esi, dword [0xd0abec]
push edi
mov ecx, 0x3e8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
xor eax, eax
lea ecx, [ebx + 0xfa0]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x4c23a0]
test eax, eax
je 0x4068d9
push ebp
xor esi, esi
call fcn.0044ea0b
and eax, 0x800000ff
jns 0x4068a5
dec eax
or eax, 0xffffff00
inc eax
mov edx, ebx
mov edi, 0xfa0
xor ecx, ecx
mov cl, byte [edx]
mov ebp, ecx
and ebp, 0xff
xor cl, al
xor ebp, 0xd3
xor cl, 0xf4
add esi, ebp
mov byte [edx], cl
inc edx
dec edi
jne 0x4068ac
xor al, 0xb1
xor esi, 0x4bc57d21
mov byte [edx], al
mov dword [edx + 4], esi
pop ebp
mov edx, dword [esp + 0x10]
push 0xfa8
push ebx
push edx
call fcn.00406090
add esp, 0xc
test eax, eax
pop edi
pop esi
push ebx
jne 0x4068fd
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
pop ebx
ret
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 1
pop ebx
ret
Function at 0x406910
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
lea eax, [esp + 4]
push eax
push ecx
call fcn.00405940
add esp, 8
test eax, eax
jne 0x406927
ret
cmp dword [esp + 4], 0x1f48
je 0x406944
push str.Not_Flag_file.
push 0xd09bfc
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
ret
mov ecx, dword [0x4c23a0]
test ecx, ecx
push esi
push edi
je 0x40697f
push ebx
mov bl, byte [eax + 0x1f40]
xor esi, esi
mov edx, eax
xor bl, 0xb1
mov edi, 0x1f40
mov cl, byte [edx]
xor cl, bl
xor cl, 0xf4
mov byte [edx], cl
and ecx, 0xff
xor ecx, 0xd3
add esi, ecx
inc edx
dec edi
jne 0x406963
pop ebx
mov edi, dword [0x8ed8fc]
mov esi, eax
mov ecx, 0x3e8
rep movsd dword es:[edi], dword [esi]
mov edi, dword [0xd0abf0]
lea esi, [eax + 0xfa0]
mov ecx, 0x3e8
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
mov eax, 1
pop esi
ret

Function at 0x4069b0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
lea eax, [esp + 4]
push eax
push ecx
call fcn.00405940
add esp, 8
test eax, eax
jne 0x4069c7
ret
cmp dword [esp + 4], 0xfa8
je 0x4069e4
push str.Not_System_Flag_file.
push 0xd09bfc
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
ret
mov ecx, dword [0x4c23a0]
test ecx, ecx
push esi
push edi
je 0x406a1f
push ebx
mov bl, byte [eax + 0xfa0]
xor esi, esi
mov edx, eax
xor bl, 0xb1
mov edi, 0xfa0
mov cl, byte [edx]
xor cl, bl
xor cl, 0xf4
mov byte [edx], cl
and ecx, 0xff
xor ecx, 0xd3
add esi, ecx
inc edx
dec edi
jne 0x406a03
pop ebx
mov edi, dword [0xd0abec]
mov esi, eax
mov ecx, 0x3e8
push eax
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
mov eax, 1
pop esi
ret

Function at 0x406a40
Capabilities:
Create process on windows

Disassembly:
mov eax, dword [esp + 4]
mov cl, byte [eax]
sub esp, 0x158
push esi
mov esi, dword [esp + 0x164]
or cl, byte [esi]
jne 0x406a62
xor eax, eax
pop esi
add esp, 0x158
ret
push edi
push eax
lea edx, [esp + 0x60]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x5c]
push esi
push eax
call fcn.00414c70
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 8
push 0x4ba0f4
lea ecx, [esp + 0x60]
push ecx
call esi
mov edx, dword [esp + 0x16c]
push edx
lea eax, [esp + 0x60]
push eax
call esi
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x18]
rep stosd dword es:[edi], eax
xor ecx, ecx
mov dword [esp + 8], ecx
lea edx, [esp + 8]
push edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x1c]
push eax
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x7c]
push ecx
push 0
mov dword [esp + 0x40], 0x44
mov dword [esp + 0x6c], 1
mov word [esp + 0x70], 5
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
neg eax
sbb eax, eax
pop edi
neg eax
pop esi
add esp, 0x158
ret