Function at 0x404310
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450d39
mov eax, dword fs:[0]
push eax
sub esp, 0x594
mov eax, dword [0x461194]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, ecx
mov ecx, dword [ebp + 0x50]
mov dword [ebp - 0x4b0], ebx
mov dword [ebp - 0x4cc], esi
mov dword [ebp - 0x4b4], eax
mov dword [ebp - 0x4c0], ecx
xor edi, edi
mov dword [ebp - 4], edi
push 3
mov dword [ebp - 0x4f4], edi
call fcn.004139b0
add esp, 4
call fcn.00413a20
cmp dword [0x462688], 0x10
mov ecx, dword [0x462674]
mov dword [ebp - 0x4fc], eax
jae 0x404395
mov ecx, 0x462674
push ecx
push 0x2722
push eax
call fcn.00413a60
add esp, 0xc
mov dword [ebp - 0x4d4], edi
push 0xffffffffffffffff
mov byte [ebp - 4], 2
push edi
xor edx, edx
push esi
lea eax, [ebp - 0x490]
mov dword [ebp - 0x478], 7
mov dword [ebp - 0x47c], edi
mov word [ebp - 0x48c], dx
call fcn.004030b0
lea eax, [ebp - 0x420]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor ecx, ecx
mov dword [ebp - 0x424], 7
mov dword [ebp - 0x428], edi
mov word [ebp - 0x438], cx
mov byte [ebp - 4], 4
cmp dword [ebx + 0x34], edi
jne 0x404442
cmp dword [esi + 0x18], 8
jb 0x404415
mov esi, dword [esi + 4]
jmp 0x404418
add esi, 4
lea edx, [ebp - 0x218]
push edx
push edi
push 0x45b368
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x404435
jmp 0x40448b
mov eax, 8
cmp dword [ebx + 0x38], eax
jb 0x404451
mov ebx, dword [ebx + 0x24]
jmp 0x404454
add ebx, 0x24
cmp dword [esi + 0x18], eax
jb 0x40445e
mov esi, dword [esi + 4]
jmp 0x404461
add esi, 4
push ebx
push esi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x218]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x404480
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x218]
lea esi, [ebp - 0x43c]
call fcn.00402fb0
xor ecx, ecx
push 0xc
mov eax, 0x45b540
lea esi, [ebp - 0x458]
mov dword [ebp - 0x440], 7
mov dword [ebp - 0x444], edi
mov word [ebp - 0x454], cx
call fcn.00402fb0
mov ebx, dword [ebp - 0x4b0]
push edi
add ebx, 4
push ebx
or eax, 0xffffffff
mov byte [ebp - 4], 5
call fcn.00404eb0
cmp dword [ebp - 0x440], 8
mov eax, dword [ebp - 0x454]
jae 0x4044f8
lea eax, [ebp - 0x454]
push eax
lea ecx, [ebp + 0x10]
call fcn.00408490
sub esp, 0x20
mov eax, esp
mov dword [eax], edi
mov ecx, dword [ebp + 0x30]
mov dword [ebp - 0x4b8], esp
cmp ecx, edi
je 0x404558
mov dword [eax], ecx
test cl, 1
je 0x404542
mov edx, dword [ebp + 0x38]
mov dword [eax + 8], edx
mov ecx, dword [ebp + 0x3c]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp + 0x40]
mov dword [eax + 0x10], edx
mov ecx, dword [ebp + 0x44]
mov dword [eax + 0x14], ecx
mov edx, dword [ebp + 0x48]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp + 0x4c]
mov dword [eax + 0x1c], ecx
jmp 0x404558
mov edx, dword [ebp + 0x30]
add eax, 8
push edi
push eax
and edx, 0xfffffffe
mov ecx, dword [edx]
lea eax, [ebp + 0x38]
push eax
call ecx
add esp, 0xc
lea esi, [ebp - 0x4fc]
call fcn.00407930
xor edx, edx
mov dword [ebp - 0x45c], 7
mov dword [ebp - 0x460], edi
mov word [ebp - 0x470], dx
mov byte [ebp - 4], 6
cmp dword [ebx + 0x18], 8
jb 0x40458b
mov edx, dword [ebx + 4]
jmp 0x40458e
lea edx, [ebx + 4]
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [ebp - 0x4b0]
push eax
mov eax, dword [ecx + 0x3c]
push eax
lea ecx, [ebp - 0x474]
push ecx
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x43c]
call fcn.004079b0
test eax, eax
je 0x404bc8
mov eax, dword [ebp - 0x460]
push str.text_html
mov edi, 9
lea ecx, [ebp - 0x474]
call fcn.00402de0
test eax, eax
jne 0x404a4a
mov eax, dword [ebp - 0x438]
mov edi, 8
cmp dword [ebp - 0x424], edi
jae 0x4045fc
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x5a0]
push ecx
call fcn.00408500
xor esi, esi
mov dword [ebp - 0x4c8], esi
mov dword [ebp - 0x4c4], esi
mov eax, dword [ebp - 0x4b0]
mov byte [ebp - 4], 8
cmp dword [eax + 0x34], esi
je 0x40466a
cmp dword [eax + 0x38], edi
jb 0x404630
mov eax, dword [eax + 0x24]
jmp 0x404633
add eax, 0x24
push eax
lea edx, [ebp - 0x4bc]
push edx
lea eax, [ebp - 0x5a0]
push eax
call fcn.00408580
lea edi, [ebp - 0x4c8]
mov byte [ebp - 4], 9
call fcn.00404e50
lea eax, [ebp - 0x4bc]
mov byte [ebp - 4], 8
call fcn.00404d40
jmp 0x40473d
push ebx
lea edi, [ebp - 0x4b8]
mov dword [ebp - 0x4b8], 0x3f
call fcn.00404fc0
push ebx
lea edi, [ebp - 0x4b8]
mov esi, eax
mov dword [ebp - 0x4b8], 0x2f
call fcn.00404fc0
cmp eax, 0xffffffff
je 0x40469e
inc eax
mov ecx, esi
cmp esi, 0xffffffff
je 0x4046a9
sub esi, eax
mov ecx, esi
push ebx
mov edx, eax
lea esi, [ebp - 0x4ac]
call fcn.00404dc0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x494], 8
mov eax, dword [ebp - 0x4a8]
jae 0x4046d0
lea eax, [ebp - 0x4a8]
push eax
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x5a0]
push edx
call fcn.00408580
lea edi, [ebp - 0x4c8]
mov byte [ebp - 4], 0xb
call fcn.00404e50
lea eax, [ebp - 0x504]
mov byte [ebp - 4], 0xa
call fcn.00404d40
mov byte [ebp - 4], 8
cmp dword [ebp - 0x494], 8
jb 0x40471e
mov eax, dword [ebp - 0x4a8]
push eax
call fcn.00431205
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x494], 7
mov dword [ebp - 0x498], 0
mov word [ebp - 0x4a8], cx
xor esi, esi
mov eax, dword [ebp - 0x4c8]
cmp eax, esi
je 0x404902
mov ecx, eax
lea edi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, si
jne 0x404750
sub ecx, edi
sar ecx, 1
push ecx
mov esi, ebx
call fcn.00402fb0
mov edx, dword [ebp - 0x4c0]
push edx
sub esp, 0x20
lea ecx, [ebp + 0x30]
mov esi, esp
mov dword [ebp - 0x4b8], esp
call fcn.00404df0
sub esp, 0x20
lea ecx, [ebp + 0x10]
mov esi, esp
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x4c0], esp
call fcn.00404df0
mov edx, dword [ebp - 0x4b4]
mov ecx, dword [ebp - 0x4b0]
mov eax, dword [ecx]
mov eax, dword [eax]
push edx
mov edx, dword [ebp - 0x4cc]
push edx
mov byte [ebp - 4], 8
call eax
mov dword [ebp - 0x4b4], eax
lea eax, [ebp - 0x4c8]
mov byte [ebp - 4], 7
call fcn.00404d40
lea ecx, [ebp - 0x5a0]
push ecx
mov byte [ebp - 4], 6
call fcn.0040b080
mov esi, 8
cmp dword [ebp - 0x45c], esi
jb 0x4047f7
mov edx, dword [ebp - 0x470]
push edx
call fcn.00431205
add esp, 4
xor ebx, ebx
xor eax, eax
mov edi, 7
mov dword [ebp - 0x45c], edi
mov dword [ebp - 0x460], ebx
mov word [ebp - 0x470], ax
cmp dword [ebp - 0x440], esi
jb 0x40482a
mov ecx, dword [ebp - 0x454]
push ecx
call fcn.00431205
add esp, 4
xor edx, edx
mov dword [ebp - 0x440], edi
mov dword [ebp - 0x444], ebx
mov word [ebp - 0x454], dx
cmp dword [ebp - 0x424], esi
jb 0x404856
mov eax, dword [ebp - 0x438]
push eax
call fcn.00431205
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x424], edi
mov dword [ebp - 0x428], ebx
mov word [ebp - 0x438], cx
cmp dword [ebp - 0x478], esi
jb 0x404882
mov edx, dword [ebp - 0x48c]
push edx
call fcn.00431205
add esp, 4
xor eax, eax
lea esi, [ebp - 0x4fc]
mov dword [ebp - 0x478], edi
mov dword [ebp - 0x47c], ebx
mov word [ebp - 0x48c], ax
mov byte [ebp - 4], 1
call fcn.004078f0
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x4048ce
test al, 1
jne 0x4048cb
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x4048cb
lea ecx, [ebp + 0x18]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov dword [ebp + 0x10], ebx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x30]
cmp eax, ebx
je 0x4048f7
test al, 1
jne 0x4048f7
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x4048f7
lea ecx, [ebp + 0x38]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov eax, dword [ebp - 0x4b4]
jmp 0x404d1c
lea eax, [ebp - 0x4c8]
mov byte [ebp - 4], 7
call fcn.00404d40
lea eax, [ebp - 0x5a0]
push eax
mov byte [ebp - 4], 6
call fcn.0040b080
mov ebx, 8
cmp dword [ebp - 0x45c], ebx
jb 0x40493d
mov ecx, dword [ebp - 0x470]
push ecx
call fcn.00431205
add esp, 4
xor edx, edx
mov edi, 7
mov dword [ebp - 0x45c], edi
mov dword [ebp - 0x460], esi
mov word [ebp - 0x470], dx
cmp dword [ebp - 0x440], ebx
jb 0x40496e
mov eax, dword [ebp - 0x454]
push eax
call fcn.00431205
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x440], edi
mov dword [ebp - 0x444], esi
mov word [ebp - 0x454], cx
cmp dword [ebp - 0x424], ebx
jb 0x40499a
mov edx, dword [ebp - 0x438]
push edx
call fcn.00431205
add esp, 4
xor eax, eax
mov dword [ebp - 0x424], edi
mov dword [ebp - 0x428], esi
mov word [ebp - 0x438], ax
cmp dword [ebp - 0x478], ebx
jb 0x4049c6
mov ecx, dword [ebp - 0x48c]
push ecx
call fcn.00431205
add esp, 4
mov dword [ebp - 0x478], edi
xor edx, edx
xor edi, edi
lea esi, [ebp - 0x4fc]
mov dword [ebp - 0x47c], edi
mov word [ebp - 0x48c], dx
mov byte [ebp - 4], 1
call fcn.004078f0
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x404a15
test al, 1
jne 0x404a12
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, edi
je 0x404a12
lea ecx, [ebp + 0x18]
push 2
push ecx
mov edx, ecx
push edx
call eax
add esp, 0xc
mov dword [ebp + 0x10], edi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x30]
cmp eax, edi
je 0x404d17
test al, 1
jne 0x404d17
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, edi
je 0x404d17
push 2
lea ecx, [ebp + 0x38]
push ecx
mov edx, ecx
push edx
jmp 0x404d12
mov ecx, dword [ebp - 0x4cc]
lea eax, [ebp - 0x43c]
push eax
call fcn.00408990
add esp, 4
xor ebx, ebx
test eax, eax
jne 0x404a74
mov ecx, dword [ebp - 0x4b0]
cmp dword [ecx + 0x34], ebx
je 0x404bca
mov edi, 8
cmp dword [ebp - 0x45c], edi
jb 0x404a90
mov edx, dword [ebp - 0x470]
push edx
call fcn.00431205
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x45c], esi
mov dword [ebp - 0x460], ebx
mov word [ebp - 0x470], ax
cmp dword [ebp - 0x440], edi
jb 0x404ac1
mov ecx, dword [ebp - 0x454]
push ecx
call fcn.00431205
add esp, 4
xor edx, edx
mov dword [ebp - 0x440], esi
mov dword [ebp - 0x444], ebx
mov word [ebp - 0x454], dx
cmp dword [ebp - 0x424], edi
jb 0x404aed
mov eax, dword [ebp - 0x438]
push eax
call fcn.00431205
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x428], ebx
mov word [ebp - 0x438], cx
cmp dword [ebp - 0x478], edi
jb 0x404b19
mov edx, dword [ebp - 0x48c]
push edx
call fcn.00431205
add esp, 4
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4fc]
xor eax, eax
push ecx
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x47c], ebx
mov word [ebp - 0x48c], ax
call fcn.00413b40
mov eax, dword [ebp - 0x4f4]
add esp, 4
cmp eax, ebx
je 0x404b6f
test al, 1
jne 0x404b69
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404b69
lea edx, [ebp - 0x4ec]
push 2
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
mov dword [ebp - 0x4f4], ebx
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x404b98
test al, 1
jne 0x404b95
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404b95
lea edx, [ebp + 0x18]
push 2
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
mov dword [ebp + 0x10], ebx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x30]
cmp eax, ebx
je 0x404bc1
test al, 1
jne 0x404bc1
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404bc1
lea edx, [ebp + 0x38]
push 2
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
xor eax, eax
jmp 0x404d1c
xor ebx, ebx
mov edi, 8
cmp dword [ebp - 0x45c], edi
jb 0x404be6
mov edx, dword [ebp - 0x470]
push edx
call fcn.00431205
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x45c], esi
mov dword [ebp - 0x460], ebx
mov word [ebp - 0x470], ax
cmp dword [ebp - 0x440], edi
jb 0x404c17
mov ecx, dword [ebp - 0x454]
push ecx
call fcn.00431205
add esp, 4
xor edx, edx
mov dword [ebp - 0x440], esi
mov dword [ebp - 0x444], ebx
mov word [ebp - 0x454], dx
cmp dword [ebp - 0x424], edi
jb 0x404c43
mov eax, dword [ebp - 0x438]
push eax
call fcn.00431205
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x428], ebx
mov word [ebp - 0x438], cx
cmp dword [ebp - 0x478], edi
jb 0x404c6f
mov edx, dword [ebp - 0x48c]
push edx
call fcn.00431205
add esp, 4
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4fc]
xor eax, eax
push ecx
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x47c], ebx
mov word [ebp - 0x48c], ax
call fcn.00413b40
mov eax, dword [ebp - 0x4f4]
add esp, 4
cmp eax, ebx
je 0x404cc5
test al, 1
jne 0x404cbf
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404cbf
lea edx, [ebp - 0x4ec]
push 2
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
mov dword [ebp - 0x4f4], ebx
mov byte [ebp - 4], 0
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x404cee
test al, 1
jne 0x404ceb
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404ceb
lea edx, [ebp + 0x18]
push 2
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
mov dword [ebp + 0x10], ebx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x30]
cmp eax, ebx
je 0x404d17
test al, 1
jne 0x404d17
and eax, 0xfffffffe
mov eax, dword [eax]
cmp eax, ebx
je 0x404d17
push 2
lea edx, [ebp + 0x38]
push edx
mov ecx, edx
push ecx
call eax
add esp, 0xc
mov eax, 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00430e4c
mov esp, ebp
pop ebp
ret 0x4c