Function at 0x53a700
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
mov byte [ebp - 0x1f1], 0x41
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 0
je 0x53a7a7
cmp dword [ebp - 0x248], 0x758e
je 0x53a738
jmp 0x53aba3
lea ecx, [ebp - 0xa8]
push ecx
lea edx, [ebp - 0xa8]
push edx
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0xa8]
push ecx
call dword [sym.imp.SHELL32.dll_SHBindToParent]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 0x3d97469e
je 0x53a783
cmp dword [ebp - 0x24c], 0xb78869cb
je 0x53a799
jmp 0x53a7a2
mov eax, 0xfa2
mov word [ebp + 0x14], ax
mov ecx, dword [ebp + 8]
push ecx
push 0xffffffffffffff99
call fcn.0053a140
jmp 0x53a7a2
mov edx, 0x1a4
mov word [ebp + 0x14], dx
jmp 0x53aba3
mov ax, word [ebp + 0x14]
mov word [ebp - 0x184], ax
movzx ecx, byte [ebp - 0x1f1]
add ecx, 0x39
mov byte [ebp - 0x1f1], cl
mov edx, dword [0x55d224]
mov dword [ebp - 0xa4], edx
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x110], eax
movsx ecx, word [ebp + 0x18]
sub ecx, 0x58e2
movsx edx, word [ebp + 0x10]
cmp ecx, edx
jne 0x53a85c
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.COMDLG32.dll_PrintDlgExW]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx]
mov dword [ebp - 0x250], edx
cmp dword [ebp - 0x250], 0x43c431ba
je 0x53a81b
jmp 0x53a847
mov eax, dword [ebp - 0xa4]
mov ecx, dword [0x55d224]
shl eax, cl
mov ecx, dword [ebp - 0x110]
mov dword [ecx], eax
movzx edx, word [ebp + 0x10]
push edx
movzx eax, word [ebp + 0x18]
push eax
push 0xffffffffffffffe6
call fcn.0053a580
add esp, 0xc
jmp 0x53a857
movzx ecx, byte [ebp - 0x1f1]
or ecx, 0x66
mov byte [ebp - 0x1f1], cl
jmp 0x53a925
movsx edx, word [ebp + 0x18]
and edx, 0x32d2
movsx eax, word [ebp + 0x10]
cmp edx, eax
jl 0x53a925
mov cl, byte [ebp - 0x1f1]
mov byte [ebp - 0x45], cl
mov edx, dword [ebp + 8]
mov dword [ebp - 0x254], edx
cmp dword [ebp - 0x254], 0
je 0x53a8a2
cmp dword [ebp - 0x254], 0xf050c30b
je 0x53a91f
jmp 0x53a925
mov eax, dword [ebp - 0xa4]
xor eax, dword [0x55d224]
mov ecx, dword [ebp - 0x110]
cmp eax, dword [ecx]
jl 0x53a91d
movsx edx, word [ebp + 0x18]
mov dword [ebp - 0x258], edx
cmp dword [ebp - 0x258], 0x1248
je 0x53a8d0
jmp 0x53a91d
mov eax, dword [ebp - 0xa4]
mov ecx, dword [0x55d224]
sar eax, cl
mov ecx, dword [ebp - 0x110]
mov dword [ecx], eax
mov dl, byte [ebp - 0x1f1]
mov byte [ebp - 0x25c], dl
cmp byte [ebp - 0x25c], 0x32
je 0x53a8fd
jmp 0x53a90a
mov eax, dword [ebp + 8]
push eax
push 0x3a
call fcn.0053a140
jmp 0x53a91d
lea ecx, [ebp - 0x180]
push ecx
call dword [sym.imp.COMDLG32.dll_PageSetupDlgW]
mov dword [ebp - 0xb0], eax
jmp 0x53a925
mov edx, dword [ebp + 0xc]
mov dword [ebp + 8], edx
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x260], eax
cmp dword [ebp - 0x260], 0
je 0x53a93d
jmp 0x53a9e8
mov byte [ebp - 0x1f2], 0x6a
mov cx, word [ebp - 0x184]
mov word [ebp - 0x244], cx
movsx edx, word [ebp + 0x10]
mov dword [ebp - 0x264], edx
cmp dword [ebp - 0x264], 0
je 0x53a973
cmp dword [ebp - 0x264], 0x7eb6
je 0x53a9d2
jmp 0x53a9e6
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x124], eax
movzx ecx, word [ebp - 0x184]
mov dword [ebp - 0x268], ecx
cmp dword [ebp - 0x268], 0xc5b
je 0x53a99a
jmp 0x53a9d0
mov edx, dword [ebp - 0x110]
mov eax, dword [edx]
sub eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x110]
mov dword [ecx], eax
call dword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x124]
push edx
movzx eax, byte [ebp - 0x1f2]
push eax
call fcn.00539fa0
add esp, 8
jmp 0x53a9e6
mov ecx, dword [ebp - 0xa4]
add ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x110]
mov dword [edx], ecx
jmp 0x53a9fe
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.COMDLG32.dll_ChooseFontW]
mov dword [ebp - 0x1ec], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x44], ecx
lea edx, [ebp - 0x124]
mov dword [ebp - 0x40], edx
mov al, byte [ebp - 0x1f2]
mov byte [ebp - 0x26c], al
cmp byte [ebp - 0x26c], 0x3c
je 0x53ab18
cmp byte [ebp - 0x26c], 0x6a
je 0x53aa2e
jmp 0x53ab90
movsx ecx, word [ebp + 0x10]
mov dword [ebp - 0x270], ecx
cmp dword [ebp - 0x270], 0x71f4
je 0x53aa46
jmp 0x53aa60
movzx edx, word [ebp + 0x18]
push edx
movzx eax, word [ebp + 0x10]
push eax
movzx ecx, byte [ebp - 0x1f2]
push ecx
call fcn.0053a580
add esp, 0xc
mov edx, dword [ebp - 0x110]
mov eax, dword [edx]
add eax, dword [ebp - 0x124]
mov ecx, dword [ebp - 0x110]
mov dword [ecx], eax
mov dl, byte [ebp - 0x1f1]
mov byte [ebp - 0x274], dl
cmp byte [ebp - 0x274], 0x51
je 0x53aa8f
jmp 0x53aaa4
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xa4]
shl edx, cl
mov eax, dword [ebp - 0x110]
mov dword [eax], edx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x44], ecx
movzx edx, word [ebp + 0x10]
push edx
movzx eax, word [ebp - 0x244]
push eax
movzx ecx, word [ebp + 0x18]
push ecx
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.0053a700
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x278], ecx
cmp dword [ebp - 0x278], 0x331f4ba4
je 0x53aae0
jmp 0x53aaf3
lea edx, [ebp - 0x1e8]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgExW]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x124]
sub eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x40]
mov dword [ecx], eax
mov edx, dword [ebp - 0xa4]
xor edx, dword [0x55d224]
mov dword [ebp - 0x124], edx
jmp 0x53ab90
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x27c], eax
cmp dword [ebp - 0x27c], 0x731a
je 0x53ab30
jmp 0x53ab6d
lea ecx, [ebp - 0x240]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgW]
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x110]
mov ecx, dword [edx]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x40]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x45]
push eax
mov dl, byte [ebp - 0x1f1]
mov ecx, dword [ebp - 0x124]
call fcn.0053abe0
jmp 0x53ab90
movzx ecx, byte [ebp - 0x1f1]
add ecx, 0xac
mov byte [ebp - 0x45], cl
lea edx, [ebp - 0xa0]
push edx
call dword [sym.imp.COMDLG32.dll_PageSetupDlgW]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax]
and ecx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0x40]
mov dword [edx], ecx
lea eax, [ebp - 0x10c]
push eax
mov ecx, dword [ebp - 0x1f0]
push ecx
mov edx, dword [ebp - 0x18c]
push edx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0x10c], eax
mov eax, 0xe95
mov word [ebp + 0x14], ax
mov eax, dword [0x55d224]
mov esp, ebp
pop ebp
ret 0x14