joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4ea100
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1020
call fcn.004bb170
mov eax, dword [0x542af0]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x101c], ecx
xor eax, eax
mov word [ebp - 0x1010], ax
push 0xffe
push 0
lea ecx, [ebp - 0x100e]
push ecx
call fcn.004b5d20
add esp, 0xc
push 0x514dcc
mov edx, dword [ebp - 0x101c]
add edx, 0xa8
push edx
lea eax, [ebp - 0x1018]
push eax
call fcn.00404770
add esp, 0xc
mov dword [ebp - 0x1020], eax
mov ecx, dword [ebp - 0x1020]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
push 0x800
lea ecx, [ebp - 0x1010]
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
lea ecx, [ebp - 0x1018]
call fcn.00403360
mov dword [ebp - 0x1014], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov edx, dword [ebp - 4]
lea eax, [ebp + edx*2 - 0x1010]
push eax
call fcn.004b5c29
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x4ea1de
mov ecx, dword [ebp - 0x1014]
add ecx, 1
mov dword [ebp - 0x1014], ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
lea ecx, [eax + edx + 1]
mov dword [ebp - 4], ecx
jmp 0x4ea1a4
mov eax, dword [ebp - 0x1014]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004b5c1a
mov esp, ebp
pop ebp
ret
Function at 0x4ea430
Capabilities:
Get mac address on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f8e33
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x542af0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x30]
call fcn.00407d80
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
push eax
push 0
call sub.IPHLPAPI.DLL_GetAdaptersInfo
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x4ea4c2
cmp dword [ebp - 0x3c], 0x6f
je 0x4ea4c2
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00402e50
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004030a0
mov eax, dword [ebp + 8]
jmp 0x4ea5f7
mov eax, dword [ebp - 0x38]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4ea503
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00402e50
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004030a0
mov eax, dword [ebp + 8]
jmp 0x4ea5f7
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x4ea54a
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea eax, [ebp - 0x30]
push eax
mov ecx, dword [ebp + 8]
call fcn.00402e50
mov ecx, dword [ebp - 0x40]
or ecx, 1
mov dword [ebp - 0x40], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004030a0
mov eax, dword [ebp + 8]
jmp 0x4ea5f7
lea ecx, [ebp - 0x34]
call fcn.00403340
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0x199]
push eax
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x198]
push edx
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0x197]
push ecx
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0x196]
push eax
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x195]
push edx
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0x194]
push ecx
push str._02X_02X_02X_02X_02X_02X
lea edx, [ebp - 0x34]
push edx
call fcn.004077d0
add esp, 0x20
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [ebp - 0x34]
call fcn.00407530
push eax
lea ecx, [ebp - 0x30]
call fcn.00407d60
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00402e50
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x34]
call fcn.00403360
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.004030a0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004b5c1a
mov esp, ebp
pop ebp
ret
Function at 0x4ea710
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f8fe2
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x542af0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0x29c
push eax
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
test eax, eax
je 0x4ea827
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea ecx, [ebp - 0x14]
call fcn.00403340
mov byte [ebp - 4], 2
mov edx, dword [ebp + 8]
push edx
movzx eax, word [ebp - 0x16]
push eax
movzx ecx, word [ebp - 0x18]
push ecx
movzx edx, word [ebp - 0x1a]
push edx
movzx eax, word [ebp - 0x1c]
push eax
movzx ecx, word [ebp - 0x1e]
push ecx
movzx edx, word [ebp - 0x22]
push edx
movzx eax, word [ebp - 0x24]
push eax
push str._r_n_d__02d__02d__02d:_02d:_02d._03d_:__s
lea ecx, [ebp - 0x14]
push ecx
call fcn.00406370
add esp, 0x28
lea ecx, [ebp - 0x14]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x290], 0xffffffff
je 0x4ea7f5
lea ecx, [ebp - 0x14]
call fcn.004037d0
shl eax, 1
push eax
lea ecx, [ebp - 0x14]
call sym.QiyiInstaller.exe_public:_enum_eScriptType___thiscall_CScriptModule::Type_void_
push eax
mov ecx, dword [ebp - 0x28]
add ecx, 0x28c
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0x28c]
mov eax, dword [edx + 0x38]
call eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.00403360
jmp 0x4ea810
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x28]
add ecx, 0x29c
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00403360
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x4eaeb0
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f9653
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x542af0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x25c], 0
lea ecx, [ebp - 0x24c]
call fcn.00403340
mov dword [ebp - 4], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x244], 0
push 0x228
push 0
lea eax, [ebp - 0x240]
push eax
call fcn.004b5d20
add esp, 0xc
mov dword [ebp - 0x244], 0x22c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x250], eax
push 0
push 0x40000002
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0xffffffff
je 0x4eafcd
lea ecx, [ebp - 0x244]
push ecx
mov edx, dword [ebp - 0x254]
push edx
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x4eafcd
mov eax, dword [ebp - 0x23c]
cmp eax, dword [ebp - 0x250]
jne 0x4eafa9
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x258], ecx
jmp 0x4eafc0
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x254]
push eax
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x4eaf8d
mov ecx, dword [ebp - 0x254]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x258], 0
jbe 0x4eb04e
push 0
push 0x40000002
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0xffffffff
je 0x4eb04e
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x254]
push eax
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x4eb04e
mov ecx, dword [ebp - 0x23c]
cmp ecx, dword [ebp - 0x258]
jne 0x4eb02a
lea edx, [ebp - 0x220]
push edx
lea ecx, [ebp - 0x24c]
call fcn.00403d40
jmp 0x4eb041
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x254]
push ecx
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x4eb008
mov edx, dword [ebp - 0x254]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x24c]
push eax
mov ecx, dword [ebp + 8]
call fcn.00402580
mov ecx, dword [ebp - 0x25c]
or ecx, 1
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24c]
call fcn.00403360
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b5c1a
mov esp, ebp
pop ebp
ret 4
Function at 0x4ebaa0
Capabilities:
Terminate process
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
add eax, 0x29c
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x274]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x290], 0xffffffff
je 0x4ebb02
mov ecx, dword [ebp - 0x1c]
add ecx, 0x28c
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x28c]
mov edx, dword [eax + 0x48]
call edx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x28c
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x28c]
mov eax, dword [edx + 0x4c]
call eax
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp - 0x1c]
add ecx, 0x124
call fcn.004955e0
jmp 0x4ebb24
push 0
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 8]
call fcn.004074f0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x124
call fcn.004086c0
push eax
lea ecx, [ebp - 8]
call fcn.00408db0
movzx ecx, al
test ecx, ecx
je 0x4ebb75
push 0x3e8
lea ecx, [ebp - 8]
call fcn.00495690
mov edx, dword [eax]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4ebb73
push 0xffffffffffffffff
lea ecx, [ebp - 8]
call fcn.00495690
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
jmp 0x4ebb16
mov ecx, dword [ebp - 0x1c]
call fcn.004eb0a0
mov ecx, dword [ebp - 0x1c]
call fcn.004e9f10
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [ebp - 0x1c]
call fcn.00497b31
mov esp, ebp
pop ebp
ret
Function at 0x4ede40
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov dword [eax], vtable.CPoster.0
mov ecx, dword [ebp - 4]
mov dword [ecx + method.DuiLib::CContainerUI.virtual_0], vtable.CPoster.1.0
mov edx, dword [ebp - 4]
cmp dword [edx + 0x3fc], 0
je 0x4ede91
push 0x64
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x3fc]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4ede91
push 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x3fc]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, dword [ebp - 4]
add ecx, 0x3f8
call fcn.00403360
mov ecx, dword [ebp - 4]
add ecx, 0x3f4
call fcn.00403360
mov ecx, dword [ebp - 4]
add ecx, 0x3f0
call fcn.00403360
mov ecx, dword [ebp - 4]
call sym.QiyiInstaller.exe_public_virtual:_void___thiscall_DuiLib::CContainerUI::destructor_void_
mov esp, ebp
pop ebp
ret
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x42e030
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x42e01e
nop
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x994cdc
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
xor esi, esi
cmp dword [ebp + 8], esi
jne 0x994d03
call fcn.00937288
mov dword [eax], esi
call fcn.00937275
push 0x16
pop esi
mov dword [eax], esi
call fcn.00937eca
mov eax, esi
jmp 0x994d58
test dword [ebp + 0xc], 0xfffffff9
jne 0x994ce9
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x994d30
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0093729b
pop ecx
call fcn.00937275
mov eax, dword [eax]
jmp 0x994d58
test al, 0x10
jne 0x994d56
test al, 1
je 0x994d56
test byte [ebp + 0xc], 2
je 0x994d56
call fcn.00937288
mov dword [eax], 5
call fcn.00937275
mov dword [eax], 0xd
jmp 0x994d27
xor eax, eax
pop esi
pop ebp
ret

Function at 0x4060b6
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.004021ba
and dword [ebp - 4], 0
cmp dword [0x40b654], 0
mov ebx, eax
jne 0x406167
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x406218
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x406218
push eax
call fcn.00402148
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x40b654], eax
call esi
push eax
call fcn.00402148
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x40b658], eax
call esi
push eax
call fcn.00402148
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x40b65c], eax
call esi
push eax
call fcn.00402148
pop ecx
mov dword [0x40b664], eax
test eax, eax
je 0x406167
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00402148
pop ecx
mov dword [0x40b660], eax
mov eax, dword [0x40b660]
cmp eax, ebx
je 0x4061bf
cmp dword [0x40b664], ebx
je 0x4061bf
push eax
call fcn.004021c3
push dword [0x40b664]
mov esi, eax
call fcn.004021c3
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x4061bf
test edi, edi
je 0x4061bf
call esi
test eax, eax
je 0x4061b6
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x4061b6
test byte [ebp - 0xc], 1
jne 0x4061bf
or dword [ebp + 0x10], 0x200000
jmp 0x4061f8
mov eax, dword [0x40b658]
cmp eax, ebx
je 0x4061f8
push eax
call fcn.004021c3
pop ecx
test eax, eax
je 0x4061f8
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x4061f8
mov eax, dword [0x40b65c]
cmp eax, ebx
je 0x4061f8
push eax
call fcn.004021c3
pop ecx
test eax, eax
je 0x4061f8
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x40b654]
call fcn.004021c3
pop ecx
test eax, eax
je 0x406218
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40621a
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x406ba1
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor esi, esi
mov dword [ebp - 4], edx
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
mov eax, esi
jmp 0x406c05
inc esi
and esi, 0x800000ff
jns 0x406bc7
dec esi
or esi, 0xffffff00
inc esi
mov cl, byte [esi + ebx]
movzx edx, cl
add eax, edx
and eax, 0x800000ff
jns 0x406bdd
dec eax
or eax, 0xffffff00
inc eax
mov dword [ebp + 8], eax
mov al, byte [eax + ebx]
mov byte [esi + ebx], al
mov eax, dword [ebp + 8]
mov byte [eax + ebx], cl
movzx eax, byte [esi + ebx]
mov ecx, dword [ebp - 4]
add eax, edx
movzx eax, al
mov al, byte [eax + ebx]
xor byte [ecx], al
inc ecx
mov eax, dword [ebp + 8]
dec edi
mov dword [ebp - 4], ecx
test edi, edi
jg 0x406bb6
pop edi
pop esi
pop ebx
leave
ret

Function at 0x406e6c
Capabilities:
Hash data using sha1

Disassembly:
and dword [ecx + 0x18], 0
and dword [ecx + 0x14], 0
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
mov dword [ecx + 0x10], 0xc3d2e1f0
ret
Function at 0x40891c
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
push ebx
push esi
push edi
call fcn.00408bc0
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], edx
cmp eax, ecx
jne 0x408941
cmp edx, ecx
je 0x408bb7
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], edx
push 0x33
call 0x408957
add dword [esp], 5
retf
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
leave
ret

Function at 0x408be6
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5cc
cmp dword [0x419698], 0
push ebx
push esi
push edi
je 0x408e3d
call fcn.00408e5d
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], ecx
test eax, eax
jne 0x408c15
test edx, edx
je 0x408c64
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
push 0x33
call 0x408c22
add dword [esp], 5
retf
mov ecx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x5c8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x1e4]
test ecx, ecx
jne 0x408c81
test eax, eax
je 0x408cd0
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
push 0x33
call 0x408c8e
add dword [esp], 5
retf
mov esi, dword [ebp - 0x5b0]
lea eax, [ebp - 0x160]
mov ebx, dword [ebp - 0x5ac]
mov dword [ebp - 4], eax
test esi, esi
jne 0x408ced
test ebx, ebx
je 0x408d48
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], ebx
push 0x33
call 0x408cfa
add dword [esp], 5
retf
mov ecx, dword [ebp - 0x150]
lea edx, [ebp - 0x108]
mov eax, dword [ebp - 0x14c]
add esi, 0x10
mov dword [ebp - 0x1c], esi
adc ebx, 0
mov dword [ebp - 0x108], ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x14], edx
test ecx, ecx
jne 0x408d7d
test eax, eax
je 0x408dd2
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
push 0x33
call 0x408d8a
add dword [esp], 5
retf
movzx eax, word [ebp - 0xae]
push eax
call fcn.00401c85
mov dword [ebp - 4], eax
pop ecx
test eax, eax
je 0x408e3d
push dword [ebp - 0xa4]
movzx edx, word [ebp - 0xae]
lea ecx, [ebp - 4]
push dword [ebp - 0xa8]
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov byte [ebp - 0xc], 1
call fcn.00408f27
mov edx, dword [ebp - 4]
pop ecx
pop ecx
call fcn.00409102
lea ecx, [ebp - 0x10]
test eax, eax
je 0x408e46
call fcn.00402b2c
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x104]
cmp ecx, esi
jne 0x408d75
cmp eax, ebx
jne 0x408d75
xor eax, eax
xor edx, edx
pop edi
pop esi
pop ebx
leave
ret
mov edi, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd4]
call fcn.00402b2c
mov eax, edi
mov edx, esi
jmp 0x408e41

Function at 0x408e5d
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
xorps xmm0, xmm0
push edi
movlpd qword [ebp - 8], xmm0
push 0x33
call 0x408e74
add dword [esp], 5
retf
Function at 0x408e9b
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], 0x17
mov dword [ebp - 8], 0x414964
push ebx
push esi
push edi
test ecx, ecx
jne 0x408ec4
test eax, eax
jne 0x408ec4
xor al, al
jmp 0x408f22
mov byte [ebp - 1], 0
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], eax
push 0x33
call 0x408ed5
add dword [esp], 5
retf
pop edi
pop esi
pop ebx
leave
ret

Function at 0x408f27
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 8], edx
mov dword [ebp - 4], ecx
push ebx
push esi
push edi
test ecx, ecx
je 0x408f99
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
test ecx, ecx
jne 0x408f48
test eax, eax
je 0x408f99
test edx, edx
je 0x408f99
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
push 0x33
call 0x408f59
add dword [esp], 5
retf
pop edi
pop esi
pop ebx
leave
ret

Function at 0x408f9e
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
cmp dword [0x419698], 0
push ebx
push esi
push edi
jne 0x408fb9
xor eax, eax
xor edx, edx
jmp 0x4090fd
mov ecx, dword [ebp + 0x10]
lea edx, [ebp + 0x14]
test ecx, ecx
jle 0x408fd8
mov eax, dword [ebp + 0x14]
lea edx, [ebp + 0x1c]
dec ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0x10], eax
jmp 0x408fe0
xorps xmm0, xmm0
movlpd qword [ebp - 0x14], xmm0
test ecx, ecx
jle 0x408ff9
dec ecx
add edx, 8
mov dword [ebp + 0x10], ecx
mov eax, dword [edx - 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [edx - 4]
mov dword [ebp - 0x18], eax
jmp 0x409001
xorps xmm0, xmm0
movlpd qword [ebp - 0x1c], xmm0
test ecx, ecx
jle 0x40901a
dec ecx
add edx, 8
mov dword [ebp + 0x10], ecx
mov eax, dword [edx - 8]
mov dword [ebp - 0x24], eax
mov eax, dword [edx - 4]
mov dword [ebp - 0x20], eax
jmp 0x409022
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
test ecx, ecx
jle 0x40903b
dec ecx
add edx, 8
mov dword [ebp + 0x10], ecx
mov eax, dword [edx - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [edx - 4]
mov dword [ebp - 0x28], eax
jmp 0x409043
xorps xmm0, xmm0
movlpd qword [ebp - 0x2c], xmm0
and dword [ebp - 8], 0
mov eax, edx
and dword [ebp - 0xc], 0
xorps xmm0, xmm0
cdq
mov dword [ebp - 0x44], eax
mov eax, ecx
mov dword [ebp - 0x40], edx
cdq
movlpd qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
mov word [ebp - 0xc], fs
mov eax, 0x2b
mov fs, ax
mov dword [ebp - 8], esp
and esp, 0xfffffff0
push 0x33
call 0x40907e
add dword [esp], 5
retf
pop edi
pop esi
pop ebx
leave
ret
Function at 0x410f46
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
mov eax, 0x5a4d
mov dword [esi + 0x20], edi
cmp word [edi], ax
jne 0x411046
mov eax, dword [edi + 0x3c]
add eax, edi
cmp dword [eax], 0x4550
jne 0x411046
movzx ecx, word [eax + 4]
mov edx, 0x14c
cmp cx, dx
jne 0x410fdf
mov dword [esi + 0x40], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x24], eax
push dword [eax + 0x54]
push edi
call fcn.00403b91
mov ecx, dword [esi + 0x24]
and dword [ebp + 8], 0
movzx eax, word [ecx + 0x14]
lea ebx, [ecx + 0x18]
add ebx, eax
xor eax, eax
cmp ax, word [ecx + 6]
jae 0x41103e
sub esp, 0x30
mov ecx, esp
push ecx
push ebx
push edi
call fcn.004116c3
lea ecx, [esi + 0x2c]
call fcn.00402e96
mov eax, dword [esi + 0x24]
add ebx, 0x28
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
movzx eax, word [eax + 6]
cmp ecx, eax
jl 0x410fb3
jmp 0x41103e
mov edx, 0x8664
cmp cx, dx
jne 0x41103e
xor ebx, ebx
mov dword [esi + 0x28], eax
mov dword [esi + 0x40], ebx
lea ecx, [esi + 0x18]
push dword [eax + 0x54]
push edi
call fcn.00403b91
mov ecx, dword [esi + 0x28]
xor edx, edx
movzx eax, word [ecx + 0x14]
add eax, 0x18
add eax, ecx
mov dword [ebp + 8], eax
cmp dx, word [ecx + 6]
jae 0x41103e
sub esp, 0x30
mov ecx, esp
push ecx
push eax
push edi
call fcn.004116c3
lea ecx, [esi + 0x2c]
call fcn.00402e96
mov ecx, dword [esi + 0x28]
inc ebx
mov eax, dword [ebp + 8]
add eax, 0x28
mov dword [ebp + 8], eax
movzx ecx, word [ecx + 6]
cmp ebx, ecx
jl 0x411014
xor eax, eax
inc eax
mov dword [esi + 0x3c], eax
jmp 0x411048
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 4

Function at 0x411220
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0x30]
push esi
push edi
mov edi, dword [eax + 0xc]
add edi, 0x14
mov esi, dword [edi]
jmp 0x411240
mov ecx, dword [esi + 0x28]
call fcn.004112de
test eax, eax
je 0x411249
mov esi, dword [esi]
cmp esi, edi
jne 0x411232
xor eax, eax
pop edi
pop esi
ret
mov eax, dword [esi + 0x10]
jmp 0x411246

Function at 0x4112c4
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x4112db
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
je 0x4112dd
xor eax, eax
ret

Function at 0x412536
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0x800
mov ebx, ecx
call fcn.00401c85
mov edi, eax
mov esi, 0x416070
pop ecx
mov edx, edi
sub esi, edi
mov eax, 0x601
mov cl, byte [esi + edx]
xor cl, 0x45
mov byte [edx], cl
inc edx
sub eax, 1
jne 0x41255a
lea eax, [ebp - 4]
push eax
push 0x40
push 0x7d0
push edi
call dword [0x4141a8]
push 0x40
push 0x1000
push 0x1fe
push 0
call dword [0x414090]
mov esi, eax
push 0x104
push esi
call dword [0x4141b4]
push 0x28
push 0x41729c
push esi
call dword [0x414208]
lea ecx, [esi + eax*2]
push ecx
call fcn.00401c2c
add esp, 0xc
lea eax, [edi + 0xef]
push 0
push 0
push ebx
push esi
call eax
pop edi
pop esi
pop ebx
leave
ret