Function at 0x100315be
Capabilities:
Copy file

Disassembly:
push ebp
sub esp, 0x5c
mov eax, 0x100bef9b
call fcn.100a35ac
sub esp, 0x78
push ebx
push esi
push edi
mov edi, dword [ebp + 0x68]
mov dword [ebp - 0x10], esp
push dword [ebp + 0x6c]
xor esi, esi
push edi
mov ebx, ecx
mov dword [ebp - 4], esi
call fcn.10001ab7
cmp dword [ebx + 0x74], esi
je 0x100319f8
cmp dword [ebx + 0xa8], esi
je 0x100319f8
push str.TrackBannerLinkClickedEvent
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031651
lea ecx, [ebp - 0x84]
call fcn.10017d33
mov dword [ebp - 0x84], 0x100d0eac
lea eax, [ebx + 0x54]
push eax
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 1
call fcn.10004a20
mov ecx, dword [ebx + 0x74]
push ebx
push esi
lea eax, [ebp - 0x84]
push eax
call fcn.1006b2a3
lea ecx, [ebp - 0x84]
call fcn.100172a1
jmp 0x1003167b
push str.NotifyToolbarEvent
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031691
push ecx
mov ecx, esp
mov dword [ebp + 0x68], esp
push dword [ebp + 0x6c]
call fcn.10005f07
mov ecx, dword [ebx + 0xa8]
call fcn.1003b7c2
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add ebp, 0x60
leave
ret 8
push str.ApiLogin
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
je 0x10031e52
push str.ApiLogoff
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
je 0x10031e52
push str.SwitchHolderWindow
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x100316f5
mov eax, dword [ebx + 0xa8]
add eax, 0x30
push dword [eax]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1003167b
push dword [ebp + 0x6c]
mov eax, dword [ebx + 0xa8]
push dword [eax + 0x30]
call dword [sym.imp.USER32.dll_SetParent]
jmp 0x1003167b
push str.ExternalLoadDone
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x1003171e
mov eax, dword [ebp + 0x6c]
push dword [eax + 4]
mov ecx, dword [ebx + 0xa8]
push dword [eax]
call fcn.1003a63b
jmp 0x1003167b
push str.Banner_refresh
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031937
push 0x101185a8
lea ecx, [ebp + 0x68]
call fcn.1005a319
push esi
lea edi, [ebx + 0x80]
push str.http:__
mov ecx, edi
mov byte [ebp - 4], 2
call fcn.10003080
cmp eax, 0xffffffff
jne 0x1003185a
push esi
push 0x100cb62c
mov ecx, edi
call fcn.10003080
cmp eax, 0xffffffff
jne 0x1003185a
push str.about:blank
mov ecx, edi
call fcn.10002834
cmp eax, esi
je 0x1003185a
lea eax, [ebp + 0x48]
push eax
call fcn.100406df
pop ecx
push edi
push eax
lea eax, [ebp + 0x4c]
push eax
mov byte [ebp - 4], 3
call fcn.10005363
add esp, 0xc
mov ecx, dword [ebp + 0x48]
add ecx, 0xfffffff0
mov byte [ebp - 4], 5
call fcn.10001d29
lea eax, [ebp + 0x54]
push esi
push eax
call fcn.100404f4
pop ecx
pop ecx
push edi
push eax
lea eax, [ebp + 0x58]
push eax
mov byte [ebp - 4], 6
call fcn.10005363
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 7
call fcn.10004a20
mov ecx, dword [ebp + 0x58]
add ecx, 0xfffffff0
call fcn.10001d29
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
mov byte [ebp - 4], 5
call fcn.10001d29
push 1
push dword [ebp + 0x4c]
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp + 0x58]
push eax
call fcn.100406df
pop ecx
push eax
lea eax, [ebp + 0x54]
push str.file:__
push eax
mov byte [ebp - 4], 8
call fcn.1000d42c
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 9
call fcn.10004a20
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.10001d29
mov ecx, dword [ebp + 0x58]
add ecx, 0xfffffff0
call fcn.10001d29
mov ecx, dword [ebp + 0x4c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.10001d29
push edi
lea ecx, [ebp + 0x68]
call fcn.1000d4f1
mov edi, dword [ebp + 0x68]
push edi
call fcn.1009e73f
pop ecx
mov dword [ebp + 0x5c], eax
mov eax, dword [ebx + 0x74]
push 0xfde9
lea ecx, [eax + 0xb8]
mov eax, dword [ecx]
push 1
lea edx, [ebp + 0x5c]
push edx
call dword [eax + 0xbc]
push dword [ebp + 0x5c]
lea ecx, [ebp + 0x38]
call fcn.1000befb
lea eax, [ebp + 0x28]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov byte [ebp - 4], 0xb
cmp dword [ebp + 0x6c], esi
je 0x100318cd
push str.m_Second
push dword [ebp + 0x6c]
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x100318cd
mov eax, dword [ebx + 0xa8]
cmp byte [eax + 0x69], 0
jne 0x100318cd
mov byte [eax + 0x68], 1
mov eax, dword [ebx + 0xa8]
mov byte [eax + 0x69], 0
mov eax, dword [ebx + 0xa8]
add eax, 0x74
mov eax, dword [eax]
cmp eax, esi
jne 0x100318f0
push 0x80004003
call fcn.100a1cd0
mov ecx, dword [eax]
lea edx, [ebp + 0x28]
push edx
push edx
push edx
push edx
lea edx, [ebp + 0x38]
push edx
push eax
call dword [ecx + 0xd0]
mov ebx, dword [ebx + 0x74]
push dword [ebp + 0x5c]
lea ecx, [ebx + 0xb8]
mov eax, dword [ecx]
call dword [eax + 0xa8]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp + 0x28]
push eax
call esi
lea eax, [ebp + 0x38]
push eax
call esi
lea ecx, [edi - 0x10]
call fcn.10001d29
jmp 0x1003167b
push str.Banner_navigate
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031992
mov ebx, dword [ebx + 0xa8]
add ebx, 0x74
mov ebx, dword [ebx]
cmp ebx, esi
je 0x100318e6
push dword [ebp + 0x6c]
lea ecx, [ebp + 0x6c]
call fcn.100027e0
mov eax, dword [eax]
mov byte [ebp - 4], 0xc
cmp eax, esi
je 0x10031970
mov eax, dword [eax]
jmp 0x10031972
xor eax, eax
mov ecx, dword [ebx]
push esi
push esi
push esi
push esi
push eax
push ebx
call dword [ecx + 0x2c]
mov ecx, dword [ebp + 0x6c]
cmp ecx, esi
je 0x1003167b
call fcn.10003111
jmp 0x1003167b
push str.OnDownloadComplete
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031a68
mov dword [ebp + 0x6c], esi
mov eax, dword [ebx + 0xa8]
mov esi, dword [eax + 0x74]
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0xd
call fcn.1005a267
push eax
push esi
call fcn.1004831a
pop ecx
test eax, eax
mov eax, dword [ebp + 0x6c]
pop ecx
jge 0x100319e1
test eax, eax
mov byte [ebp - 4], 0
je 0x100319dd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xfffffffffffffff9
jmp 0x100319fa
test eax, eax
sete cl
test cl, cl
je 0x10031a00
test eax, eax
mov byte [ebp - 4], 0
je 0x100319f8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xfffffffffffffffd
pop eax
jmp 0x1003167d
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp + 0x38]
push eax
push ecx
lea eax, [ebp + 0x6c]
mov ecx, esp
mov dword [ebp + 0x68], esp
push eax
call fcn.10034c3b
push ecx
mov ecx, esp
mov dword [ebp + 0x50], esp
push str.DocumentComplete
mov byte [ebp - 4], 0xf
call fcn.10005f07
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1368]
mov ecx, dword [eax]
push eax
mov byte [ebp - 4], 0xe
call dword [ecx + 0x54]
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp + 0x6c]
test eax, eax
mov byte [ebp - 4], 0
je 0x1003167b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1003167b
mov esi, str.OnBeforeNavigate
push esi
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031adf
xor edi, edi
cmp dword [ebx + 0xa8], edi
je 0x1003167b
push esi
lea ecx, [ebx + 0x8c]
call fcn.10002834
cmp eax, edi
jne 0x1003167b
lea esi, [ebx + 0x88]
push 0x100cb0a0
mov ecx, esi
call fcn.10002834
cmp eax, edi
je 0x10031acd
mov esi, dword [esi]
mov ecx, dword [ebx + 0x74]
push edi
push esi
add ecx, 0x136c
call fcn.10003080
cmp eax, 0xffffffff
je 0x1003167b
push edi
mov eax, dword [ebx]
push str.Banner_refresh
mov ecx, ebx
call dword [eax + 0x58]
jmp 0x1003167b
mov esi, str.OnDocumentComplete
push esi
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x10031be2
push esi
lea ecx, [ebx + 0x8c]
call fcn.10002834
xor edi, edi
cmp eax, edi
jne 0x10031b4b
cmp dword [ebx + 0xa8], edi
je 0x1003167b
lea esi, [ebx + 0x88]
push 0x100cb0a0
mov ecx, esi
call fcn.10002834
cmp eax, edi
je 0x10031b44
mov esi, dword [esi]
mov ecx, dword [ebx + 0x74]
push edi
push esi
add ecx, 0x136c
call fcn.10003080
cmp eax, 0xffffffff
je 0x1003167b
push str.m_Second
jmp 0x10031ace
mov dword [ebp + 0x6c], edi
mov eax, dword [ebx + 0xa8]
mov esi, dword [eax + 0x74]
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0x10
call fcn.1005a267
push eax
push esi
call fcn.1004831a
pop ecx
cmp eax, edi
mov eax, dword [ebp + 0x6c]
pop ecx
jge 0x10031b7a
cmp eax, edi
jmp 0x100319d1
cmp eax, edi
sete cl
test cl, cl
je 0x10031b8a
cmp eax, edi
jmp 0x100319ec
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp + 0x38]
push eax
push ecx
lea eax, [ebp + 0x6c]
mov ecx, esp
mov dword [ebp + 0x68], esp
push eax
call fcn.10034c3b
push ecx
mov ecx, esp
mov dword [ebp + 0x50], esp
push str.DocumentComplete
mov byte [ebp - 4], 0x12
call fcn.10005f07
mov eax, dword [ebx + 0x74]
mov eax, dword [eax + 0x1368]
mov ecx, dword [eax]
push eax
mov byte [ebp - 4], 0x11
call dword [ecx + 0x54]
lea eax, [ebp + 0x38]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [ebp + 0x6c]
cmp eax, edi
jmp 0x10031a53
push str.OnTimer
push edi
call fcn.100a26ab
pop ecx
pop ecx
test eax, eax
jne 0x1003167b
cmp dword [ebx + 0x98], eax
jg 0x10031c09
mov eax, 0xfffffe6f
jmp 0x1003167d
mov eax, dword [ebx + 0xa4]
mov dword [ebp + 0x54], eax
lea eax, [ebp + 0x4c]
push eax
call fcn.100a6015
lea eax, [ebp + 0x54]
push eax
call fcn.100a7359
push 9
mov esi, eax
mov eax, dword [ebx + 0x98]
pop ecx
lea edi, [ebp - 0x34]
rep movsd dword es:[edi], dword [esi]
add dword [ebp - 0x30], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100a7118
add esp, 0xc
cmp eax, 0xffffffff
je 0x1003167b
push dword [ebp + 0x4c]
push eax
call fcn.100a6ea5
fcomp qword [0x100d19a0]
pop ecx
pop ecx
fnstsw ax
test ah, 5
jp 0x1003167b
mov eax, dword [ebx + 0xa8]
add eax, 0x74
xor edi, edi
cmp dword [eax], edi
sete al
test al, al
sete al
test al, al
je 0x1003167b
mov eax, dword [ebp + 0x4c]
push 0x101185a8
lea ecx, [ebp + 0x6c]
mov dword [ebx + 0xa4], eax
call fcn.1005a319
push edi
lea esi, [ebx + 0x80]
push str.http:__
mov ecx, esi
mov byte [ebp - 4], 0x13
call fcn.10003080
cmp eax, 0xffffffff
jne 0x10031d94
push edi
push 0x100cb62c
mov ecx, esi
call fcn.10003080
cmp eax, 0xffffffff
jne 0x10031d94
push str.about:blank
mov ecx, esi
call fcn.10002834
cmp eax, edi
je 0x10031d94
lea eax, [ebp + 0x58]
push eax
call fcn.100406df
pop ecx
push esi
push eax
lea eax, [ebp + 0x5c]
push eax
mov byte [ebp - 4], 0x14
call fcn.10005363
add esp, 0xc
mov ecx, dword [ebp + 0x58]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x16
call fcn.10001d29
lea eax, [ebp + 0x50]
push edi
push eax
call fcn.100404f4
pop ecx
pop ecx
push esi
push eax
lea eax, [ebp + 0x48]
push eax
mov byte [ebp - 4], 0x17
call fcn.10005363
add esp, 0xc
push eax
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0x18
call fcn.10004a20
mov ecx, dword [ebp + 0x48]
add ecx, 0xfffffff0
call fcn.10001d29
mov ecx, dword [ebp + 0x50]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x16
call fcn.10001d29
push 1
push dword [ebp + 0x5c]
push dword [ebp + 0x6c]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea eax, [ebp + 0x50]
push eax
call fcn.100406df
pop ecx
push eax
lea ecx, [ebp + 0x6c]
mov byte [ebp - 4], 0x19
call fcn.10004a20
mov ecx, dword [ebp + 0x50]
add ecx, 0xfffffff0
call fcn.10001d29
mov ecx, dword [ebp + 0x5c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x13
call fcn.10001d29
push esi
lea ecx, [ebp + 0x6c]
call fcn.1000d4f1
push dword [ebp + 0x6c]
call fcn.1009e73f
pop ecx
mov dword [ebp + 0x68], eax
mov eax, dword [ebx + 0x74]
push 0xfde9
lea ecx, [eax + 0xb8]
mov eax, dword [ecx]
push 1
lea edx, [ebp + 0x68]
push edx
call dword [eax + 0xbc]
push dword [ebp + 0x68]
lea ecx, [ebp + 0x6c]
call fcn.10004da9
mov eax, dword [ebx + 0x74]
push dword [ebp + 0x68]
lea ecx, [eax + 0xb8]
mov eax, dword [ecx]
call dword [eax + 0xa8]
push edi
lea ecx, [ebp + 0x6c]
call fcn.1000357f
push eax
lea ecx, [ebp + 0x38]
call fcn.1000befb
lea eax, [ebp + 0x28]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [ebx + 0xa8]
mov byte [eax + 0x69], 0
mov ebx, dword [ebx + 0xa8]
add ebx, 0x74
mov ebx, dword [ebx]
mov byte [ebp - 4], 0x1b
cmp ebx, edi
je 0x100318e6
mov eax, dword [ebx]
lea ecx, [ebp + 0x28]
push ecx
push ecx
push ecx
push ecx
lea ecx, [ebp + 0x38]
push ecx
push ebx
call dword [eax + 0xd0]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp + 0x28]
push eax
call esi
lea eax, [ebp + 0x38]
push eax
call esi
mov ecx, dword [ebp + 0x6c]
add ecx, 0xfffffff0
jmp 0x1003192d
mov ecx, dword [ebx + 0xa8]
call fcn.1003b614
jmp 0x1003167b