joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100071d0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14
test byte [0x10025858], 8
jne 0x10007328
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov ebx, dword [sym.imp.gdi32.dll_GetRegionData]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x1000735a
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], edi
mov dword [esp], eax
call ebx
mov eax, dword [esi + 8]
sub esp, 0xc
test eax, eax
jne 0x10007288
mov dword [esp + 8], esi
mov ebx, 1
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
add eax, eax
lea ebx, [esi + 0x20]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], ebx
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_LPtoDP]
mov eax, dword [ebp + 8]
sub esp, 0xc
mov dword [esp], eax
call sym._PSDRV_SetClip
mov eax, dword [esi + 8]
test eax, eax
je 0x100072f4
xor edi, edi
lea esi, [esi]
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
inc edi
add ebx, 0x10
mov edx, dword [ebx - 0x10]
sub eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [ebx - 8]
mov dword [esp + 8], ecx
sub eax, edx
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteRectangle
cmp dword [esi + 8], edi
ja 0x100072c0
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._PSDRV_Brush
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteNewPath
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_ResetClip
jmp 0x10007251
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [esp + 0xc], str.hdc_p_n
mov dword [esp + 8], str.PSDRV_PaintRgn
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x10025858
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_11
jmp 0x100071e6
xor ebx, ebx
test byte [0x10025858], 2
je 0x1000727a
mov dword [esp + 0xc], str.Cant_allocate_buffer_n
mov dword [esp + 8], str.PSDRV_PaintRgn
mov dword [esp + 4], 0x10025858
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_11
jmp 0x1000727a
Function at 0x1000a600
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18
mov esi, dword [ebp + 8]
test byte [0x10025858], 8
jne 0x1000a7dd
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1000a80c
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
xor edi, edi
lea edx, [eax + edx*4]
nop
add edi, dword [eax]
add eax, 4
cmp eax, edx
jne 0x1000a630
lea ebx, [edi*8]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x14], eax
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x1000a815
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov ebx, ecx
mov dword [esp + 4], eax
call sym._memcpy
mov dword [esp + 8], edi
mov edi, ebx
mov dword [esp + 4], ebx
mov eax, dword [esi]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_LPtoDP]
sub esp, 0xc
mov dword [esp + 8], 0xd
mov dword [esp + 4], str._PolyPolygon_n
mov dword [esp], esi
call sym._PSDRV_WriteSpool
mov dword [esp], esi
call sym._PSDRV_SetPen
mov dword [esp], esi
call sym._PSDRV_SetClip
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], 0
mov eax, dword [ebp + 0x10]
test edx, edx
je 0x1000a74d
mov dword [ebp + 8], esi
mov ebx, eax
lea esi, [esi]
mov eax, dword [edi + 4]
add edi, 8
mov dword [esp + 8], eax
mov eax, dword [edi - 8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteMoveTo
cmp dword [ebx], 1
jle 0x1000a731
mov esi, 1
lea esi, cs:[esi]
nop
mov eax, dword [edi + 4]
inc esi
add edi, 8
mov dword [esp + 8], eax
mov eax, dword [edi - 8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteLineTo
cmp dword [ebx], esi
jg 0x1000a710
mov eax, dword [ebp + 8]
add ebx, 4
mov dword [esp], eax
call sym._PSDRV_WriteClosePath
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp dword [ebp + 0x14], eax
jne 0x1000a6e0
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x14]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esi]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetPolyFillMode]
sub esp, 4
cmp eax, 1
je 0x1000a7cb
mov dword [esp + 4], 0
mov dword [esp], esi
call sym._PSDRV_Brush
mov eax, dword [esi + 0x1138]
test eax, eax
jne 0x1000a7af
cmp dword [esi + 0x74], 5
mov dword [esp], esi
je 0x1000a7c4
call sym._PSDRV_WriteStroke
mov dword [esp], esi
call sym._PSDRV_ResetClip
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._PSDRV_WriteNewPath
jmp 0x1000a7af
mov dword [esp + 4], 1
mov dword [esp], esi
call sym._PSDRV_Brush
jmp 0x1000a797
mov dword [esp + 0xc], 0x1002b865
mov dword [esp + 8], str.PSDRV_PolyPolygon
mov dword [esp + 4], 0x10025858
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_11
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x1000a624
xor ebx, ebx
xor edi, edi
jmp 0x1000a640
xor eax, eax
jmp 0x1000a7bc
Function at 0x1000a820
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x18
mov esi, dword [ebp + 0x10]
test byte [0x10025858], 8
jne 0x1000a9c9
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1000a9f8
mov ecx, dword [ebp + 0x14]
mov eax, esi
xor edi, edi
lea edx, [esi + ecx*4]
nop
add edi, dword [eax]
add eax, 4
cmp edx, eax
jne 0x1000a850
lea ebx, [edi*8]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x14], eax
sub esp, 0xc
mov ecx, eax
test eax, eax
je 0x1000aa01
mov eax, dword [ebp + 0xc]
mov dword [esp], ecx
mov dword [esp + 8], ebx
mov ebx, ecx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [ebp + 8]
mov dword [esp + 8], edi
mov edi, ebx
mov dword [esp + 4], ebx
mov ebx, esi
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_LPtoDP]
mov eax, dword [ebp + 8]
sub esp, 0xc
mov dword [esp + 8], 0xe
mov dword [esp + 4], str._PolyPolyline_n
mov dword [esp], eax
call sym._PSDRV_WriteSpool
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_SetPen
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_SetClip
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x10], 0
test edx, edx
je 0x1000a95f
lea esi, [esi]
mov eax, dword [edi + 4]
add edi, 8
mov dword [esp + 8], eax
mov eax, dword [edi - 8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteMoveTo
cmp dword [ebx], 1
jbe 0x1000a951
mov esi, 1
nop
mov eax, dword [edi + 4]
inc esi
add edi, 8
mov dword [esp + 8], eax
mov eax, dword [edi - 8]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteLineTo
cmp dword [ebx], esi
ja 0x1000a930
inc dword [ebp - 0x10]
add ebx, 4
mov eax, dword [ebp - 0x10]
cmp dword [ebp + 0x14], eax
jne 0x1000a908
mov ecx, dword [ebp - 0x14]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp + 8]
sub esp, 0xc
mov eax, dword [eax + 0x1138]
test eax, eax
jne 0x1000a9a7
mov eax, dword [ebp + 8]
cmp dword [eax + 0x74], 5
je 0x1000a9bf
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteStroke
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_ResetClip
mov eax, 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], eax
call sym._PSDRV_WriteNewPath
jmp 0x1000a9a7
mov dword [esp + 0xc], 0x1002b865
mov dword [esp + 8], str.PSDRV_PolyPolyline
mov dword [esp + 4], 0x10025858
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_11
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x1000a844
xor ebx, ebx
xor edi, edi
jmp 0x1000a860
xor eax, eax
jmp 0x1000a9b7
Function at 0x1000c550
Capabilities:
Get process heap flags

Disassembly:
push ebp
xor ecx, ecx
mov edx, 1
mov ebp, esp
mov eax, dword [ebp + 8]
pop ebp
jmp sym._paint_path

Function at 0x1000c570
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
push ebx
sub esp, 0x30
cmp dword [eax + 4], 1
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x28], 0
je 0x1000c6c8
mov eax, dword [ebp - 0x1c]
mov dword [esp], edi
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
call sym._PSDRV_WriteMoveTo
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1000c6a8
dec ebx
mov dword [ebp - 0x20], ebx
je 0x1000c659
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], 0
xor esi, esi
xor ebx, ebx
and eax, 0x2000
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
jmp 0x1000c60f
mov edx, dword [eax + ebx*8 + 4]
add dword [ebp - 0x14], edx
add esi, dword [eax + ebx*8]
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x14]
mov dword [esp], edi
inc ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x18]
add eax, esi
mov dword [esp + 4], eax
call sym._PSDRV_WriteMoveTo
add dword [ebp - 0x10], 2
cmp ebx, dword [ebp - 0x20]
je 0x1000c650
mov eax, dword [ebp - 0x10]
cmp dword [edi + 4], 1
mov dword [esp + 8], 1
mov dword [esp], edi
mov dword [esp + 4], eax
je 0x1000c640
call sym._PSDRV_WriteBuiltinGlyphShow
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x14]
test edx, edx
jne 0x1000c5e0
add esi, dword [eax + ebx*4]
jmp 0x1000c5ea
call sym._PSDRV_WriteDownloadGlyphShow
jmp 0x1000c62c
mov eax, dword [ebp + 0xc]
lea eax, [eax + ebx*2]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0xc]
cmp dword [edi + 4], 1
mov dword [esp + 8], 1
mov dword [esp], edi
mov dword [esp + 4], eax
je 0x1000c6bc
call sym._PSDRV_WriteBuiltinGlyphShow
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0xc]
cmp dword [edi + 4], 1
mov dword [esp + 8], ebx
mov dword [esp], edi
mov dword [esp + 4], eax
jne 0x1000c671
call sym._PSDRV_WriteDownloadGlyphShow
jmp 0x1000c676
test byte [ebp + 8], 0x10
jne 0x1000c595
lea edx, [ebx + ebx]
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov dword [ebp - 0x28], eax
mov esi, eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp + 8], ebx
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetGlyphIndicesW]
mov dword [ebp + 0xc], esi
sub esp, 0x14
jmp 0x1000c595
Function at 0x1000c9b0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov eax, dword fs:[0x18]
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14
mov esi, dword [ebp + 0x10]
mov dword [esp + 4], 0
lea edx, [esi + esi*2 + 1]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [ebp - 0x14], eax
sub esp, 0xc
test esi, esi
je 0x1000ca4b
mov edi, eax
lea eax, [esi - 1]
mov dword [ebp + 0x10], esi
xor ebx, ebx
mov esi, edi
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 0x10]
jmp 0x1000ca07
inc ebx
mov esi, ecx
cmp edi, ebx
je 0x1000ca44
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + ebx]
mov dword [esp + 4], 0x1002d093
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._sprintf
mov eax, ebx
lea ecx, [esi + 2]
and eax, 0xf
cmp eax, 0xf
je 0x1000ca34
cmp dword [ebp - 0x10], ebx
jne 0x1000ca00
mov eax, 0xa
inc ebx
add esi, 3
mov word [ecx], ax
cmp edi, ebx
jne 0x1000ca07
mov edi, esi
sub edi, dword [ebp - 0x14]
mov esi, edi
mov edi, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sym._PSDRV_WriteSpool
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 1
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x1000d380
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x1c
mov dword [ebp - 0x18], edx
mov edi, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [ebp - 0x10], ecx
mov dword [esp], edx
call edi
mov ebx, eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call edi
mov dword [esp + 4], 0
lea eax, [ebx + eax + 0x20]
mov ecx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x14], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x18]
mov ebx, eax
mov eax, dword [ebp - 0x10]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.mark__n____BeginFeature:__s__s_n
call sym._sprintf
mov dword [esp], ebx
call edi
mov dword [esp + 4], ebx
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._write_spool
mov eax, dword [ebp + 8]
mov dword [esp], eax
call edi
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
call sym._write_spool
mov dword [esp], esi
mov dword [esp + 8], 0x24
mov dword [esp + 4], str._n__EndFeature_n_stopped_cleartomark_n
call sym._write_spool
mov ecx, dword [ebp - 0x14]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x1000d4a0
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov eax, dword fs:[0x18]
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10
mov esi, dword [ebp + 8]
mov dword [esp + 8], 0x87
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
test eax, eax
je 0x1000d586
mov ebx, eax
mov eax, dword [esi + 0x120]
mov dword [esp + 4], str.____Trailer_n____Pages:__d_n____EOF_n
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym._sprintf
mov edi, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
call edi
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
call sym._write_spool
mov dword [esp], ebx
mov esi, eax
call edi
mov edi, 1
cmp esi, eax
je 0x1000d52e
xor edi, edi
test byte [0x100258a8], 4
jne 0x1000d560
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0xc], str.WriteSpool_error_n
mov dword [esp + 8], str.PSDRV_WriteFooter
mov dword [esp + 4], 0x100258a8
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_16
jmp 0x1000d52e
xor edi, edi
test byte [0x100258a8], 4
je 0x1000d552
mov dword [esp + 0xc], str.HeapAlloc_failed_n
mov dword [esp + 8], str.PSDRV_WriteFooter
mov dword [esp + 4], 0x100258a8
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_16
jmp 0x1000d552
Function at 0x1000e4f0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ecx, dword fs:[0x18]
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x20
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov dword [esp + 4], 0
shl eax, 3
sub eax, dword [ebp + 0x10]
inc eax
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
sub esp, 0xc
test edx, edx
jle 0x1000e5f0
mov edi, eax
mov eax, dword [ebp + 0x10]
xor ebx, ebx
dec eax
mov dword [ebp - 0x10], eax
lea esi, [esi]
mov ecx, ebx
mov eax, 0xa
and ecx, 7
cmp ecx, 7
je 0x1000e567
cmp dword [ebp - 0x10], ebx
mov eax, 0x20
mov edx, 0xa
cmove eax, edx
mov dword [esp + 0x14], eax
movzx eax, byte [esi + ebx*4]
mov dword [esp + 0x10], eax
movzx eax, byte [esi + ebx*4 + 1]
mov dword [esp + 0xc], eax
movzx eax, byte [esi + ebx*4 + 2]
inc ebx
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], str._02x_02x_02x_c
call sym._sprintf
add edi, eax
cmp dword [ebp + 0x10], ebx
jne 0x1000e548
sub edi, dword [ebp - 0x14]
mov dword [esp + 8], edi
mov eax, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
mov dword [esp], eax
mov dword [esp + 4], edi
call sym._PSDRV_WriteSpool
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, 1
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor edi, edi
jmp 0x1000e5a0
Function at 0x10013450
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov edi, dword fs:[0x18]
sub esp, 0x28
mov esi, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov ebx, eax
mov eax, dword [ebp + 0x14]
sub esp, 0xc
mov dword [ebx], pe_nt_image_headers32
mov dword [ebx + 8], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 8
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov ecx, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0xc]
sub esp, 0xc
mov dword [ebp - 0x10], ecx
mov dword [esp], eax
call ecx
mov dword [esp + 4], 0
add eax, 0x2bf
mov dword [esp + 8], eax
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call esi
mov edx, dword [ebp + 0x10]
sub esp, 0xc
mov esi, eax
mov eax, dword [ebx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x18], ecx
mov edx, dword [edx]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 4], str.25_dict_begin_n__FontName___s_def_n__Encoding_256_array_0_1_2551_index_exch__.notdef_put_for_def_n__PaintType_0_def_n__FontMatrix__1__ld_div_0_0_1__ld_div_0_0__def_n__FontBBox___ld__ld__ld__ld__def_n__FontType_1_def_n__Private_7_dict_begin_n___RD_string_currentfile_exch_readhexstring_pop_def_n___ND_def_def_n___NP_put_def_n___MinFeature_16_16_def_n___BlueValues____def_n___password_5839_def_n___lenIV__1_def_n_currentdict_end_def_n_currentdict_dup__Private_get_begin_n___CharStrings_256_dict_begin_n____.notdef_4_RD_8b8b0d0e_ND_n__currentdict_end_put_n_end_ncurrentdict_end_dup__FontName_get_exch_definefont_pop_n
call sym._sprintf_1
mov ecx, dword [ebp - 0x10]
mov dword [esp], esi
call ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._PSDRV_WriteSpool
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [edi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret

Function at 0x10013570
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, dword fs:[0x18]
sub esp, 0xc
mov edi, dword [ebp + 8]
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [edi + 4]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
Function at 0x100143b0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov esi, dword fs:[0x18]
sub esp, 0xc
mov edi, dword [ebp + 8]
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [edi]
test edx, edx
je 0x100143f6
nop
mov eax, dword [edi + 0xc]
mov dword [esp + 4], 0
add edi, 0x14
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [edi]
sub esp, 0xc
test eax, eax
jne 0x100143d0
mov eax, dword [ebp + 8]
mov esi, dword fs:[0x18]
mov eax, dword [eax + 0xf4]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 8]
sub esp, 0xc
mov eax, dword [eax + 0xfc]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
mov eax, dword [ebp + 8]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call ebx
sub esp, 0xc
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret