joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40d9a8
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x419418]
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.00408fab
mov dword [ebp - 0x14], eax
cmp dword [0x430b20], esi
jne 0x40da9b
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x40da28
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x40db7b
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x40db7b
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40db7b
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x430b20], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x430b24], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x430b28], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x430b30], eax
test eax, eax
je 0x40da98
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x430b2c], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x40dac0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40dab3
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x40dad5
push 4
pop eax
jmp 0x40db7d
cmp dword [ebp - 0x14], esi
je 0x40dad5
push dword [0x430b20]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x40daba
mov eax, dword [0x430b2c]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x40db33
cmp dword [0x430b30], edi
je 0x40db33
push eax
call ebx
push dword [0x430b30]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x40db33
test eax, eax
je 0x40db33
call ecx
test eax, eax
je 0x40db28
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 0x40db28
test byte [ebp - 8], 1
jne 0x40db33
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x40db63
mov eax, dword [0x430b24]
cmp eax, edi
je 0x40db60
push eax
call ebx
test eax, eax
je 0x40db60
call eax
mov esi, eax
test esi, esi
je 0x40db60
mov eax, dword [0x430b28]
cmp eax, edi
je 0x40db60
push eax
call ebx
test eax, eax
je 0x40db60
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x430b20]
call ebx
test eax, eax
je 0x40db7b
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x40db7d
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00404315
mov esp, ebp
pop ebp
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 0x4018c0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffffc
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x403464], eax
mov edi, 0
mov ecx, 0xa
push edi
loop 0x4018dd
lea eax, [ebp - 0x2c]
push eax
mov edx, dword [0x403464]
mov dword [ebp - 0x1c], edx
lea ecx, str.contents
mov dword [ebp - 8], ecx
lea eax, section..text
mov dword [ebp - 0x28], eax
call dword [sym.imp.USER32.dll_RegisterClassA]
push 0x67
push dword [0x403464]
call dword [sym.imp.USER32.dll_LoadBitmapA]
push 0x66
push dword [0x403464]
call dword [sym.imp.USER32.dll_LoadBitmapA]
xor eax, eax
push eax
push dword [0x403464]
push eax
push eax
push 0x1f4
push 0x2f4
push 0x578
push 0xce4
push 0
mov ecx, str.frantically
push eax
push str.contents
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x403474], eax
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x403474]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
xor eax, eax
push eax
push eax
push eax
lea edx, [ebp - 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x4019a6
mov esi, dword [sym.imp.USER32.dll_TranslateMessage]
mov edi, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [ebp - 0x1c]
push ecx
call edi
xor eax, eax
push eax
push eax
push eax
lea edx, [ebp - 0x1c]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x40198d
pop ebp
ret 0x10
Function at 0x40c838
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x419428]
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.00407077
mov dword [ebp - 0x14], eax
cmp dword [0x8144b4], esi
jne 0x40c92b
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x40c8b8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x40ca0b
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x40ca0b
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40ca0b
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x8144b4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x8144b8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x8144bc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x8144c4], eax
test eax, eax
je 0x40c928
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x8144c0], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x40c950
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x40c943
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x40c965
push 4
pop eax
jmp 0x40ca0d
cmp dword [ebp - 0x14], esi
je 0x40c965
push dword [0x8144b4]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x40c94a
mov eax, dword [0x8144c0]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x40c9c3
cmp dword [0x8144c4], edi
je 0x40c9c3
push eax
call ebx
push dword [0x8144c4]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x40c9c3
test eax, eax
je 0x40c9c3
call ecx
test eax, eax
je 0x40c9b8
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 0x40c9b8
test byte [ebp - 8], 1
jne 0x40c9c3
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x40c9f3
mov eax, dword [0x8144b8]
cmp eax, edi
je 0x40c9f0
push eax
call ebx
test eax, eax
je 0x40c9f0
call eax
mov esi, eax
test esi, esi
je 0x40c9f0
mov eax, dword [0x8144bc]
cmp eax, edi
je 0x40c9f0
push eax
call ebx
test eax, eax
je 0x40c9f0
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x8144b4]
call ebx
test eax, eax
je 0x40ca0b
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x40ca0d
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00403f8b
mov esp, ebp
pop ebp
ret
Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
nop
nop
mov ecx, 0x20402e5b
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x43304e
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
nop
nop
jne 0x433024
nop
mov eax, section..data
nop
mov ebx, 0x4304d8
mov ecx, 0x25cd4d1f
nop
nop
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x43306c
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x401f10
Capabilities:
Get disk information
Inspect load icon resource
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x148
push ebx
push esi
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0xc]
call fcn.00401000
lea ecx, [esp + 0x50]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
push edx
call fcn.004012b0
test eax, eax
je 0x402021
lea eax, [esp + 0x50]
push 0x404030
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x402084
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x10]
call fcn.00401290
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
sub eax, 8
push 0
push eax
push esi
call edi
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 1
lea edx, [esp + 0x24]
push 8
push edx
call ebx
mov eax, dword [esp + 0x2c]
push 0
push eax
push esi
call edi
push esi
push 1
lea ecx, [esp + 0x48]
push 0x38
push ecx
call ebx
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
mov eax, dword [esp + 0x10]
push edx
push eax
jne 0x401ffe
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401800
jmp 0x402084
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401a90
jmp 0x402084
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov edi, eax
mov esi, 1
xor ebx, ebx
test edi, esi
je 0x40206a
mov dl, bl
lea ecx, [esp + 0x10]
add dl, 0x41
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x40412c
lea ecx, [esp + 0x14]
call fcn.004020e2
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x10]
push eax
push 0
call fcn.00401cf0
add esi, esi
inc ebx
cmp ebx, 0x1a
jl 0x402039
lea ecx, [esp + 0xc]
call fcn.00401040
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
call fcn.00401030
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10

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

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..rdata
mov ebx, 0x407ef8
nop
mov ecx, 0x2306817
nop
nop
nop
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x42e04e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x42e024
nop
nop
mov eax, section._RDATA
mov ebx, 0x42cd70
nop
nop
mov ecx, 0x1b826d09
nop
test eax, eax
nop
nop
nop
nop
je 0x42e084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
add eax, 4
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
jne 0x42e06c
nop
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x1002aadf
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x1002aaee
pop dword [ebp - 0x50]
mov eax, 0xedb76f3b
sub eax, 0xddb4c44d
sub dword [ebp - 0x50], eax
mov dword [ebp - 0x60], 0x7cba4f95
add dword [ebp - 0x60], 0xd197f5b6
mov dword [ebp - 0x5c], 0xff3db132
sub dword [ebp - 0x5c], 0xcd0a64ed
mov dword [ebp - 0x58], 0x866e783a
add dword [ebp - 0x58], 0xc5ddcbf4
mov dword [ebp - 0x54], 0x7a7deed3
sub dword [ebp - 0x54], 0x7a7deed3
lea eax, [ebp - 0x60]
push eax
mov eax, 0xdf814580
add eax, 0x30817ab8
add eax, dword [ebp - 0x50]
call dword [eax]
mov dword [ebp - 0x60], 0x3e504a79
add dword [ebp - 0x60], 0x36221edd
mov dword [ebp - 0x5c], 0x3f0f345d
add dword [ebp - 0x5c], 0x25d2d18
mov dword [ebp - 0x58], 0xa3b6e669
add dword [ebp - 0x58], 0xbfb88603
mov dword [ebp - 0x54], 0x51134102
add dword [ebp - 0x54], 0xaeecbefe
lea ebx, [ebp - 0x60]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x50]
call dword [eax]
push 0x40
push 0x1000
push 0x398f4
push 0
call eax
mov ecx, 0xccb059b4
sub ecx, 0xccb00556
xor edx, edx
add edx, eax
mov edi, 0x4b3417b1
sub edi, 0x3b3081b1
add edi, dword [ebp - 0x50]
mov esi, 0x933827b5
sub dword [ebp - 8], 0x32c27793
mov ebx, dword [edi]
xor dword [ebp - 0x18], edx
sub ebx, esi
sub dword [ebp - 0x3c], 0x6bec6c9e
mov dword [edx], ebx
add edx, 0x402f50d5
sub edx, 0x402f50d1
add edi, 4
loop 0x1002ac07
add eax, 0x1444b
xor ebx, ebx
add ebx, eax
add eax, 5
mov ecx, 0xb555683c
add ecx, 0x5aaa97c4
add ecx, dword [ebp - 0x50]
call ebx
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 0x409220
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x424820
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x594
push ebx
push esi
push edi
sub esp, 0xc
lea eax, [ebp + 8]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 4], 1
call fcn.00414560
lea ecx, [ebp - 0xa0]
push ecx
call fcn.00408a50
add esp, 0x10
push 0x5f5e0ff
mov esi, eax
mov ecx, 0xf
lea edi, [ebp - 0x64]
push 0
rep movsd dword es:[edi], dword [esi]
call dword [0x648164]
push eax
call dword [0x6480fc]
xor edi, edi
push edi
push edi
push edi
push edi
lea ecx, [ebp + 0x14]
mov ebx, eax
mov dword [ebp - 0x14], 1
call fcn.004147c0
push eax
call dword [0x648060]
mov edx, dword [0x637338]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x60]
push edx
push eax
xor esi, esi
call dword [0x64813c]
test eax, eax
jne 0x4092c3
lea esi, [edi + 1]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x409428
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x54]
push 0
push 0
push 3
push 0
push 0
push ecx
push edx
push eax
call dword [0x648160]
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x40941e
mov edx, dword [ebp - 0x38]
mov eax, esi
neg eax
sbb eax, eax
push 0
and eax, 0x800000
add eax, 0x400100
push eax
mov eax, dword [0x637188]
push 0
push 0
push eax
push edx
push 0x42ddc0
push ecx
call dword [0x648194]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x409414
test esi, esi
je 0x409349
or dword [ebp - 0x18], 0x10300
push 4
lea ecx, [ebp - 0x18]
push ecx
push 0x1f
push eax
call dword [0x647f68]
mov eax, dword [ebp - 0x10]
push 0
push 0
push 0
push 0
push eax
call dword [0x648128]
mov ecx, dword [ebp - 0x10]
push 0
lea edx, [ebp - 0x28]
push edx
mov esi, eax
lea eax, [ebp - 0x1a0]
push eax
push 0x13
push ecx
mov dword [ebp - 0x28], 0x100
call dword [0x6481ac]
test eax, eax
jne 0x4093b1
lea ecx, [ebp + 8]
xor esi, esi
mov byte [ebp - 4], 0
call fcn.004145a0
lea ecx, [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.004145a0
mov eax, dword [ebp - 0x24]
mov edx, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x1a0]
push edx
call fcn.00415a50
add esp, 4
cmp eax, 0xc8
jne 0x40937e
test esi, esi
je 0x409411
cmp dword [ebp - 0x14], edi
jbe 0x409411
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push eax
push 0x400
lea ecx, [ebp - 0x5a0]
push ecx
push edx
call dword [0x648088]
xor esi, esi
cmp dword [ebp - 0x14], esi
jbe 0x409411
push 1
lea eax, [ebp + esi - 0x5a0]
push eax
lea ecx, [edi + ebx]
push ecx
call fcn.00415ad0
mov eax, dword [ebp - 0x14]
inc esi
inc edi
cmp esi, eax
jb 0x4093f1
test eax, eax
jne 0x4093d0
mov eax, dword [ebp - 0x10]
push eax
call dword [0x64805c]
mov ecx, dword [ebp - 0x20]
push ecx
call dword [0x64805c]
mov eax, dword [ebp - 0x1c]
push eax
call dword [0x64805c]
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
call fcn.004145a0
lea ecx, [ebp + 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.004145a0
mov ecx, dword [ebp - 0xc]
mov edx, edi
pop edi
pop esi
mov eax, ebx
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40abf0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push 0x40
push 0
push esi
call dword [ebp + 8]
add esp, 0x10
test eax, eax
jne 0x40ac0a
mov eax, 1
pop ebp
ret
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x40acb8
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x40acb8
push edi
push ebx
push 0xf8
push eax
lea edi, [esi + 0x40]
push edi
call dword [ebp + 8]
add esp, 0x10
test eax, eax
jne 0x40ac41
mov eax, 1
pop edi
pop ebp
ret
cmp dword [edi], 0x4550
jne 0x40acb0
mov ecx, 0x10b
cmp word [esi + 0x58], cx
jne 0x40acb0
movzx eax, word [esi + 0x46]
test ax, ax
je 0x40acb0
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
add eax, eax
push eax
mov dword [esi + 0x140], eax
call fcn.00415b10
add esp, 4
mov dword [esi + 0x138], eax
test eax, eax
jne 0x40ac87
mov eax, 3
pop edi
pop ebp
ret
movzx edx, word [esi + 0x54]
mov ecx, dword [esi + 0x3c]
lea ecx, [edx + ecx + 0x18]
mov edx, dword [esi + 0x140]
push ebx
push edx
push ecx
push eax
mov dword [esi + 0x13c], ecx
call dword [ebp + 8]
add esp, 0x10
neg eax
sbb eax, eax
inc eax
pop edi
pop ebp
ret
mov eax, 2
pop edi
pop ebp
ret
mov eax, 2
pop ebp
ret

Function at 0x40b3b0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x40b3ec
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ecx], 0x4550
jne 0x40b3ec
mov edx, 0x10b
cmp word [eax + ecx + 0x18], dx
jne 0x40b3ec
mov edx, dword [ebp + 0xc]
mov eax, dword [eax + ecx + 0x78]
push edx
push ecx
push eax
call fcn.0040b2f0
add esp, 0xc
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x64fc30
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x64fd3c
test eax, eax
je 0x64fd3c
push esi
push edi
mov ecx, 0x10
mov esi, 0x66aff0
lea edi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
add esi, eax
mov dword [ebp - 8], esi
xor esi, esi
mov dword [ebp - 4], 0
mov ecx, eax
test edx, edx
jbe 0x64fd23
lea edi, [eax + 4]
jmp 0x64fc87
mov ebx, dword [ebp + 8]
movzx eax, byte [esi + ebx]
inc esi
shl eax, 0x10
cmp esi, edx
jne 0x64fc9c
mov dword [ebp - 4], 2
jmp 0x64fcbd
movzx ebx, byte [esi + ebx]
shl ebx, 8
inc esi
or eax, ebx
cmp esi, edx
jne 0x64fcb3
mov dword [ebp - 4], 1
jmp 0x64fcbd
mov edx, dword [ebp + 8]
movzx edx, byte [esi + edx]
or eax, edx
inc esi
mov edx, eax
and edx, 0x3f
cmp edi, dword [ebp - 8]
ja 0x64fd33
mov ebx, eax
shr ebx, 0x12
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
mov byte [ecx], bl
mov ebx, eax
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
inc ecx
inc edi
mov byte [ecx], bl
mov ebx, dword [ebp - 4]
inc ecx
inc edi
cmp ebx, 1
jbe 0x64fcf6
mov byte [ecx], 0x3d
jmp 0x64fd02
shr eax, 6
and eax, 0x3f
mov al, byte [ebp + eax - 0x4c]
mov byte [ecx], al
inc ecx
inc edi
test ebx, ebx
jbe 0x64fd0d
mov byte [ecx], 0x3d
jmp 0x64fd13
mov dl, byte [ebp + edx - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp + 0xc]
inc ecx
inc edi
cmp esi, edx
jb 0x64fc84
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov eax, dword [ebp + 0x14]
pop edi
pop esi
mov dword [eax], ecx
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x64fc56
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x64fd3c
test eax, eax
je 0x64fd3c
push esi
push edi
mov ecx, 0x10
mov esi, 0x66aff0
lea edi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
add esi, eax
mov dword [ebp - 8], esi
xor esi, esi
mov dword [ebp - 4], 0
mov ecx, eax
test edx, edx
jbe 0x64fd23
lea edi, [eax + 4]
jmp 0x64fc87
mov ebx, dword [ebp + 8]
movzx eax, byte [esi + ebx]
inc esi
shl eax, 0x10
cmp esi, edx
jne 0x64fc9c
mov dword [ebp - 4], 2
jmp 0x64fcbd
movzx ebx, byte [esi + ebx]
shl ebx, 8
inc esi
or eax, ebx
cmp esi, edx
jne 0x64fcb3
mov dword [ebp - 4], 1
jmp 0x64fcbd
mov edx, dword [ebp + 8]
movzx edx, byte [esi + edx]
or eax, edx
inc esi
mov edx, eax
and edx, 0x3f
cmp edi, dword [ebp - 8]
ja 0x64fd33
mov ebx, eax
shr ebx, 0x12
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
mov byte [ecx], bl
mov ebx, eax
shr ebx, 0xc
and ebx, 0x3f
movzx ebx, byte [ebp + ebx - 0x4c]
inc ecx
inc edi
mov byte [ecx], bl
mov ebx, dword [ebp - 4]
inc ecx
inc edi
cmp ebx, 1
jbe 0x64fcf6
mov byte [ecx], 0x3d
jmp 0x64fd02
shr eax, 6
and eax, 0x3f
mov al, byte [ebp + eax - 0x4c]
mov byte [ecx], al
inc ecx
inc edi
test ebx, ebx
jbe 0x64fd0d
mov byte [ecx], 0x3d
jmp 0x64fd13
mov dl, byte [ebp + edx - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp + 0xc]
inc ecx
inc edi
cmp esi, edx
jb 0x64fc84
mov eax, dword [ebp + 0x10]
sub ecx, eax
mov eax, dword [ebp + 0x14]
pop edi
pop esi
mov dword [eax], ecx
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409bde
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov edx, eax
push esi
mov esi, dword [ebp + 8]
and ecx, 0xfffffffc
jbe 0x409c22
rol eax, 5
xor eax, dword [edx + esi]
add edx, 4
imul eax, eax, 0x9e3779b9
rol eax, 5
xor eax, 4
imul eax, eax, 0x9e3779b9
cmp edx, ecx
jb 0x409bf1
jmp 0x409c22
movsx ecx, byte [edx + esi]
rol eax, 5
xor eax, ecx
imul eax, eax, 0x9e3779b9
inc edx
cmp edx, dword [ebp + 0xc]
jb 0x409c12
pop esi
pop ebp
ret

Function at 0x40a9bc
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 1
lea esi, [ebx - 1]
push 0x2000
not esi
push ebx
and esi, 0xf0deafff
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov edi, eax
cmp edi, esi
jne 0x40a9f1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp esi, dword [ebp - 0x18]
jb 0x40aa1b
lea eax, [esi + ebx]
cmp eax, dword [ebp - 0x18]
jb 0x40aa1b
test edi, edi
je 0x40a9e8
push 0x8000
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x40a9e8
test edi, edi
je 0x40aa23
mov eax, edi
jmp 0x40a9ea
push 1
push 0x2000
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
test eax, eax
jne 0x40a9ea
mov esi, 0xc3
push esi
push str.c:_builds_moz2_slave_m_in_w32_d_0000000000000000000_build_src_mfbt_Poison.cpp
push str.no_usable_poison_region_identified
call fcn.0040de47
add esp, 0xc
int3