joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47f800
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov ebp, dword [esp + 0x1c]
push 0
push 0
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
jne 0x47f8b6
mov ebx, dword [esp + 0x20]
mov eax, 5
add dword [esp + 0x14], eax
add dword [esp + 0x10], eax
test ebx, ebx
jne 0x47f890
mov edx, dword [esp + 0x14]
push edx
call fcn.005169c0
add esp, 4
test eax, eax
mov dword [edi], eax
je 0x47f8c5
mov ecx, dword [esp + 0x14]
push ecx
push ebx
push eax
call fcn.00516810
mov edx, dword [esp + 0x1c]
push edx
call fcn.005169c0
add esp, 0x10
test eax, eax
mov dword [esi], eax
je 0x47f8b6
mov ecx, dword [esp + 0x10]
push ecx
push ebx
push eax
call fcn.00516810
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x10]
push edx
push eax
mov eax, dword [edi]
push ecx
push 0
lea edx, [esp + 0x24]
push edx
push eax
push ebx
push ebp
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
cmp eax, 0x103
jne 0x47f8ea
mov eax, dword [edi]
test eax, eax
je 0x47f8c5
push eax
call fcn.005168e3
add esp, 4
mov eax, dword [esi]
test eax, eax
je 0x47f8d4
push eax
call fcn.005168e3
add esp, 4
mov dword [edi], 0
pop edi
mov dword [esi], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret

Function at 0x47f930
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 8]
mov eax, edx
push esi
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x47f940
sub eax, esi
add eax, 1
push eax
mov eax, dword [esp + 0xc]
push edx
push 1
push 0
push 0x557a34
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop esi
ret

Function at 0x47f970
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x114
mov eax, dword [0x5a8cf0]
xor eax, esp
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x118]
push esi
mov esi, dword [esp + 0x120]
push edi
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x10]
push ecx
xor edi, edi
push edi
push 0x557a34
push eax
mov dword [esp + 0x24], 0x105
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x47f9f8
cmp dword [esp + 8], 1
jne 0x47f9f8
lea eax, [esp + 0x10]
mov edx, esi
mov ecx, eax
sub edx, ecx
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x47f9d0
pop edi
mov eax, 1
pop esi
mov ecx, dword [esp + 0x110]
xor ecx, esp
call fcn.0051674d
add esp, 0x114
ret
mov ecx, dword [esp + 0x118]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.0051674d
add esp, 0x114
ret

Function at 0x47fa20
Capabilities:
Set registry value

Disassembly:
mov edx, dword [esp + 0xc]
mov eax, edx
push esi
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x47fa30
mov ecx, dword [esp + 8]
sub eax, esi
add eax, 1
push eax
mov eax, dword [esp + 0x10]
push edx
push 1
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
pop esi
ret
Function at 0x4834a0
Capabilities:
Write file on windows

Disassembly:
push ecx
push edi
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4834ca
mov eax, 0xffffffce
pop edi
pop ecx
ret
mov ecx, dword [esp + 0xc]
push esi
push ecx
push 0
mov dword [esp + 0x10], 0
call fcn.004cfc90
mov esi, eax
add esp, 8
test esi, esi
je 0x483514
push ebx
push esi
call fcn.004cf9f0
push esi
mov ebx, eax
call fcn.004cf9d0
add esp, 8
push 0
lea edx, [esp + 0x10]
push edx
push eax
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call fcn.004cf770
add esp, 4
pop ebx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
xor eax, eax
pop edi
pop ecx
ret

Function at 0x483550
Capabilities:
Query environment variable

Disassembly:
mov eax, dword [esp + 4]
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
mov edi, dword [esp + 0x18]
mov esi, dword [edi]
push esi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jle 0x483586
cmp eax, esi
lea ecx, [eax + 1]
jl 0x483577
mov ecx, eax
mov dword [edi], ecx
xor ecx, ecx
cmp eax, esi
pop edi
setl cl
pop esi
mov al, cl
pop ebx
ret
cmp dword [edi], 0
jle 0x48358e
mov byte [ebx], 0
mov dword [edi], 1
pop edi
pop esi
xor al, al
pop ebx
ret

Function at 0x483810
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x50
push esi
push edi
mov edi, dword [esp + 0x5c]
mov eax, dword [edi + 0x40]
push eax
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x4838d9
xor eax, eax
lea ecx, [esp + 8]
mov dword [esp + 0x54], eax
push ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x30], 0x2c
mov dword [esp + 0x58], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
push 0x2c
lea edx, [esp + 0x30]
push edx
push esi
call sub.PSAPI.DLL_GetProcessMemoryInfo
test eax, eax
je 0x4838d9
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], 0
mov dword [edi + 8], ecx
mov dword [edi + 0xc], 0
pop edi
mov eax, 1
pop esi
add esp, 0x50
ret
pop edi
xor eax, eax
pop esi
add esp, 0x50
ret
Function at 0x483a60
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x104
mov eax, dword [0x5a8cf0]
xor eax, esp
mov dword [esp + 0x100], eax
push esi
mov esi, dword [esp + 0x110]
push edi
mov edi, dword [esp + 0x110]
push 0x100
lea eax, [esp + 0xc]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
jne 0x483acc
push esi
push str.Environment_variable__s_not_set_n
call fcn.0051873f
add eax, 0x40
push eax
call fcn.005185f0
add esp, 0xc
pop edi
mov eax, 0xffffffce
pop esi
mov ecx, dword [esp + 0x100]
xor ecx, esp
call fcn.0051674d
add esp, 0x104
ret
push edi
lea ecx, [esp + 0xc]
push str._I64d
push ecx
call fcn.00519378
add esp, 0xc
cmp eax, 1
je 0x483b1a
push eax
push 1
push esi
push str.Failed_to_scan_all_data_from_environment_variable__s__expected__d__got__d__n
call fcn.0051873f
add eax, 0x40
push eax
call fcn.005185f0
add esp, 0x14
pop edi
mov eax, 0xffffffce
pop esi
mov ecx, dword [esp + 0x100]
xor ecx, esp
call fcn.0051674d
add esp, 0x104
ret
mov ecx, dword [esp + 0x108]
pop edi
pop esi
xor ecx, esp
xor eax, eax
call fcn.0051674d
add esp, 0x104
ret
Function at 0x487940
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x53f8fe
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x5a8cf0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
xor edi, edi
mov dword [esi], edi
lea ecx, [esi + 8]
mov dword [esp + 0x18], edi
call fcn.00488940
lea ecx, [esi + 0xc]
mov byte [esp + 0x18], 1
call fcn.00488940
lea ecx, [esi + 0x10]
mov byte [esp + 0x18], 2
call fcn.00488940
mov dword [esi + 4], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], 1
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret
Function at 0x487f50
Capabilities:
Create thread

Disassembly:
push 0xffffffffffffffff
push 0x53fa14
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebp
push esi
push edi
mov eax, dword [0x5a8cf0]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov esi, ecx
xor ebp, ebp
cmp dword [esi + 0x34], ebp
jne 0x487f95
lea eax, [ebp + 1]
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x14
ret
cmp dword [esi], ebp
je 0x487fb4
call fcn.00487510
mov ebp, eax
mov eax, dword [esi]
test eax, eax
je 0x487fb4
mov dword [esi], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esi + 0x1c], 0
jne 0x487fd3
lea eax, [esi + 0x20]
push eax
push 0
push esi
push 0x487f30
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x488104
mov edx, dword [ecx]
mov eax, dword [edx + 0x208]
push esi
push 0x4879e0
push 0x3e8
mov edi, 1
push edi
call eax
test byte [0x5ac164], 1
jne 0x488034
or dword [0x5ac164], edi
push 0x3d7
push 0x5ac160
mov dword [esp + 0x28], 0
call fcn.00488dc0
push 0x54cb70
call fcn.00517bf0
add esp, 0xc
mov dword [esp + 0x20], 0xffffffff
test byte [0x5ac164], 2
jne 0x48806c
or dword [0x5ac164], 2
push 0x161
push 0x5ac15c
mov dword [esp + 0x28], edi
call fcn.00488dc0
push 0x54cb60
call fcn.00517bf0
add esp, 0xc
mov dword [esp + 0x20], 0xffffffff
lea ecx, [esi + 0x10]
call fcn.00488510
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x5ac160
call fcn.004886b0
lea ecx, [esp + 0x18]
push ecx
call fcn.00489080
add esp, 0xc
lea edi, [esi + 8]
push eax
mov ecx, edi
mov dword [esp + 0x24], 2
call fcn.00488590
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call fcn.004884e0
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edi
call fcn.004886b0
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1ec]
call eax
fldz
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1f4]
sub esp, 8
fstp qword [esp]
call eax
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x5ac15c
call fcn.004886b0
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1f0]
call eax
mov eax, ebp
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x14
ret
Function at 0x48a650
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x53fcf3
mov eax, dword fs:[0]
push eax
push ecx
push ebp
push esi
push edi
mov eax, dword [0x5a8cf0]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x10], esi
call fcn.00488230
lea edi, [esi + 8]
xor ebp, ebp
mov ecx, edi
mov dword [esp + 0x1c], ebp
mov dword [esi], vtable.Utilities::StringPoolEntry.0
call fcn.00453d50
mov dword [edi + 4], eax
mov byte [eax + 0x15], 1
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov dword [edi + 8], ebp
lea edi, [esi + 0x14]
mov ecx, edi
mov byte [esp + 0x1c], 1
call fcn.00453d50
mov dword [edi + 4], eax
mov byte [eax + 0x15], 1
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov dword [edi + 8], ebp
mov edi, dword [esp + 0x24]
mov eax, edi
mov dword [esi + 0x20], ebp
mov dword [esi + 0x28], ebp
mov dword [esi + 0x2c], ebp
mov dword [esi + 0x24], ebp
mov dword [esi + 0x30], ebp
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, bp
jne 0x48a6f2
sub eax, ecx
sar eax, 1
add eax, 1
push 2
push eax
call fcn.00517d9e
add esp, 8
mov dword [esi + 0x20], eax
mov ecx, edi
mov edx, eax
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
cmp ax, bp
jne 0x48a716
mov eax, esi
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
add esp, 0x10
ret 4

Function at 0x48b540
Capabilities:
Hide graphical window

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0x10]
test eax, eax
mov ecx, dword [esp + 8]
mov dword [esi + 0x2c], ecx
je 0x48b587
test ecx, ecx
je 0x48b56c
push 1
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x10]
pop esi
mov dword [esp + 4], eax
add al, 0xff
and eax, sym.imp.USER32.dll_UpdateWindow
test eax, eax
je 0x48b587
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esi]
mov eax, dword [edx + 0x138]
push 0
mov ecx, esi
call eax
pop esi
ret 4
Function at 0x48d990
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x53ff27
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x5a8cf0]
xor eax, esp
push eax
lea eax, [esp + 0x14]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x10], esi
call fcn.00488230
lea ebx, [esi + 8]
xor edi, edi
mov ecx, ebx
mov dword [esp + 0x1c], edi
call fcn.00495d50
mov dword [esi], vtable.MPPane.0
mov dword [ebx], vtable.MPPane.1.0
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
lea ebx, [esi + 0x58]
mov ecx, ebx
mov byte [esp + 0x1c], 2
call fcn.00488940
mov dword [esi + 0x80], edi
mov dword [esi + 0x7c], edi
mov word [esi + 0x7a], di
mov word [esi + 0x78], di
mov word [esi + 0x76], di
mov word [esi + 0x74], di
mov dword [esi + 0x70], edi
mov dword [esi + 0x6c], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], edi
mov ecx, esi
mov byte [esp + 0x1c], 4
call fcn.0048ce60
mov edi, dword [esp + 0x24]
movsx eax, word [edi + 4]
mov dword [esi + 0x14], eax
movsx edx, word [edi + 4]
movsx ecx, word [edi + 8]
add ecx, edx
mov dword [esi + 0x1c], ecx
movsx eax, word [edi + 6]
mov dword [esi + 0x18], eax
movsx edx, word [edi + 6]
movsx ecx, word [edi + 0xa]
add ecx, edx
mov dword [esi + 0x20], ecx
mov eax, dword [edi + 0xc]
mov dword [esi + 0x2c], eax
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x5c], ecx
mov edx, dword [edi + 0x14]
mov dword [esi + 0x60], edx
mov eax, dword [edi + 0x44]
mov dword [esi + 0x68], eax
mov ecx, dword [edi + 0x18]
mov dword [esi + 0x6c], ecx
mov edx, dword [edi + 0x1c]
mov dword [esi + 0x70], edx
mov eax, dword [edi + 0x20]
mov dword [esi + 0x74], eax
mov ecx, dword [edi + 0x24]
mov dword [esi + 0x78], ecx
mov edx, dword [edi + 0x28]
mov dword [esi + 0x7c], edx
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x80], eax
mov ecx, dword [edi + 0x30]
lea edx, [edi + 0x3c]
mov dword [esi + 0x40], ecx
push edx
mov ecx, ebx
call fcn.00488590
mov eax, dword [edi + 0x34]
mov dword [esi + 0x88], eax
mov eax, esi
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10
ret 4
Function at 0x496320
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esi + 4]
xor ebp, ebp
cmp ecx, ebp
push edi
mov dword [esp + 0x14], esi
je 0x49633e
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov edi, dword [esi + 8]
cmp edi, ebp
mov dword [esi + 4], ebp
je 0x496356
mov eax, dword [edi]
push eax
call sub.gdiplus.dll_GdipDeleteGraphics
push edi
call sub.gdiplus.dll_GdipFree
movzx ebx, word [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.TIFFIMAGE
push ebx
push ebp
mov dword [esi + 8], ebp
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_FindResourceW]
push eax
call ebp
mov esi, eax
test esi, esi
jne 0x496392
push 0x55ea58
push ebx
push eax
call edi
push eax
call ebp
mov esi, eax
test esi, esi
je 0x49644a
push esi
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x49644a
push esi
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push ebx
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x49644a
push ebp
push 2
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
cmp eax, ebx
je 0x49644a
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov esi, eax
cmp esi, ebx
je 0x49644a
push ebp
push edi
push esi
call fcn.00518f10
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
mov dword [esp + 0x1c], ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
jne 0x49644a
push 0x10
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
cmp esi, ebx
je 0x496435
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push eax
mov dword [esi], vtable.Gdiplus::Bitmap.0
mov dword [esp + 0x24], ebx
call sub.gdiplus.dll_GdipCreateBitmapFromStream
mov dword [esi + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], eax
jmp 0x496437
xor esi, esi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], esi
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4

Function at 0x497900
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.USER32.dll_GetGuiResources]
mov esi, eax
mov eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
lea eax, [esp + 4]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionWindows
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov eax, dword [esp + 4]
test eax, eax
je 0x497977
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0xc]
push edx
lea ecx, [esp + 0x18]
push ecx
push 0
push str.GDIProcessHandleQuota
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x49798b
mov eax, 0x2710
add eax, 0xffffff38
cmp esi, eax
setb al
pop esi
add esp, 0x10
ret
mov eax, dword [esp + 8]
add eax, 0xffffff38
cmp esi, eax
setb al
pop esi
add esp, 0x10
ret
Function at 0x498c70
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x53aa88
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x5a8cf0]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
push 0
push 2
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x17], 0
call fcn.00488680
push eax
lea ecx, [esp + 0x34]
call fcn.00488510
push eax
call fcn.004cf370
movzx eax, ax
add esp, 0x18
test ax, ax
jne 0x498d1b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
lea edx, [esp + 7]
push edx
push eax
push ecx
push 0
call fcn.00498bc0
add esp, 0x10
test ax, ax
jne 0x498d1b
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], 0xffffffff
call fcn.004884e0
xor eax, eax
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
add esp, 0x18
ret
lea ecx, [esp + 0x20]
mov dword [esp + 0x18], 0xffffffff
call fcn.004884e0
or eax, 0xffffffff
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
add esp, 0x18
ret
Function at 0x498d40
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
xor esi, esi
cmp edi, 0x4e20
jle 0x498dcc
mov eax, dword [0x5ac2d0]
movzx ecx, di
push str.XMLDATA
push ecx
mov ebx, eax
push eax
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebp, eax
test ebp, ebp
je 0x498e0a
push ebp
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edx, dword [esp + 0x1c]
push ebp
push edx
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test ebx, ebx
mov dword [esp + 0x1c], eax
je 0x498e0a
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
push str.kCFAllocatorDefault
mov ebp, eax
call fcn.004d0400
mov eax, dword [eax]
push esi
push eax
call fcn.004cf9b0
mov ecx, dword [esp + 0x28]
push ecx
mov esi, eax
push ebp
push esi
call fcn.004cfa50
add esp, 0x18
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x498e0a
mov edx, dword [esp + 0x20]
push edi
push edx
call fcn.004cf5d0
mov ebx, eax
push ebx
call fcn.004cdf40
push str.kCFAllocatorDefault
mov ebp, eax
call fcn.004d0400
mov eax, dword [eax]
push 0
push eax
call fcn.004cf9b0
mov ecx, dword [ebx]
push ebp
mov esi, eax
push ecx
push esi
call fcn.004cfa50
push ebx
call fcn.004cf5f0
add esp, 0x28
cmp edi, 0x4e20
jle 0x498e7d
mov ebp, dword [0x5ac2d0]
movzx edx, di
push str.XMLDATA
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x498ebb
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_LoadResource]
push ebx
push ebp
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
test edi, edi
mov ebp, eax
je 0x498ebb
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
push str.kCFAllocatorDefault
mov ebx, eax
call fcn.004d0400
mov eax, dword [eax]
push 0
push eax
call fcn.004cf9b0
push ebp
mov esi, eax
push ebx
push esi
call fcn.004cfa50
add esp, 0x18
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x498ebb
mov ecx, dword [esp + 0x20]
push edi
push ecx
call fcn.004cf5d0
mov edi, eax
push edi
call fcn.004cdf40
push str.kCFAllocatorDefault
mov ebx, eax
call fcn.004d0400
mov edx, dword [eax]
push 0
push edx
call fcn.004cf9b0
mov esi, eax
mov eax, dword [edi]
push ebx
push eax
push esi
call fcn.004cfa50
push edi
call fcn.004cf5f0
add esp, 0x28
push str.kCFAllocatorDefault
mov dword [esp + 0x14], 0
call fcn.004d0400
mov edx, dword [eax]
lea ecx, [esp + 0x14]
push ecx
push 2
push esi
push edx
call fcn.004cfc70
add esp, 0x14
test esi, esi
mov edi, eax
je 0x498eef
push esi
call fcn.004cf770
add esp, 4
lea ecx, [esp + 0x18]
call fcn.004884e0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret