Function at 0x53d910
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x65dbab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x468
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
xor ebx, ebx
push edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 4], ebx
push eax
mov dword [ebp - 0x40], eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x34], ebx
mov byte [ebp - 4], 2
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x64]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
fldz
fst dword [ebp - 0x18]
push 0x10
fstp dword [ebp - 0x20]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0xe], bl
mov byte [ebp - 0xd], bl
mov dword [ebp - 0x30], ebx
call sub.gdiplus.dll_GdipAlloc
mov edi, eax
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 3
test edi, edi
je 0x53d9df
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x60]
sub ecx, dword [ebp - 0x64]
mov dword [edi], vtable.Gdiplus::Image.0
mov byte [ebp - 4], 4
lea edx, [ebp - 0x1c]
push edx
push ebx
push 0x26200a
push ebx
push eax
push ecx
mov dword [edi], vtable.Gdiplus::Bitmap.0
mov dword [ebp - 0x1c], ebx
call sub.gdiplus.dll_GdipCreateBitmapFromScan0
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 4], eax
mov byte [ebp - 4], 3
jmp 0x53d9e1
xor edi, edi
mov dword [ebp - 0x3c], edi
mov byte [ebp - 4], 2
push edi
call fcn.005357e0
mov ecx, dword [eax]
add esp, 4
push 2
push ecx
mov dword [ebp - 0x24], eax
call sub.gdiplus.dll_GdipSetSmoothingMode
test eax, eax
je 0x53da08
mov edx, dword [ebp - 0x24]
mov dword [edx + 4], eax
mov edi, dword [ebp - 0x24]
push edi
mov ecx, esi
call fcn.00535c20
push edi
mov ecx, esi
call fcn.0053b950
mov ecx, esi
call fcn.00538650
fld dword [esi + 0x38]
mov eax, dword [esi + 0xc8]
fstp dword [ebp - 0x1c]
mov ecx, dword [eax]
fld qword [0x67ae58]
mov edi, dword [ebp - 0x2c]
cmp ecx, eax
je 0x53db97
fld dword [0x67ae98]
fld qword [0x67ae90]
fld dword [0x67aec8]
fld qword [0x67aea8]
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x53db0c
fld dword [0x67ae60]
fld dword [ebp - 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x53da80
fsub st(5)
fstp dword [ebp - 0x1c]
fld dword [ebp - 0x1c]
fcom st(4)
fnstsw ax
test ah, 0x41
jp 0x53da97
fld dword [edx + 0x34]
fadd st(1)
fcomp st(4)
fnstsw ax
test ah, 0x41
je 0x53dab0
fcom st(4)
fnstsw ax
test ah, 1
jne 0x53dabc
fld dword [edx + 0x34]
fadd st(1)
fsub st(6)
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x53dabc
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x28], edx
mov dword [esi + 0xac], eax
fcom st(2)
fnstsw ax
test ah, 0x41
jp 0x53dad3
fld dword [edx + 0x34]
fadd st(1)
fcomp st(2)
fnstsw ax
test ah, 0x41
je 0x53daec
fcom st(2)
fnstsw ax
test ah, 1
jne 0x53db06
fld dword [edx + 0x34]
fadd st(1)
fsub st(6)
fcomp st(2)
fnstsw ax
test ah, 0x41
jne 0x53db06
mov ebx, dword [ecx + 0xc]
mov dword [esi + 0xb0], ebx
fld dword [edx + 0x34]
mov edi, dword [ecx + 0x10]
fadd st(1)
mov dword [ebp - 0x30], ebx
fstp dword [ebp - 0x18]
fst dword [ebp - 0x20]
fadd dword [edx + 0x34]
fstp dword [ebp - 0x1c]
cmp byte [ecx + 0x15], 0
jne 0x53db4c
mov eax, dword [ecx + 8]
cmp byte [eax + 0x15], 0
jne 0x53db31
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
jne 0x53db4c
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x15], 0
je 0x53db25
jmp 0x53db4c
mov eax, dword [ecx + 4]
cmp byte [eax + 0x15], 0
jne 0x53db4a
cmp ecx, dword [eax + 8]
jne 0x53db4a
mov ecx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 0
je 0x53db3a
mov ecx, eax
cmp ecx, dword [esi + 0xc8]
jne 0x53da59
fstp st(4)
mov dword [ebp - 0x2c], edi
fstp st(1)
fstp st(2)
cmp edi, dword [ebp - 0x28]
jne 0x53dbac
fld dword [ebp - 0x20]
fcom st(1)
fnstsw ax
test ah, 0x41
jnp 0x53dba2
fcom st(2)
fnstsw ax
test ah, 0x41
je 0x53dba2
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x53dbbd
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x53dbbf
mov byte [ebp - 0xd], 1
jmp 0x53dbbf
fstp st(0)
mov byte [ebp - 0xe], 1
fld dword [ebp - 0x20]
jmp 0x53dbbf
fstp st(1)
mov byte [ebp - 0xe], 1
fstp st(1)
jmp 0x53dbbf
fstp st(0)
mov byte [ebp - 0xd], 1
fstp st(0)
mov byte [ebp - 0xe], 1
fld dword [ebp - 0x20]
jmp 0x53dbbf
fstp st(1)
test edi, edi
je 0x53dc3d
cmp edi, dword [ebp - 0x28]
jne 0x53dc1a
cmp byte [ebp - 0xe], 0
je 0x53dbf1
fldz
sub esp, 8
mov eax, esp
fst dword [eax]
mov dword [ebp - 0x14], esp
fstp dword [eax + 4]
push 6
push ecx
mov ecx, dword [ebp - 0x24]
fstp dword [esp]
push edi
push ecx
mov ecx, esi
call fcn.005371d0
jmp 0x53dc3f
cmp byte [ebp - 0xd], 0
je 0x53dc1a
fldz
mov edx, dword [ebp - 0x24]
sub esp, 8
mov eax, esp
mov dword [ebp - 0x14], esp
fst dword [eax]
push 7
fstp dword [eax + 4]
push ecx
fstp dword [esp]
push edi
push edx
mov ecx, esi
call fcn.005371d0
jmp 0x53dc3f
fldz
sub esp, 8
mov eax, esp
fst dword [eax]
mov dword [ebp - 0x14], esp
fstp dword [eax + 4]
mov eax, dword [ebp - 0x24]
push 2
push ecx
fstp dword [esp]
push edi
push eax
mov ecx, esi
call fcn.00538960
jmp 0x53dc3f
fstp st(0)
mov dword [ebp - 0x50], vtable.Gdiplus::Brush.0
mov dword [ebp - 0x48], 6
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
push ecx
xor edi, edi
push 0xffff1919
mov dword [ebp - 0x50], vtable.Gdiplus::SolidBrush.0
mov dword [ebp - 0x1c], edi
call sub.gdiplus.dll_GdipCreateSolidFill
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], edx
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x53dd1f
cmp byte [ebp - 0xd], 0
je 0x53dd1f
mov ecx, dword [esi + 0xc8]
mov eax, dword [ecx + 4]
dec ebx
cmp byte [eax + 0x15], 0
jne 0x53dcb4
lea ecx, [ecx]
cmp dword [eax + 0xc], ebx
jge 0x53dcaa
mov eax, dword [eax + 8]
jmp 0x53dcae
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x15], 0
je 0x53dca0
mov eax, dword [esi + 0xc8]
mov dword [ebp - 0x1c], ecx
cmp ecx, eax
je 0x53dccb
cmp ebx, dword [ecx + 0xc]
jl 0x53dccb
lea eax, [ebp - 0x1c]
jmp 0x53dcd1
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
mov eax, dword [eax]
cmp eax, dword [esi + 0xc8]
je 0x53dd14
mov edi, dword [eax + 0x10]
cmp edi, edx
je 0x53dd1f
fld dword [ebp - 0x20]
sub esp, 8
fsub dword [edi + 0x34]
mov eax, esp
mov dword [ebp - 0x1c], esp
push 1
fstp dword [ebp - 0x20]
push ecx
fldz
mov ecx, esi
fst dword [eax]
fstp dword [eax + 4]
fld dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
fstp dword [esp]
push edi
push eax
call fcn.00538960
mov edx, dword [ebp - 0x28]
jmp 0x53dd17
mov ebx, dword [esi + 0x30]
cmp edx, edi
jne 0x53dc83
xor edi, edi
test edx, edx
je 0x53de75
lea esp, [esp]
mov bl, byte [ebp - 0xe]
test bl, bl
je 0x53ddf0
mov edx, dword [ebp - 0x30]
mov ecx, dword [esi + 0xc8]
mov eax, dword [ecx + 4]
inc edx
cmp byte [eax + 0x15], 0
mov dword [ebp - 0x30], edx
jne 0x53dd65
cmp dword [eax + 0xc], edx
jge 0x53dd5b
mov eax, dword [eax + 8]
jmp 0x53dd5f
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0x15], 0
je 0x53dd51
mov eax, dword [esi + 0xc8]
mov dword [ebp - 0x14], ecx
cmp ecx, eax
je 0x53dd7c
cmp edx, dword [ecx + 0xc]
jl 0x53dd7c
lea eax, [ebp - 0x14]
jmp 0x53dd82
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
mov ecx, dword [eax]
cmp ecx, dword [esi + 0xc8]
je 0x53dde0
fld dword [0x67ae60]
fld dword [ebp - 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 1
jne 0x53ddac
fsub qword [0x67ae58]
fstp dword [ebp - 0x18]
fld dword [ebp - 0x18]
mov edi, dword [ecx + 0x10]
cmp edi, dword [ebp - 0x28]
je 0x53ddf3
fldz
sub esp, 8
mov eax, esp
fst dword [eax]
mov dword [ebp - 0x14], esp
fstp dword [eax + 4]
push 0
push ecx
mov ecx, dword [ebp - 0x24]
fstp dword [esp]
push edi
push ecx
mov ecx, esi
call fcn.00538960
fld dword [edi + 0x34]
fadd dword [ebp - 0x18]
fstp dword [ebp - 0x18]
jmp 0x53dde7
mov dword [ebp - 0x30], 0xffffffff
cmp dword [ebp - 0x28], edi
jne 0x53dd30
fld dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], ecx
jne 0x53de54
test bl, bl
je 0x53de22
fldz
mov edx, dword [ebp - 0x24]
sub esp, 8
mov eax, esp
mov dword [ebp - 0x14], esp
fst dword [eax]
push 4
fstp dword [eax + 4]
push ecx
fstp dword [esp]
push ecx
push edx
mov ecx, esi
call fcn.005371d0
jmp 0x53de75
cmp byte [ebp - 0xd], 0
je 0x53de54
fldz
sub esp, 8
mov eax, esp
fst dword [eax]
fstp dword [eax + 4]
mov dword [ebp - 0x14], esp
mov eax, dword [ebp - 0x24]
push 5
fsub dword [ecx + 0x34]
push ecx
fstp dword [ebp - 0x14]
fld dword [ebp - 0x14]
fstp dword [esp]
push ecx
push eax
mov ecx, esi
call fcn.005371d0
jmp 0x53de75
fldz
sub esp, 8
mov eax, esp
fst dword [eax]
mov dword [ebp - 0x14], esp
fstp dword [eax + 4]
push 3
push ecx
fstp dword [esp]
push ecx
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, esi
call fcn.00538960
cmp dword [esi + 0xc0], 0
mov edi, dword [ebp - 0x24]
je 0x53de90
fld dword [esi + 0x38]
push ecx
fstp dword [esp]
push edi
mov ecx, esi
call fcn.0053a440
mov edx, dword [edi]
push edx
call sub.gdiplus.dll_GdipDeleteGraphics
push edi
call sub.gdiplus.dll_GdipFree
mov eax, dword [0x700724]
mov edx, dword [eax + 0xc]
mov ecx, 0x700724
call edx
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x474]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, 0x200
ja 0x53deee
test eax, eax
je 0x53deee
lea ecx, [ebp - 0x474]
push ecx
lea edx, [ebp - 0x18]
push 0x66edc0
push edx
call fcn.00405ab0
add esp, 0xc
jmp 0x53defd
push 3
push 0x66fae0
lea ecx, [ebp - 0x18]
call fcn.00401670
mov eax, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x18]
push str.PDFAppActivityGen.bmp
push ecx
call fcn.00414990
mov esi, dword [ebp - 0x18]
add esp, 0xc
cmp dword [esi - 0xc], 0
jge 0x53df20
or ecx, 0xffffffff
jmp 0x53df3d
push 0x671930
push esi
call fcn.00612c90
add esp, 8
test eax, eax
jne 0x53df37
or ecx, 0xffffffff
jmp 0x53df3d
sub eax, esi
sar eax, 1
mov ecx, eax
mov eax, dword [esi - 0xc]
inc ecx
sub eax, ecx
push eax
lea edx, [ebp - 0x38]
push edx
lea ecx, [ebp - 0x18]
call fcn.00427cb0
mov byte [ebp - 4], 9
mov eax, dword [0x700724]
mov edx, dword [eax + 0xc]
mov ecx, 0x700724
call edx
lea esi, [eax + 0x10]
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 0xa
mov eax, 0x67af2c
test eax, 0xffff0000
jne 0x53df99
mov ecx, eax
movzx edi, cx
push 0
push edi
call fcn.00403bf0
add esp, 8
test eax, eax
je 0x53dfa9
push edi
push eax
lea ecx, [ebp - 0x20]
call fcn.00405a10
jmp 0x53dfa6
push 0x67af2c
lea ecx, [ebp - 0x20]
call fcn.00405830
mov esi, dword [ebp - 0x20]
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax - 0xc]
mov ebx, dword [esi - 0xc]
mov dword [ebp - 0x2c], eax
sub eax, esi
sar eax, 1
mov edx, eax
mov eax, dword [esi - 8]
lea edi, [ebx + ecx]
mov dword [ebp - 0x30], ecx
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, edi
or eax, ecx
mov dword [ebp - 0x14], edx
jge 0x53dfe8
push edi
lea ecx, [ebp - 0x20]
call fcn.00401400
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
cmp edx, ebx
ja 0x53dff2
lea edx, [esi + edx*2]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
add eax, eax
push eax
push ecx
push eax
lea edx, [esi + ebx*2]
push edx
call fcn.0060fbd3
add esp, 0x10
test edi, edi
js 0x53e115
cmp edi, dword [esi - 8]
jg 0x53e115
lea ecx, [ebp - 0x74]
push ecx
xor eax, eax
mov dword [esi - 0xc], edi
push esi
mov word [esi + edi*2], ax
call fcn.00534c30
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x3c]
mov eax, dword [edi + 4]
add esp, 8
push 0
lea edx, [ebp - 0x74]
push edx
push ebx
push eax
call sub.gdiplus.dll_GdipSaveImageToFile
test eax, eax
je 0x53e04d
mov dword [edi + 8], eax
mov edx, dword [edi]
mov eax, dword [edx]
push 1
mov ecx, edi
call eax
mov byte [ebp - 4], 9
add esi, 0xfffffff0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53e077
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53e09a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x53e0ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4c]
push ecx
mov dword [ebp - 0x50], vtable.Gdiplus::Brush.0
call sub.gdiplus.dll_GdipDeleteBrush
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x34]
xor esi, esi
cmp eax, esi
je 0x53e0e5
push eax
mov dword [ebp - 0x34], esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov dword [ebp - 4], 0x10
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x54]
push eax
push edx
mov dword [ebp - 0x44], esi
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.004011d0
int3