Function at 0x446935
Capabilities:
Check if file exists
Copy file

Disassembly:
push ebp
sub esp, 0x80
lea ebp, [esp - 4]
mov eax, dword [0x571268]
xor eax, ebp
mov dword [ebp + 0x80], eax
push 0x8c
mov eax, 0x51a388
call fcn.004ec730
mov edi, ecx
lea eax, [edi + 4]
xor ebx, ebx
push eax
lea esi, [ebp + 0x10]
mov dword [ebp], edi
mov byte [ebp + 0xf], bl
call fcn.00405639
push 0xffffffffffffffff
push ebx
lea eax, [edi + 0x20]
mov ecx, esi
mov dword [ebp - 4], ebx
call fcn.00404feb
call fcn.00411dd9
cmp byte [eax], bl
jne 0x4469fe
lea eax, [ebp - 0x98]
push eax
call fcn.004071c6
mov eax, esi
push eax
push 0x525218
lea eax, [ebp - 0x90]
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_from
push eax
mov byte [ebp - 4], 1
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.00405173
pop ecx
pop ecx
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040574e
lea edi, [ebp + 0x64]
mov byte [ebp - 4], 2
call fcn.00405549
push ebx
push 1
mov esi, edi
call fcn.0040754f
lea eax, [ebp - 0x98]
mov byte [ebp - 4], bl
call fcn.00405a60
jmp 0x446b2e
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 3
call fcn.00405430
mov byte [ebp - 4], 4
call fcn.00411dd9
lea ecx, [ebp + 0x64]
call fcn.00405346
mov byte [ebp - 4], 5
cmp dword [eax + 0x18], 8
jb 0x446a2e
mov esi, dword [eax + 4]
jmp 0x446a31
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x5251c8
push eax
call fcn.004058d5
pop ecx
pop ecx
push esi
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x5251c0
push eax
call fcn.004058d5
pop ecx
pop ecx
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_from
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x525218
push eax
call fcn.004058d5
pop ecx
pop ecx
lea ecx, [ebp + 0x10]
push ecx
push eax
call fcn.00405173
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp + 0x64]
mov byte [ebp - 4], 4
call fcn.0040754f
lea eax, [ebp + 4]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 6
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
cmp al, bl
je 0x446ae1
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040532c
push 0x23b
push str..FirefoxBrowser.cpp
push eax
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 7
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp + 0x64]
call fcn.0040754f
lea ecx, [ebp + 4]
mov byte [ebp - 4], 4
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 3
call fcn.0040539b
mov dword [ebp - 4], ebx
jmp 0x446b2e
push 7
pop eax
xor ecx, ecx
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x40], ebx
mov word [ebp + 0x30], cx
mov dword [ebp + 0x60], eax
xor eax, eax
mov dword [ebp + 0x5c], ebx
mov word [ebp + 0x4c], ax
lea eax, [ebp + 0x48]
push eax
lea eax, [ebp + 0x2c]
push eax
mov byte [ebp - 4], 0xb
call fcn.00446284
mov eax, dword [ebp + 0x30]
pop ecx
pop ecx
push 8
pop esi
cmp dword [ebp + 0x44], esi
jae 0x446b6a
lea eax, [ebp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x446d64
mov eax, dword [ebp]
push 0xffffffffffffffff
push ebx
add eax, 0x20
lea ecx, [ebp + 0x2c]
call fcn.00404feb
mov ecx, dword [ebp + 0x30]
cmp dword [ebp + 0x44], esi
jae 0x446b96
lea ecx, [ebp + 0x30]
mov eax, dword [ebp + 0x14]
cmp dword [ebp + 0x28], esi
jae 0x446ba1
lea eax, [ebp + 0x14]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
setne byte [ebp + 0xf]
call fcn.00411dd9
cmp byte [eax], bl
jne 0x446c2e
lea eax, [ebp - 0x98]
push eax
call fcn.004071c6
lea eax, [ebp + 0x2c]
push eax
push 0x525218
lea eax, [ebp - 0x90]
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_to
push eax
mov byte [ebp - 4], 0xc
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.00405173
pop ecx
pop ecx
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040574e
lea edi, [ebp + 0x64]
mov byte [ebp - 4], 0xd
call fcn.00405549
push ebx
push 1
mov esi, edi
call fcn.0040754f
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xb
call fcn.00405a60
jmp 0x446d64
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0xe
call fcn.00405430
mov byte [ebp - 4], 0xf
call fcn.00411dd9
lea ecx, [ebp + 0x64]
call fcn.00405346
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x18], esi
jb 0x446c5d
mov esi, dword [eax + 4]
jmp 0x446c60
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x5251c8
push eax
call fcn.004058d5
pop ecx
pop ecx
push esi
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x5251c0
push eax
call fcn.004058d5
pop ecx
pop ecx
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_to
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x525218
push eax
call fcn.004058d5
pop ecx
pop ecx
lea ecx, [ebp + 0x2c]
push ecx
push eax
call fcn.00405173
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp + 0x64]
mov byte [ebp - 4], 0xf
call fcn.0040754f
lea eax, [ebp + 4]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x11
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
cmp al, bl
je 0x446d10
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040532c
push 0x243
push str..FirefoxBrowser.cpp
push eax
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x12
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp + 0x64]
call fcn.0040754f
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0xf
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0xe
call fcn.0040539b
mov dword [ebp - 4], 0xb
jmp 0x446d64
cmp dword [ebp + 0x5c], ebx
je 0x44727a
call fcn.00411dd9
cmp byte [eax], bl
jne 0x446dd2
lea eax, [ebp - 0x98]
push eax
call fcn.004071c6
lea eax, [ebp - 0x90]
push str.CFirefoxBrowser::CopyXmlToProgramFiles_firefox_version_is_less_than_21
push eax
mov byte [ebp - 4], 0x15
call fcn.004058d5
pop ecx
pop ecx
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040574e
lea edi, [ebp + 0x64]
mov byte [ebp - 4], 0x16
call fcn.00405549
push ebx
push 1
mov esi, edi
call fcn.0040754f
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xb
call fcn.00405a60
jmp 0x446ef0
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x17
call fcn.00405430
mov byte [ebp - 4], 0x18
call fcn.00411dd9
lea ecx, [ebp + 0x64]
call fcn.00405346
mov byte [ebp - 4], 0x19
cmp dword [eax + 0x18], 8
jb 0x446e02
mov esi, dword [eax + 4]
jmp 0x446e05
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x5251c8
push eax
call fcn.004058d5
pop ecx
pop ecx
push esi
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x5251c0
push eax
call fcn.004058d5
pop ecx
pop ecx
push str.CFirefoxBrowser::CopyXmlToProgramFiles_firefox_version_is_less_than_21
push eax
call fcn.004058d5
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp + 0x64]
mov byte [ebp - 4], 0x18
call fcn.0040754f
lea eax, [ebp + 4]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x1a
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
cmp al, bl
je 0x446e9c
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040532c
push 0x247
push str..FirefoxBrowser.cpp
push eax
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x1b
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp + 0x64]
call fcn.0040754f
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x18
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x17
call fcn.0040539b
mov dword [ebp - 4], 0xb
jmp 0x446ef0
cmp dword [ebp + 0x60], 8
mov eax, dword [ebp + 0x4c]
jae 0x446efc
lea eax, [ebp + 0x4c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x44709b
call fcn.00411dd9
cmp byte [eax], bl
jne 0x446f70
lea eax, [ebp - 0x98]
push eax
call fcn.004071c6
lea eax, [ebp - 0x90]
push str.CFirefoxBrowser::CopyXmlToProgramFiles_create_browser_folder
push eax
mov byte [ebp - 4], 0x1e
call fcn.004058d5
pop ecx
pop ecx
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040574e
lea edi, [ebp + 0x64]
mov byte [ebp - 4], 0x1f
call fcn.00405549
push ebx
push 1
mov esi, edi
call fcn.0040754f
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xb
call fcn.00405a60
jmp 0x44708e
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x20
call fcn.00405430
mov byte [ebp - 4], 0x21
call fcn.00411dd9
lea ecx, [ebp + 0x64]
call fcn.00405346
mov byte [ebp - 4], 0x22
cmp dword [eax + 0x18], 8
jb 0x446fa0
mov esi, dword [eax + 4]
jmp 0x446fa3
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x5251c8
push eax
call fcn.004058d5
pop ecx
pop ecx
push esi
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x5251c0
push eax
call fcn.004058d5
pop ecx
pop ecx
push str.CFirefoxBrowser::CopyXmlToProgramFiles_create_browser_folder
push eax
call fcn.004058d5
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp + 0x64]
mov byte [ebp - 4], 0x21
call fcn.0040754f
lea eax, [ebp + 4]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x23
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
cmp al, bl
je 0x44703a
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040532c
push 0x24a
push str..FirefoxBrowser.cpp
push eax
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x24
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp + 0x64]
call fcn.0040754f
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x21
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x20
call fcn.0040539b
mov dword [ebp - 4], 0xb
jmp 0x44708e
lea eax, [ebp + 0x48]
push 1
push eax
call fcn.0046612e
pop ecx
pop ecx
mov eax, dword [ebp]
push 0xffffffffffffffff
push ebx
add eax, 0x20
lea ecx, [ebp + 0x48]
call fcn.00404feb
cmp dword [ebp + 0x60], 8
mov ecx, dword [ebp + 0x4c]
jae 0x4470b8
lea ecx, [ebp + 0x4c]
cmp dword [ebp + 0x28], 8
mov eax, dword [ebp + 0x14]
jae 0x4470c4
lea eax, [ebp + 0x14]
push ebx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
setne byte [ebp + 0xf]
call fcn.00411dd9
cmp byte [eax], bl
jne 0x447151
lea eax, [ebp - 0x98]
push eax
call fcn.004071c6
lea eax, [ebp + 0x48]
push eax
push 0x525218
lea eax, [ebp - 0x90]
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_to
push eax
mov byte [ebp - 4], 0x27
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.004058d5
pop ecx
pop ecx
push eax
call fcn.00405173
pop ecx
pop ecx
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040574e
lea edi, [ebp + 0x64]
mov byte [ebp - 4], 0x28
call fcn.00405549
push ebx
push 1
mov esi, edi
call fcn.0040754f
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xb
call fcn.00405a60
jmp 0x44727a
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x29
call fcn.00405430
mov byte [ebp - 4], 0x2a
call fcn.00411dd9
lea ecx, [ebp + 0x64]
call fcn.00405346
mov byte [ebp - 4], 0x2b
cmp dword [eax + 0x18], 8
jb 0x447181
mov esi, dword [eax + 4]
jmp 0x447184
lea esi, [eax + 4]
lea eax, [ebp - 0x90]
push 0x5251c8
push eax
call fcn.004058d5
pop ecx
pop ecx
push esi
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x5251c0
push eax
call fcn.004058d5
pop ecx
pop ecx
push str.CFirefoxBrowser::CopyXmlToProgramFiles___Copy_to
push eax
call fcn.004058d5
pop ecx
pop ecx
push 0x525218
push eax
call fcn.004058d5
pop ecx
pop ecx
lea ecx, [ebp + 0x48]
push ecx
push eax
call fcn.00405173
pop ecx
pop ecx
push ebx
push 1
lea esi, [ebp + 0x64]
mov byte [ebp - 4], 0x2a
call fcn.0040754f
lea eax, [ebp + 4]
push eax
call sub.log4cplusU.dll_public:_static_class_log4cplus::Logger___cdecl_log4cplus::Logger::getRoot_void_
pop ecx
mov esi, 0x2710
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x2c
call sub.log4cplusU.dll_public:_bool___thiscall_log4cplus::Logger::isEnabledFor_int_const
cmp al, bl
je 0x447234
lea eax, [ebp + 0x64]
push eax
lea ecx, [ebp - 0x90]
call fcn.0040532c
push 0x24f
push str..FirefoxBrowser.cpp
push eax
push esi
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x2d
call sub.log4cplusU.dll_public:_void___thiscall_log4cplus::Logger::forcedLog_int__class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___char_const___int_const
push ebx
push 1
lea esi, [ebp + 0x64]
call fcn.0040754f
lea ecx, [ebp + 4]
mov byte [ebp - 4], 0x2a
call sub.log4cplusU.dll_public_virtual:_void___thiscall_log4cplus::Logger::destructor_void_
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 0x29
call fcn.0040539b
jmp 0x44727a
push ebx
push 1
lea esi, [ebp + 0x48]
call fcn.0040754f
push ebx
push 1
lea esi, [ebp + 0x2c]
call fcn.0040754f
push ebx
push 1
lea esi, [ebp + 0x10]
call fcn.0040754f
mov al, byte [ebp + 0xf]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x80]
xor ecx, ebp
call fcn.004e6e1c
add ebp, 0x84
leave
ret