Function at 0x4950f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x468
mov eax, dword [0x53f4a0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0xfc], ebx
je 0x495d93
mov ecx, dword [esi + 0xfc]
mov edx, dword [ecx + 0x1d8]
sub edx, dword [ecx + 0x1d4]
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ecx + 0x1c0]
sub edx, dword [ecx + 0x1bc]
mov dword [ebp - 0x460], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ecx + 0x1f0]
sub edx, dword [ecx + 0x1ec]
mov dword [ebp - 0x45c], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ecx + 0x190]
sub edx, dword [ecx + 0x18c]
mov dword [ebp - 0x464], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ecx + 0x1a8]
sub edx, dword [ecx + 0x1a4]
mov dword [ebp - 0x468], eax
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x458], eax
mov eax, dword [esi + 0x40]
lea edi, [esi + 0x40]
push eax
call dword [sym.imp.USER32.dll_LockWindowUpdate]
lea ecx, [ebp - 0x414]
push ecx
push 0x208
mov dword [ebp - 0x450], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov dword [ebp - 0x44c], ebx
cmp byte [esi + 0xf5], bl
je 0x495221
push 1
lea edx, [ebp - 0x450]
push edx
push ecx
lea eax, [ebp - 0x414]
mov ecx, esp
push eax
call fcn.00470300
mov ecx, esi
call fcn.00494da0
mov dword [ebp - 0x44c], eax
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x495234
mov eax, 0x541cb0
mov ecx, dword [ebp - 0x44c]
mov edx, dword [esi + 0xa4]
push eax
push ecx
push 0x512140
push 0x100
push edx
call fcn.004eaa27
mov eax, dword [esi + 0xa4]
mov ecx, dword [esi + 0x74]
add esp, 0x14
push eax
push ecx
mov ecx, edi
call fcn.00492a60
cmp dword [ebp - 0x44c], ebx
jle 0x49529f
mov eax, dword [esi + 0x74]
mov edx, dword [edi]
push 0xf000
push eax
push 0x1127
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x49529f
mov eax, dword [esi + 0x74]
push 1
push eax
lea ecx, [esi + 0x3c]
call fcn.00492c30
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x4952b2
mov eax, 0x541cb0
mov ecx, dword [ebp - 0x468]
mov edx, dword [esi + 0xa8]
push eax
push ecx
push 0x512140
push 0x100
push edx
call fcn.004eaa27
mov eax, dword [esi + 0xa8]
mov ecx, dword [esi + 0x68]
add esp, 0x14
push eax
push ecx
mov ecx, edi
call fcn.00492a60
cmp dword [ebp + 8], ebx
je 0x495426
mov eax, dword [ebp - 0x468]
cmp eax, ebx
jle 0x49545e
mov dword [ebp - 0x44c], ebx
mov dword [ebp - 0x450], ebx
jmp 0x495310
mov ecx, dword [esi + 0xfc]
mov edx, dword [ecx + 0x190]
sub edx, dword [ecx + 0x18c]
add ecx, 0x180
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x454], ecx
cmp dword [ebp - 0x44c], eax
jb 0x495351
call fcn.004eaba2
mov ecx, dword [ebp - 0x454]
mov ecx, dword [ecx + 0xc]
mov edx, dword [ebp - 0x450]
mov edx, dword [edx + ecx + 8]
xor eax, eax
mov word [ebp - 0x42c], ax
mov eax, edx
lea ecx, [eax + 2]
mov dword [ebp - 0x418], 7
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x454], ecx
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x495382
sub eax, dword [ebp - 0x454]
lea ecx, [ebp - 0x430]
sar eax, 1
push eax
push edx
call fcn.00403060
cmp dword [ebp - 0x418], 8
mov ecx, dword [ebp - 0x42c]
jae 0x4953b7
lea ecx, [ebp - 0x42c]
mov edx, dword [esi + 0x68]
mov eax, dword [esi + 0x98]
push 0xffff0002
push edx
push eax
push eax
push ecx
mov ecx, edi
call fcn.00492b30
cmp dword [ebp - 0x418], 8
mov ecx, dword [ebp - 0x42c]
jae 0x4953e5
lea ecx, [ebp - 0x42c]
push ecx
push eax
mov ecx, esi
call fcn.00494b70
cmp dword [ebp - 0x418], 8
jb 0x495406
mov eax, dword [ebp - 0x42c]
push eax
call fcn.004ea481
add esp, 4
mov eax, dword [ebp - 0x44c]
add dword [ebp - 0x450], 0xc
inc eax
cmp eax, dword [ebp - 0x468]
mov dword [ebp - 0x44c], eax
jl 0x495310
cmp dword [ebp - 0x468], ebx
jle 0x49545e
mov eax, dword [esi + 0x68]
mov ecx, dword [edi]
push 0xf000
push eax
push 0x1127
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x49545e
mov edx, dword [esi + 0x68]
push 1
push edx
lea ecx, [esi + 0x3c]
call fcn.00492c30
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x495471
mov eax, 0x541cb0
mov ecx, dword [esi + 0xac]
push eax
mov eax, dword [ebp - 0x458]
push eax
push 0x512140
push 0x100
push ecx
call fcn.004eaa27
mov edx, dword [esi + 0xac]
mov eax, dword [esi + 0x64]
add esp, 0x14
push edx
push eax
mov ecx, edi
call fcn.00492a60
cmp dword [ebp + 8], ebx
je 0x495556
cmp dword [ebp - 0x458], ebx
jle 0x49558e
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x44c], ebx
jmp 0x4954d0
mov eax, dword [esi + 0xfc]
mov ecx, dword [eax + 0x1a8]
sub ecx, dword [eax + 0x1a4]
add eax, 0x198
mov dword [ebp - 0x454], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [ebp - 0x450], ecx
jb 0x49550a
call fcn.004eaba2
mov edx, dword [esi + 0x64]
mov eax, dword [esi + 0x98]
push 0xffff0002
push edx
mov edx, dword [ebp - 0x44c]
push eax
push eax
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx + ecx + 4]
push eax
mov ecx, edi
call fcn.00492b30
mov eax, dword [ebp - 0x450]
add dword [ebp - 0x44c], 0xc
inc eax
cmp eax, dword [ebp - 0x458]
mov dword [ebp - 0x450], eax
jl 0x4954d0
cmp dword [ebp - 0x458], ebx
jle 0x49558e
mov eax, dword [esi + 0x64]
mov ecx, dword [edi]
push 0xf000
push eax
push 0x1127
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x49558e
mov edx, dword [esi + 0x64]
push 1
push edx
lea ecx, [esi + 0x3c]
call fcn.00492c30
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x4955a1
mov eax, 0x541cb0
mov ecx, dword [esi + 0xb0]
push eax
mov eax, dword [ebp - 0x460]
push eax
push 0x512140
push 0x100
push ecx
call fcn.004eaa27
mov edx, dword [esi + 0x6c]
xor eax, eax
add esp, 0x14
lea ecx, [ebp - 0x43c]
push ecx
mov dword [ebp - 0x438], eax
push ebx
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x438], edx
mov edx, dword [edi]
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x41c], eax
mov eax, dword [esi + 0xb0]
push 0x113f
push edx
mov dword [ebp - 0x43c], 4
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x418], eax
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], ebx
je 0x4956f7
cmp dword [ebp - 0x460], ebx
jle 0x49572f
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x44c], ebx
mov edi, edi
mov eax, dword [esi + 0xfc]
mov ecx, dword [eax + 0x1d8]
sub ecx, dword [eax + 0x1d4]
add eax, 0x1c8
mov dword [ebp - 0x454], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x450], eax
jb 0x4956ab
call fcn.004eaba2
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x98]
mov edx, dword [ebp - 0x454]
push 0xffff0002
push ecx
mov ecx, dword [ebp - 0x44c]
push eax
push eax
mov eax, dword [edx + 0xc]
mov edx, dword [ecx + eax + 0x14]
push edx
mov ecx, edi
call fcn.00492b30
mov eax, dword [ebp - 0x450]
add dword [ebp - 0x44c], 0x18
inc eax
cmp eax, dword [ebp - 0x460]
mov dword [ebp - 0x450], eax
jl 0x495670
cmp dword [ebp - 0x460], ebx
jle 0x49572f
mov eax, dword [esi + 0x6c]
push 0xf000
push eax
mov eax, dword [edi]
push 0x1127
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x49572f
mov ecx, dword [esi + 0x6c]
push 1
push ecx
lea ecx, [esi + 0x3c]
call fcn.00492c30
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x495742
mov eax, 0x541cb0
mov edx, dword [ebp - 0x45c]
push eax
mov eax, dword [esi + 0xb4]
push edx
push 0x512140
push 0x100
push eax
call fcn.004eaa27
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0xb4]
xor eax, eax
add esp, 0x14
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x41c], eax
lea eax, [ebp - 0x43c]
push eax
push ebx
mov dword [ebp - 0x438], ecx
mov ecx, dword [edi]
push 0x113f
push ecx
mov dword [ebp - 0x43c], 4
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x418], edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], ebx
je 0x4958e7
cmp dword [ebp - 0x45c], ebx
jle 0x49591f
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x44c], ebx
nop
mov eax, dword [esi + 0xfc]
mov ecx, dword [eax + 0x1c0]
sub ecx, dword [eax + 0x1bc]
add eax, 0x1b0
mov dword [ebp - 0x454], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x450], eax
jb 0x49584b
call fcn.004eaba2
push 0x30
lea ecx, [ebp - 0x444]
push ebx
push ecx
call fcn.004eb2d0
mov edx, dword [esi + 0x70]
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x448], edx
mov edx, dword [ebp - 0x44c]
mov eax, dword [ecx + edx + 0xc]
mov edx, dword [edi]
add esp, 0xc
lea ecx, [ebp - 0x448]
push ecx
push ebx
push 0x1132
push edx
mov dword [ebp - 0x444], 0xffff0002
mov dword [ebp - 0x440], 0x23
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x41c], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x450]
add dword [ebp - 0x44c], 0x18
inc eax
cmp eax, dword [ebp - 0x45c]
mov dword [ebp - 0x450], eax
jl 0x495810
cmp dword [ebp - 0x45c], ebx
jle 0x49591f
mov eax, dword [esi + 0x70]
push 0xf000
push eax
mov eax, dword [edi]
push 0x1127
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x49591f
mov ecx, dword [esi + 0x70]
push 1
push ecx
lea ecx, [esi + 0x3c]
call fcn.00492c30
cmp dword [0x541cc4], 8
mov eax, dword [0x541cb0]
jae 0x495932
mov eax, 0x541cb0
mov edx, dword [ebp - 0x464]
push eax
mov eax, dword [esi + 0xb8]
push edx
push 0x512140
push 0x100
push eax
call fcn.004eaa27
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0xb8]
xor eax, eax
add esp, 0x14
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x41c], eax
lea eax, [ebp - 0x43c]
push eax
push ebx
mov dword [ebp - 0x438], ecx
mov ecx, dword [edi]
push 0x113f
push ecx
mov dword [ebp - 0x43c], 4
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x418], edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 8], ebx
je 0x495ad8
mov eax, dword [ebp - 0x464]
cmp eax, ebx
jle 0x495b10
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x44c], ebx
mov eax, dword [esi + 0xfc]
mov ecx, dword [eax + 0x1f0]
sub ecx, dword [eax + 0x1ec]
add eax, 0x1e0
mov dword [ebp - 0x454], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x450], eax
jb 0x495a3c
call fcn.004eaba2
push 0x30
lea ecx, [ebp - 0x444]
push ebx
push ecx
call fcn.004eb2d0
mov edx, dword [esi + 0x78]
mov eax, dword [ebp - 0x454]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x448], edx
mov edx, dword [ebp - 0x44c]
mov eax, dword [edx + ecx + 0xc]
mov edx, dword [edi]
add esp, 0xc
lea ecx, [ebp - 0x448]
push ecx
push ebx
push 0x1132
push edx
mov dword [ebp - 0x444], 0xffff0002
mov dword [ebp - 0x440], 0x23
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x41c], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x450]
add dword [ebp - 0x44c], 0x18
inc eax
cmp eax, dword [ebp - 0x464]
mov dword [ebp - 0x450], eax
jl 0x495a01
cmp dword [ebp - 0x464], ebx
jle 0x495b10
mov eax, dword [esi + 0x78]
push 0xf000
push eax
mov eax, dword [edi]
push 0x1127
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
shr eax, 0xc
and eax, 0xf
sub eax, 1
je 0x495b10
mov ecx, dword [esi + 0x78]
push 1
push ecx
lea ecx, [esi + 0x3c]
call fcn.00492c30
push ebx
call dword [sym.imp.USER32.dll_LockWindowUpdate]
mov ecx, dword [edi]
mov edx, dword [esi + 0x68]
lea eax, [ebp - 0x43c]
push eax
push ebx
push 0x113f
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x418], ebx
push ecx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x438], edx
mov dword [ebp - 0x43c], 8
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], 0x2000
mov dword [ebp - 0x430], 0xf000
mov dword [ebp - 0x418], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esi + 0x68]
push 1
lea ecx, [esi + 0x3c]
push edx
call fcn.00492c30
mov edx, dword [edi]
mov eax, dword [esi + 0x70]
lea ecx, [ebp - 0x43c]
push ecx
push ebx
push 0x113f
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x418], ebx
push edx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x43c], 8
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], 0x2000
mov dword [ebp - 0x430], 0xf000
mov dword [ebp - 0x418], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0x70]
push 1
push eax
lea ecx, [esi + 0x3c]
call fcn.00492c30
mov ecx, dword [esi + 0x78]
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x418], ebx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x438], ecx
mov dword [ebp - 0x43c], 8
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], 0x2000
mov dword [ebp - 0x430], 0xf000
mov dword [ebp - 0x418], ebx
lea edx, [ebp - 0x43c]
mov eax, dword [edi]
push edx
push ebx
push 0x113f
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esi + 0x78]
push 1
push ecx
lea ecx, [esi + 0x3c]
call fcn.00492c30
mov ecx, dword [edi]
mov edx, dword [esi + 0x74]
lea eax, [ebp - 0x43c]
push eax
push ebx
push 0x113f
mov dword [ebp - 0x438], ebx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x430], ebx
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x418], ebx
push ecx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x438], edx
mov dword [ebp - 0x43c], 8
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x424], ebx
mov dword [ebp - 0x420], ebx
mov dword [ebp - 0x434], 0x2000
mov dword [ebp - 0x430], 0xf000
mov dword [ebp - 0x418], ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [esi + 0x74]
push 1
push edx
lea ecx, [esi + 0x3c]
call fcn.00492c30
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push ebx
push ebx
push 0x835
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ea5a8
mov esp, ebp
pop ebp
ret 4