Function at 0x408050
Capabilities:
Get common file path

Disassembly:
mov eax, 0x42017a
call fcn.00417e88
sub esp, 0x59c
mov eax, dword [0x428108]
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x4f0], ebx
xor esi, esi
inc esi
mov dword [ebp - 4], esi
call dword [0x428d2c]
push 0x422ca0
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x4f8], eax
call fcn.004021b9
sub esp, 0x1c
mov byte [ebp - 4], 2
lea eax, [ebp + 0x10]
mov ecx, esp
mov dword [ebp - 0x4f0], esp
push eax
call fcn.00402833
lea eax, [ebp - 0x51c]
push 0x3d
push eax
call fcn.004070e9
add esp, 0x24
lea ecx, [ebp - 0x51c]
mov byte [ebp - 4], 3
call fcn.0040bfb8
cmp eax, 2
jae 0x40810a
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
call fcn.00402833
lea ecx, [ebp - 0x51c]
call fcn.0040c78f
push ebx
push esi
lea ecx, [ebp - 0x68]
call fcn.004027ea
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x408103
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
push esi
jmp 0x408840
mov eax, dword [ebp - 0x518]
add eax, 0x1c
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402833
mov dword [ebp - 0x508], ebx
mov dword [ebp - 0x504], ebx
mov dword [ebp - 0x500], ebx
mov dword [ebp - 0x4d0], ebx
mov dword [ebp - 0x4f0], ebx
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 7
call fcn.0040be32
mov esi, eax
mov eax, dword [ebp - 0x4d0]
cmp eax, ebx
je 0x40815b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x4d0]
push ecx
mov dword [ebp - 0x4d0], ebx
mov eax, dword [esi]
push esi
call dword [eax + 0x20]
cmp dword [ebp - 0x4d0], ebx
je 0x408707
mov dword [ebp - 0x4d4], ebx
mov byte [ebp - 4], 8
push 0x423acc
mov word [ebp - 0x24], 8
call fcn.00415d10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 9
cmp dword [ebp - 0x4d0], ebx
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x4081b7
push 0x80004003
call fcn.00415c90
mov eax, dword [ebp - 0x4d4]
cmp eax, ebx
mov esi, dword [ebp - 0x4d0]
mov dword [ebp - 0x4d8], esi
je 0x4081d3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x4d4]
push ecx
sub esp, 0x10
mov dword [ebp - 0x4d4], ebx
mov eax, dword [esi]
mov edi, esp
push dword [ebp - 0x4d8]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x30]
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 8
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jge 0x40820f
push eax
call fcn.00415c90
cmp dword [ebp - 0x4d0], ebx
je 0x408239
push ecx
lea eax, [ebp - 0x4d4]
mov esi, esp
mov dword [ebp - 0x4dc], esp
call fcn.0040d8dd
lea eax, [ebp - 0x50c]
push eax
call fcn.00407f35
pop ecx
pop ecx
push 0x423ac8
mov word [ebp - 0x24], 8
call fcn.00415d10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x4d0], ebx
lea esi, [ebp - 0x24]
lea edi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jne 0x40826c
push 0x80004003
call fcn.00415c90
mov eax, dword [ebp - 0x4d4]
cmp eax, ebx
mov esi, dword [ebp - 0x4d0]
mov dword [ebp - 0x4d8], esi
je 0x408288
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x4d4]
push ecx
sub esp, 0x10
mov dword [ebp - 0x4d4], ebx
mov eax, dword [esi]
mov edi, esp
push dword [ebp - 0x4d8]
lea esi, [ebp - 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [eax + 0x30]
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 8
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebx
jge 0x4082c4
push eax
call fcn.00415c90
cmp dword [ebp - 0x4d0], ebx
je 0x4082ee
push ecx
lea eax, [ebp - 0x4d4]
mov esi, esp
mov dword [ebp - 0x4dc], esp
call fcn.0040d8dd
lea eax, [ebp - 0x50c]
push eax
call fcn.00407f35
pop ecx
pop ecx
cmp dword [ebp - 0x508], ebx
je 0x4086f3
mov eax, dword [ebp - 0x504]
sub eax, dword [ebp - 0x508]
sar eax, 2
je 0x4086f3
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4e4], ebx
mov eax, dword [ebp - 0x4fc]
cmp dword [ebp - 0x4e4], eax
jge 0x4086f3
mov esi, 0x422ca0
push esi
lea ecx, [ebp - 0x30]
call fcn.004021b9
push esi
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xb
call fcn.004021b9
mov ecx, dword [ebp - 0x4e4]
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x508]
lea esi, [eax + ecx*4]
push esi
lea ecx, [ebp - 0x4d8]
mov dword [ebp - 0x4dc], esi
call fcn.0040d947
push esi
lea ecx, [ebp - 0x4f4]
mov byte [ebp - 4], 0xd
call fcn.0040d987
mov byte [ebp - 4], 0xe
mov edi, dword [ebp - 0x4d8]
cmp edi, ebx
je 0x40840a
push 0x423398
lea esi, [ebp - 0x4ec]
call fcn.00413505
mov ecx, esi
push ecx
mov byte [ebp - 4], 0xf
mov eax, dword [edi]
push edi
call dword [eax + 0x44]
push dword [ebp - 0x4ec]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x4083fb
mov esi, dword [ebp - 0x4ec]
cmp esi, ebx
jne 0x4083c6
xor eax, eax
jmp 0x4083f2
push esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and eax, 0xfffffffc
call fcn.00417de0
mov eax, esp
mov dword [ebp - 0x10], esp
push dword [ebp - 0x4f8]
push edi
push esi
mov esi, eax
call fcn.00404b4c
push eax
lea ecx, [ebp - 0x30]
call fcn.004024cd
mov byte [ebp - 4], 0xe
push dword [ebp - 0x4ec]
jmp 0x408492
mov edi, dword [ebp - 0x4f4]
cmp edi, ebx
je 0x408498
push 0x423398
lea esi, [ebp - 0x4e8]
call fcn.00413505
mov ecx, esi
push ecx
mov byte [ebp - 4], 0x10
mov eax, dword [edi]
push edi
call dword [eax + 0x4c]
push dword [ebp - 0x4e8]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x408488
mov esi, dword [ebp - 0x4e8]
cmp esi, ebx
jne 0x408453
xor eax, eax
jmp 0x40847f
push esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and eax, 0xfffffffc
call fcn.00417de0
mov eax, esp
mov dword [ebp - 0x10], esp
push dword [ebp - 0x4f8]
push edi
push esi
mov esi, eax
call fcn.00404b4c
push eax
lea ecx, [ebp - 0x30]
call fcn.004024cd
mov byte [ebp - 4], 0xe
push dword [ebp - 0x4e8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, 0x422ca0
push edi
lea esi, [ebp - 0x30]
call fcn.0040dd94
test eax, eax
je 0x408579
lea eax, [ebp - 0x4c]
push eax
sub esp, 0x1c
mov eax, esi
mov ecx, esp
mov dword [ebp - 0x4e0], esp
push eax
call fcn.00402833
call fcn.00408f1a
add esp, 0x20
push edi
lea esi, [ebp - 0x4c]
call fcn.0040dd94
test eax, eax
jne 0x408579
mov byte [ebp - 4], 0x11
mov byte [ebp - 0x4cc], bl
mov ecx, 0x103
lea edi, [ebp - 0x4cb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x4cc]
push eax
push 0x40f
call dword [sym.imp.KERNEL32.DLL_GetTempPathA]
lea eax, [ebp - 0x4cc]
push eax
push ebx
push str.capcha
push eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameA]
lea eax, [ebp - 0x4cc]
push eax
mov eax, dword [ebp - 0x4dc]
mov eax, dword [eax]
cmp eax, ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x4e0], esp
mov dword [ecx], eax
je 0x408542
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
push ecx
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x4e0], esp
push eax
call fcn.00402243
call fcn.004057d0
add esp, 0xc
cmp eax, ebx
jne 0x408579
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004024cd
jmp 0x408579
push 0x422ca0
lea esi, [ebp - 0x4c]
mov dword [ebp - 4], 0xe
call fcn.0040dd94
test eax, eax
je 0x4086a5
cmp dword [ebp - 0x34], 0x10
mov eax, dword [ebp - 0x48]
jae 0x4085a1
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x554]
push eax
call fcn.00409139
pop ecx
pop ecx
mov esi, eax
push 0x423ab8
lea ecx, [ebp - 0x538]
mov byte [ebp - 4], 0x13
call fcn.004021b9
mov edi, eax
push str.actionput_imagehkey
lea ecx, [ebp - 0x570]
mov byte [ebp - 4], 0x14
call fcn.004021b9
lea ecx, [ebp - 0xa0]
push ecx
push eax
lea eax, [ebp - 0x58c]
push eax
mov byte [ebp - 4], 0x15
call fcn.0040d9c7
push edi
push eax
lea eax, [ebp - 0x5a8]
push eax
mov byte [ebp - 4], 0x16
call fcn.0040d9c7
push esi
push eax
lea eax, [ebp - 0xbc]
push eax
mov byte [ebp - 4], 0x17
call fcn.0040d9c7
add esp, 0x24
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x5a8]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0x58c]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0x570]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0x538]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0x554]
mov byte [ebp - 4], 0x19
call fcn.004027ea
sub esp, 0x1c
lea eax, [ebp - 0xbc]
mov ecx, esp
mov dword [ebp - 0x4e0], esp
push eax
call fcn.00402833
lea eax, [ebp - 0x84]
push eax
call fcn.0040689b
add esp, 0x20
push ebx
push esi
lea ecx, [ebp - 0x84]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0xbc]
call fcn.004027ea
jmp 0x4086a8
xor esi, esi
inc esi
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x4f4]
cmp eax, ebx
je 0x4086bc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x4d8]
cmp eax, ebx
je 0x4086d0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
push esi
lea ecx, [ebp - 0x4c]
call fcn.004027ea
push ebx
push esi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 8
call fcn.004027ea
inc dword [ebp - 0x4e4]
jmp 0x40831b
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x4d4]
cmp eax, ebx
je 0x408707
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xffffffffffffffff
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x4e0], esp
push 0x423394
call fcn.004021b9
sub esp, 0x1c
mov byte [ebp - 4], 0x1e
mov ecx, esp
mov dword [ebp - 0x4dc], esp
push 0x423a9c
call fcn.004021b9
sub esp, 0x1c
lea eax, [ebp + 0x10]
mov ecx, esp
mov dword [ebp - 0x4fc], esp
push eax
mov byte [ebp - 4], 0x1f
call fcn.00402833
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 7
call fcn.00408cc9
add esp, 0x60
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x20
call fcn.0040258d
push ebx
push 1
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 7
call fcn.004027ea
xor edi, edi
cmp dword [ebp + 0x28], 0x10
mov eax, dword [ebp + 0x14]
jae 0x408794
lea eax, [ebp + 0x14]
push 0x42916c
push eax
call fcn.0041edf0
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x4087ba
push 0x1388
call fcn.00401568
inc edi
cmp edi, 0x1e
pop ecx
jl 0x408788
jmp 0x4087ca
push esi
lea ecx, [ebp - 0x68]
call fcn.004024cd
push esi
call fcn.0041657f
pop ecx
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x68]
push eax
call fcn.00402833
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x4f0]
cmp eax, ebx
je 0x4087ea
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x4d0]
cmp eax, ebx
je 0x4087fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea esi, [ebp - 0x50c]
call fcn.0040c816
push ebx
push 1
lea ecx, [ebp - 0xa0]
call fcn.004027ea
lea ecx, [ebp - 0x51c]
call fcn.0040c78f
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.004027ea
mov byte [ebp - 4], bl
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x40883d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push ebx
push 1
lea ecx, [ebp + 0x10]
call fcn.004027ea
mov eax, dword [ebp + 8]
lea esp, [ebp - 0x5b4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.004177c2
pop edi
pop esi
pop ebx
leave
ret