Function at 0x10039da0
Capabilities:
Capture screenshot
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x100adfb0
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100e18d0]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xb8]
mov eax, dword [ebp + 0x4fc]
mov eax, dword [eax - 0xc]
xor ebx, ebx
cmp eax, ebx
je 0x1003a4ce
cmp dword [ebp + 0x4f8], ebx
je 0x1003a4ce
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x68], ebx
cmp esi, ebx
jne 0x10039e23
mov ecx, dword [ebp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call fcn.1005d8b3
mov dword [esp + 0xbc], eax
mov dword [esp + 0x68], 1
mov esi, eax
lea ecx, [esp + 0x48]
call fcn.1005d2c3
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x6c], vtable.CBitmap.0
mov byte [esp + 0xb0], 1
mov dl, byte [ebp + 0x500]
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
mov byte [esp + 0x32], dl
mov byte [esp + 0x33], bl
cmp esi, ebx
jne 0x10039e65
xor eax, eax
jmp 0x10039e68
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x4c]
call fcn.1005d8c7
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
sub ecx, dword [esp + 0xc0]
push eax
mov eax, dword [esi + 4]
push ecx
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x70]
call fcn.1005db99
mov eax, dword [esp + 0x70]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
cmp eax, ebx
je 0x10039ec1
mov ecx, dword [esp + 0x4c]
push eax
push ecx
call esi
lea eax, [ebp + 0x74]
cmp eax, ebx
je 0x10039ed7
mov eax, dword [eax + 4]
cmp eax, ebx
je 0x10039ed7
mov edx, dword [esp + 0x4c]
push eax
push edx
call esi
mov esi, dword [ebp + 0x544]
mov edx, dword [esp + 0xc0]
mov eax, dword [ebp + 0x548]
mov ecx, dword [ebp + 0x54c]
mov edi, dword [ebp + 0x550]
add edx, esi
mov esi, dword [esp + 0xc4]
add esi, eax
mov eax, dword [esp + 0xc8]
sub eax, ecx
mov ecx, dword [esp + 0xcc]
push 0xcc0020
push esi
sub ecx, edi
mov edi, dword [esp + 0xc4]
push edx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], esi
mov edi, dword [edi + 4]
push edi
sub ecx, esi
push ecx
sub eax, edx
push eax
mov eax, dword [esp + 0x64]
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
mov edi, ecx
sub edi, edx
mov edx, dword [ebp + 0x554]
mov dword [esp + 0x20], esi
sub esi, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebx
test dl, 2
je 0x10039fa7
mov edx, dword [ebp + 0x50c]
sub edx, dword [ebp + 0x504]
jmp 0x10039ffb
test dl, 4
je 0x10039fc0
mov eax, dword [ebp + 0x504]
sub eax, dword [ebp + 0x50c]
add eax, esi
mov dword [esp + 0x18], eax
jmp 0x10039fff
test dl, 0x20
je 0x10039fff
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x50c]
sub eax, dword [ebp + 0x504]
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0x60]
sar edx, 1
sub eax, edx
mov edx, dword [ebp + 0x50c]
sub edx, dword [ebp + 0x504]
mov dword [esp + 0x18], eax
add edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [ebp + 0x554]
test al, 1
je 0x1003a017
mov eax, dword [ebp + 0x510]
sub eax, dword [ebp + 0x508]
jmp 0x1003a061
test al, 8
je 0x1003a02f
mov edx, dword [ebp + 0x508]
sub edx, dword [ebp + 0x510]
add edx, edi
mov dword [esp + 0x1c], edx
jmp 0x1003a065
test al, 0x10
je 0x1003a065
mov eax, edi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp + 0x510]
sub eax, dword [ebp + 0x508]
sar edi, 1
cdq
sub eax, edx
sar eax, 1
sub edi, eax
mov eax, dword [ebp + 0x510]
sub eax, dword [ebp + 0x508]
mov dword [esp + 0x1c], edi
add eax, edi
mov dword [esp + 0x24], eax
cmp dword [ebp + 0x518], ebx
je 0x1003a155
mov eax, dword [ebp + 0x524]
mov edx, dword [ebp + 0x520]
sub ecx, dword [esp + 0xc4]
push eax
push edx
push ecx
mov ecx, dword [esp + 0x58]
push esi
push ebx
push ebx
push ecx
lea esi, [ebp + 0x514]
or al, 0xff
call fcn.10006ee0
push 1
lea ecx, [esp + 0x4c]
call fcn.1005d0e9
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x28], eax
lea eax, [ebp + 0x4fc]
push eax
lea edx, [esp + 0x64]
push edx
call fcn.10006e00
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
mov edx, dword [esp + 0x1c]
sar eax, 1
sar ecx, 1
sub ecx, eax
mov eax, dword [esp + 0x24]
add eax, edx
cdq
add esi, ecx
sub eax, edx
mov dword [esp + 0x18], ecx
mov ecx, eax
mov eax, edi
cdq
sar ecx, 1
sub eax, edx
sar eax, 1
sub ecx, eax
add edi, ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x568]
push ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.1005d11b
mov eax, dword [ebp + 0x4fc]
mov ecx, dword [eax - 0xc]
push 0x8025
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
mov eax, dword [esp + 0x58]
mov edx, dword [eax + 0x68]
lea ecx, [esp + 0x58]
call edx
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x4c]
call fcn.1005d0e9
jmp 0x1003a44b
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x28]
push ecx
push edx
mov dword [esp + 0x30], ebx
call sub.gdiplus.dll_GdipCreateFromHDC
fld1
mov dl, byte [ebp + 0x561]
mov cl, byte [ebp + 0x562]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
movzx eax, byte [ebp + 0x560]
or eax, 0xffffff00
movzx edx, dl
shl eax, 8
or eax, edx
lea edx, [esp + 0x74]
push edx
movzx ecx, cl
push ebx
shl eax, 8
push ecx
or eax, ecx
mov dword [esp + 0x64], edi
fstp dword [esp]
push eax
mov dword [esp + 0x84], ebx
call sub.gdiplus.dll_GdipCreatePen1
mov dl, byte [ebp + 0x565]
mov cl, byte [ebp + 0x566]
mov dword [esp + 0x78], eax
movzx eax, byte [ebp + 0x564]
or eax, 0xffffff00
movzx edx, dl
shl eax, 8
or eax, edx
movzx ecx, cl
shl eax, 8
lea edx, [esp + 0x44]
or eax, ecx
push edx
push eax
mov dword [esp + 0x4c], ebx
call sub.gdiplus.dll_GdipCreateSolidFill
mov eax, dword [esp + 0x44]
mov dl, byte [ebp + 0x569]
mov cl, byte [ebp + 0x56a]
mov dword [esp + 0xa0], eax
movzx eax, byte [ebp + 0x568]
or eax, 0xffffff00
movzx edx, dl
shl eax, 8
or eax, edx
movzx ecx, cl
shl eax, 8
lea edx, [esp + 0x28]
or eax, ecx
push edx
push eax
mov dword [esp + 0x88], vtable.Gdiplus::SolidBrush.0
mov dword [esp + 0x30], ebx
call sub.gdiplus.dll_GdipCreateSolidFill
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x40]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
push ecx
push edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x48], ebx
call sub.gdiplus.dll_GdipCreateFontFromDC
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x40]
push 8
mov dword [esp + 0x64], eax
call sub.gdiplus.dll_GdipAlloc
mov esi, eax
cmp esi, ebx
je 0x1003a28a
push esi
push ebx
push ebx
mov dword [esi], ebx
call sub.gdiplus.dll_GdipCreateStringFormat
mov dword [esi + 4], eax
jmp 0x1003a28c
xor esi, esi
mov dword [esp + 0x34], ebx
cmp esi, ebx
je 0x1003a298
mov esi, dword [esi]
jmp 0x1003a29a
xor esi, esi
lea ecx, [esp + 0x34]
push ecx
push esi
call sub.gdiplus.dll_GdipCloneStringFormat
mov edx, dword [esp + 0x34]
push 1
push edx
mov dword [esp + 0x40], eax
call sub.gdiplus.dll_GdipSetStringFormatLineAlign
cmp eax, ebx
je 0x1003a2bd
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
push 1
push eax
call sub.gdiplus.dll_GdipSetStringFormatAlign
cmp eax, ebx
je 0x1003a2d1
mov dword [esp + 0x38], eax
push 2
push edi
call sub.gdiplus.dll_GdipSetSmoothingMode
cmp eax, ebx
je 0x1003a2e1
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
sub ecx, ebx
lea eax, [ecx - 1]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp + 0x558]
sar esi, 1
mov dword [esp + 0x2c], esi
cmp eax, 0xffffffff
je 0x1003a306
mov esi, eax
mov eax, dword [ebp + 0x55c]
cmp eax, 0xffffffff
je 0x1003a315
mov dword [esp + 0x2c], eax
push dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
sub eax, edx
push esi
dec ecx
dec eax
push ecx
push eax
mov eax, ebx
mov ebx, edx
call fcn.10039bc0
test eax, eax
je 0x1003a339
mov eax, dword [eax]
jmp 0x1003a33b
xor eax, eax
mov ecx, dword [esp + 0x74]
push eax
push ecx
push edi
call sub.gdiplus.dll_GdipDrawPath
test eax, eax
je 0x1003a34f
mov dword [esp + 0x5c], eax
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
sub ecx, eax
push esi
sub edx, ebx
dec ecx
push ecx
dec edx
push edx
call fcn.10039bc0
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
push edx
push eax
push edi
call sub.gdiplus.dll_GdipFillPath
test eax, eax
je 0x1003a387
mov dword [esp + 0x5c], eax
fild dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
inc eax
lea edx, [esp + 0x8c]
fstp dword [esp + 0x7c]
push edx
fld dword [esp + 0x30]
lea edi, [esp + 0x64]
fstp dword [esp + 0x90]
lea esi, [esp + 0x5c]
fld dword [esp + 0x80]
fstp dword [esp + 0x94]
fild dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x4fc]
fstp dword [esp + 0x98]
fild dword [esp + 0x40]
fstp dword [esp + 0x9c]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x40]
call fcn.10033490
mov eax, dword [esp + 0x34]
push eax
call sub.gdiplus.dll_GdipDeleteStringFormat
mov ecx, dword [esp + 0x40]
push ecx
call sub.gdiplus.dll_GdipDeleteFont
mov edx, dword [esp + 0x28]
push edx
call sub.gdiplus.dll_GdipDeleteBrush
mov eax, dword [esp + 0xa0]
push eax
call sub.gdiplus.dll_GdipDeleteBrush
mov ecx, dword [esp + 0x74]
push ecx
call sub.gdiplus.dll_GdipDeletePen
mov edx, dword [esp + 0x58]
push edx
call sub.gdiplus.dll_GdipDeleteGraphics
xor ebx, ebx
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xcc]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0xc8]
push edi
mov edi, dword [esp + 0x50]
sub eax, edx
push eax
sub ecx, esi
push ecx
push ebx
push ebx
push edi
push eax
push ecx
push edx
push esi
mov esi, dword [esp + 0xe4]
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.MSIMG32.dll_AlphaBlend]
cmp dword [esp + 0x68], ebx
je 0x1003a4a2
mov esi, dword [esi + 4]
mov ecx, dword [ebp + 0x20]
push esi
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov byte [esp + 0xb0], bl
lea ecx, [esp + 0x6c]
mov dword [esp + 0x6c], vtable.CBitmap.0
call fcn.10002760
lea ecx, [esp + 0x48]
mov dword [esp + 0xb0], 0xffffffff
call fcn.1005d946
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret 0x18