Function at 0x456f20
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55a15c
mov eax, dword fs:[0]
push eax
sub esp, 0x1e8
mov eax, dword [0x5c7cec]
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 ecx, dword [ebp + 0x10]
mov eax, ecx
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1d0], edi
cmp dword [ecx + 0x14], 8
mov dword [ebp - 0x1ec], ecx
mov dword [ebp - 0x1e4], 0
mov dword [ecx + 0x10], 0
jb 0x456f7e
mov eax, dword [ecx]
xor ecx, ecx
mov word [eax], cx
cmp dword [esi + 0x10], ecx
je 0x4572f0
lea ebx, [edi + 0x10]
mov dword [ebp - 0x1d8], ebx
cmp dword [ebx], ecx
je 0x4572f0
push 0x20019
push str.mailto_shellopencommand
xorps xmm0, xmm0
lea ecx, [ebp - 0x24]
push 0x80000000
movq qword [ebp - 0x24], xmm0
call fcn.0040b870
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 1
push eax
push 0
lea ecx, [ebp - 0x24]
call fcn.0041e700
test eax, eax
jne 0x4572e0
cmp dword [ebp - 0x2c], eax
je 0x4572e0
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0049e3d0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 2
push eax
push eax
call fcn.004264a0
add esp, 0x10
test al, al
je 0x4572d8
cmp dword [ebp - 0x40], 8
lea eax, [ebp - 0x54]
cmovae eax, dword [ebp - 0x54]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4572d8
xor eax, eax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 7
mov word [ebp - 0x6c], ax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 3
push eax
push esi
call fcn.004264a0
add esp, 8
test al, al
je 0x4572d0
lea eax, [ebp - 0xb4]
push edi
push eax
call fcn.0049e3d0
lea eax, [ebp - 0xb4]
mov byte [ebp - 4], 4
push eax
push eax
call fcn.004264a0
add esp, 0x10
test al, al
je 0x4572c5
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00456680
add esp, 8
test al, al
je 0x4572c5
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00456680
add esp, 8
test al, al
je 0x4572c5
mov eax, dword [ebx]
cmp eax, dword [ebp - 0x2c]
jb 0x4572c5
push 2
xor eax, eax
mov dword [ebp - 0x8c], 0
push 0x575728
lea ecx, [ebp - 0x9c]
mov dword [ebp - 0x88], 7
mov word [ebp - 0x9c], ax
call fcn.00408740
cmp dword [ebp - 0x88], 8
lea ebx, [ebp - 0x9c]
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x3c]
cmovae ebx, dword [ebp - 0x9c]
cmp dword [ebp - 0x28], 8
mov esi, dword [ebp - 0x8c]
cmovae ecx, dword [ebp - 0x3c]
mov byte [ebp - 4], 5
mov dword [ebp - 0x1dc], ecx
cmp esi, eax
ja 0x45735f
test esi, esi
jne 0x45722b
xor edx, edx
mov ecx, dword [ebp - 0x2c]
lea eax, [edx + esi]
mov esi, dword [ebp - 0x1d8]
sub ecx, eax
mov dword [ebp - 0x1f4], ecx
mov esi, dword [esi]
mov dword [ebp - 0x1d8], esi
cmp eax, esi
ja 0x4572ba
cmp dword [ebp - 0x28], 8
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 0x1d0]
mov ebx, edx
cmovae ecx, dword [ebp - 0x3c]
cmp esi, edx
cmovb ebx, esi
mov esi, dword [eax + 0x14]
mov dword [ebp - 0x1e8], esi
cmp esi, 8
jb 0x45718d
mov edi, dword [eax]
cmp edx, ebx
mov esi, ebx
cmovb esi, edx
test esi, esi
je 0x4571b5
sub edi, ecx
nop word [eax + eax]
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x4572ba
add ecx, 2
sub esi, 1
jne 0x4571a0
cmp ebx, edx
jb 0x4572ba
ja 0x4572ba
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
mov ecx, dword [ebp - 0x8c]
cmovae eax, dword [ebp - 0x3c]
add ecx, edx
lea edi, [eax + ecx*2]
mov ebx, edi
mov dword [ebp - 0x1d4], edi
lea ecx, [ebx + 2]
mov ax, word [ebx]
add ebx, 2
test ax, ax
jne 0x4571e4
mov eax, dword [ebp - 0x1d0]
sub ebx, ecx
sar ebx, 1
mov esi, eax
mov dword [ebp - 0x1e0], eax
cmp dword [eax + 0x14], 8
jb 0x45720f
mov esi, dword [eax]
mov dword [ebp - 0x1e0], esi
test ebx, ebx
jne 0x457370
mov ecx, dword [ebp - 0x1d8]
or esi, 0xffffffff
cmp ecx, 0xffffffff
cmovb esi, ecx
jmp 0x457409
sub eax, esi
mov edx, ecx
inc eax
lea eax, [ecx + eax*2]
mov dword [ebp - 0x1d4], eax
nop dword [eax]
sub eax, edx
sar eax, 1
je 0x457261
movzx ecx, word [ebx]
nop dword [eax]
cmp word [edx], cx
je 0x457312
add edx, 2
sub eax, 1
jne 0x457250
mov edi, dword [ebp - 0x1d0]
cmp dword [ebp - 0x28], 8
lea edx, [ebp - 0x3c]
cmovae edx, dword [ebp - 0x3c]
cmp dword [edi + 0x14], 8
jb 0x45727a
mov edi, dword [edi]
mov esi, dword [ebp - 0x1d8]
mov esi, dword [esi]
cmp esi, dword [ebp - 0x2c]
jne 0x4572ba
test esi, esi
je 0x4572a1
sub edi, edx
nop dword [eax]
mov ax, word [edi + edx]
cmp ax, word [edx]
jne 0x4572ba
add edx, 2
sub esi, 1
jne 0x457290
mov ecx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x54]
push eax
call fcn.00428c90
mov dword [ebp - 0x1e4], 1
lea ecx, [ebp - 0x9c]
call fcn.00408e50
lea ecx, [ebp - 0xb4]
call fcn.00408e50
lea ecx, [ebp - 0x6c]
call fcn.00408e50
lea ecx, [ebp - 0x54]
call fcn.00408e50
lea ecx, [ebp - 0x3c]
call fcn.00408e50
lea ecx, [ebp - 0x24]
call fcn.0040b8f0
mov al, byte [ebp - 0x1e4]
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.0040154f
mov esp, ebp
pop ebp
ret
test edx, edx
je 0x457261
mov ecx, ebx
test esi, esi
je 0x457335
mov edi, edx
sub edi, ebx
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x45734b
add ecx, 2
sub esi, 1
jne 0x457324
sub edx, dword [ebp - 0x1dc]
mov edi, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x8c]
sar edx, 1
jmp 0x457362
mov esi, dword [ebp - 0x8c]
add edx, 2
mov eax, dword [ebp - 0x1d4]
jmp 0x457240
or edx, 0xffffffff
cmp edx, 0xffffffff
jne 0x457141
jmp 0x457267
mov eax, dword [ebp - 0x1d8]
cmp ebx, eax
ja 0x4572ba
movzx edi, word [edi]
sub eax, ebx
or ecx, 0xffffffff
mov dword [ebp - 0x1f0], edi
cmp eax, ecx
cmovb ecx, eax
lea esi, [esi + ecx*2]
mov ecx, dword [ebp - 0x1e0]
mov eax, esi
sub eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x1dc], eax
cmp word [esi], di
jne 0x4573eb
mov ecx, dword [ebp - 0x1d4]
mov edi, ebx
test ebx, ebx
je 0x4573fb
nop dword [eax]
mov ax, word [eax + ecx]
cmp ax, word [ecx]
jne 0x4573d9
add ecx, 2
sub edi, 1
je 0x4573fb
mov eax, dword [ebp - 0x1dc]
jmp 0x4573c0
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1e0]
mov edi, dword [ebp - 0x1f0]
cmp esi, ecx
je 0x4572ba
sub esi, 2
sub eax, 2
jmp 0x4573a2
sub esi, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1d8]
sar esi, 1
cmp esi, 0xffffffff
je 0x4572ba
mov eax, dword [ebp - 0x1f4]
add eax, esi
cmp eax, ecx
jne 0x4572ba
cmp esi, edx
jbe 0x4572ba
xor eax, eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 7
mov word [ebp - 0x84], ax
cmp ecx, edx
jb 0x4578ab
mov eax, dword [ebp - 0x1d0]
sub esi, edx
sub ecx, edx
cmp ecx, esi
cmovb esi, ecx
cmp dword [ebp - 0x1e8], 8
jb 0x457463
mov eax, dword [eax]
push esi
lea eax, [eax + edx*2]
push eax
lea ecx, [ebp - 0x84]
call fcn.00408740
push 7
xor eax, eax
mov byte [ebp - 4], 6
push str.mailto:
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 7
mov word [ebp - 0xcc], ax
call fcn.00408740
cmp dword [ebp - 0xb8], 8
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 7
cmovae ecx, dword [ebp - 0xcc]
mov edx, ecx
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4574c3
mov ebx, dword [ebp - 0xbc]
lea edi, [ebp - 0x84]
sub edx, esi
sar edx, 1
cmp dword [ebp - 0x74], ebx
cmovb ebx, dword [ebp - 0x74]
cmp dword [ebp - 0x70], 8
mov esi, ebx
cmovae edi, dword [ebp - 0x84]
cmp edx, ebx
cmovb esi, edx
test esi, esi
je 0x457515
sub edi, ecx
nop dword [eax]
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x4576af
add ecx, 2
sub esi, 1
jne 0x457500
cmp ebx, edx
jb 0x4576af
ja 0x4576af
movq xmm0, qword [str._t_n_v_]
lea esi, [ebp - 0x1c]
mov eax, dword [0x575748]
lea ecx, [esi + 2]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
nop
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x457540
mov ebx, dword [ebp - 0x84]
lea edi, [ebp - 0x84]
sub esi, ecx
cmp dword [ebp - 0x70], 8
cmovae edi, ebx
sar esi, 1
mov dword [ebp - 0x1e8], edi
je 0x457604
mov ebx, dword [ebp - 0x74]
test ebx, ebx
je 0x4575fe
push 0x100
lea eax, [ebp - 0x1cc]
push 0
push eax
call fcn.005290f0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1d4], 0x100
mov edx, ecx
mov eax, ecx
add esp, 0xc
lea edx, [edx + esi*2]
cmp eax, edx
je 0x4575d2
nop word [eax + eax]
movzx eax, word [ecx]
cmp ax, word [ebp - 0x1d4]
jae 0x45766c
movzx eax, al
add ecx, 2
mov byte [ebp + eax - 0x1cc], 1
cmp ecx, edx
jne 0x4575b0
lea edx, [edi + ebx*2]
mov ecx, edi
cmp edi, edx
jae 0x4575fe
mov ebx, dword [ebp - 0x1d4]
movzx eax, word [ecx]
cmp ax, bx
jae 0x4575f7
cmp byte [ebp + eax - 0x1cc], 0
jne 0x4576a2
add ecx, 2
cmp ecx, edx
jb 0x4575e1
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x54]
cmp ecx, eax
je 0x457622
cmp dword [ebp - 0x40], 8
push dword [ebp - 0x44]
cmovae eax, dword [ebp - 0x54]
push eax
call fcn.00408740
mov dword [ebp - 0x1e4], 1
mov eax, dword [ebp - 0xb8]
mov byte [ebp - 4], 8
cmp eax, 8
jb 0x4576d4
mov edx, dword [ebp - 0xcc]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4576ca
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578b0
jmp 0x4576ca
lea ebx, [edi + ebx*2]
mov ecx, edi
cmp edi, ebx
jae 0x457695
lea eax, [ebp - 0x1c]
mov edx, esi
test esi, esi
je 0x45768e
movzx edi, word [ecx]
cmp word [eax], di
je 0x45769a
add eax, 2
sub edx, 1
jne 0x457681
add ecx, 2
cmp ecx, ebx
jb 0x457675
or ecx, 0xffffffff
jmp 0x4576a6
sub ecx, dword [ebp - 0x1e8]
jmp 0x4576a4
sub ecx, edi
sar ecx, 1
cmp ecx, 0xffffffff
je 0x4575fe
lea ecx, [ebp - 0xcc]
call fcn.00408e50
lea ecx, [ebp - 0x84]
call fcn.00408e50
jmp 0x4572ba
push ecx
push edx
call fcn.004097e6
add esp, 8
mov eax, dword [ebp - 0x70]
mov byte [ebp - 4], 9
cmp eax, 8
jb 0x45770f
lea ecx, [eax*2 + 2]
mov eax, ebx
cmp ecx, 0x1000
jb 0x457705
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578b5
push ecx
push ebx
call fcn.004097e6
add esp, 8
mov eax, dword [ebp - 0x88]
mov byte [ebp - 4], 0xa
cmp eax, 8
jb 0x457753
mov edx, dword [ebp - 0x9c]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x457749
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578ba
push ecx
push edx
call fcn.004097e6
add esp, 8
mov edx, dword [ebp - 0xa0]
mov byte [ebp - 4], 0xb
cmp edx, 8
jb 0x457797
mov ecx, dword [ebp - 0xb4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45778d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578ba
push edx
push ecx
call fcn.004097e6
add esp, 8
xor eax, eax
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 7
mov word [ebp - 0xb4], ax
mov edx, dword [ebp - 0x58]
mov byte [ebp - 4], 0xc
cmp edx, 8
jb 0x4577f2
mov ecx, dword [ebp - 0x6c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4577e8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578ba
push edx
push ecx
call fcn.004097e6
add esp, 8
xor eax, eax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 7
mov word [ebp - 0x6c], ax
mov edx, dword [ebp - 0x40]
mov byte [ebp - 4], 0xd
cmp edx, 8
jb 0x457844
mov ecx, dword [ebp - 0x54]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45783a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578ba
push edx
push ecx
call fcn.004097e6
add esp, 8
xor eax, eax
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 7
mov word [ebp - 0x54], ax
mov edx, dword [ebp - 0x28]
mov byte [ebp - 4], 0xe
cmp edx, 8
jb 0x457892
mov ecx, dword [ebp - 0x3c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x457888
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4578ba
push edx
push ecx
call fcn.004097e6
add esp, 8
xor eax, eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 7
mov word [ebp - 0x3c], ax
jmp 0x4572e8
call fcn.00472980
call fcn.0052cae1
call fcn.0052cae1
call fcn.0052cae1
int3