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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100712db
mov eax, dword fs:[0]
push eax
sub esp, 0xec
push ebx
push esi
push edi
mov eax, dword [0x1008ab54]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 0xc]
push 0x10077b2c
lea ecx, [ebp - 0x18]
call fcn.10013140
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x18]
push 0x10079a6c
push ecx
mov dword [ebp - 4], 0
call fcn.10012ec0
mov eax, dword [ebp - 0x18]
add esp, 0xc
cmp dword [eax - 0xc], 0
jge 0x10024328
or eax, 0xffffffff
jmp 0x10024344
push str.Extensions
push eax
call fcn.10049be9
add esp, 8
test eax, eax
jne 0x1002433f
or eax, 0xffffffff
jmp 0x10024344
sub eax, dword [ebp - 0x18]
sar eax, 1
push eax
push 0
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x18]
call fcn.1001e310
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.1000d4b0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024383
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.10040589
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x1002439d
push 0x80004005
call fcn.10001100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 2
call fcn.10040589
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x100243ca
push 0x80004005
call fcn.10001100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 3
mov ecx, str.Baidu
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002440a
test dx, dx
je 0x10024406
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002440a
add eax, 4
add ecx, 4
test dx, dx
jne 0x100243e4
xor eax, eax
jmp 0x1002440f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1002442a
mov ecx, dword [ebp - 0x18]
push 0x1007ab50
push ecx
push str._s_s
lea edx, [ebp - 0x20]
push edx
jmp 0x100244ec
mov ecx, str.UCBrowser
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10024457
test dx, dx
je 0x10024453
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10024457
add eax, 4
add ecx, 4
test dx, dx
jne 0x10024431
xor eax, eax
jmp 0x1002445c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [ebp - 0x18]
jne 0x100244dd
cmp dword [eax - 0xc], 0
jge 0x1002446e
or eax, 0xffffffff
jmp 0x1002448a
push str.Default
push eax
call fcn.10049be9
add esp, 8
test eax, eax
jne 0x10024485
or eax, 0xffffffff
jmp 0x1002448a
sub eax, dword [ebp - 0x18]
sar eax, 1
push eax
push 0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x18]
call fcn.1001e310
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.1000d4b0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100244c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x18]
push 0x1007ab70
push ecx
push str._s_s
lea edx, [ebp - 0x20]
push edx
jmp 0x100244ec
push 0x1007ab88
push eax
push str._s_s
lea ecx, [ebp - 0x20]
push ecx
call fcn.10012ec0
add esp, 0x10
push 0x1007a4f8
push 0x10078c64
lea edx, [ebp - 0x20]
push edx
call fcn.10012630
mov eax, dword [0x10093428]
push ebx
push str.Preferences.un.
push eax
lea ecx, [ebp - 0x24]
push str._s_s_s
push ecx
call fcn.10012ec0
add esp, 0x14
push 0x1007a4f8
push 0x10078c64
lea edx, [ebp - 0x24]
push edx
call fcn.10012630
call fcn.10040589
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x10024551
push 0x80004005
call fcn.10001100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x18]
push 0x1007abcc
push ecx
lea edx, [ebp - 0x28]
push str._s_s
push edx
call fcn.10012ec0
mov esi, dword [ebp - 0x28]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 0x10
push esi
call edi
test eax, eax
je 0x10024668
mov ecx, str.Chrome
mov eax, ebx
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100245c6
test dx, dx
je 0x100245c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100245c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x100245a0
xor eax, eax
jmp 0x100245cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10024668
lea eax, [esi - 0x10]
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100245f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024616
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024639
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100253d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100253d5
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
push ebx
mov byte [ebp - 4], 6
call edi
cmp eax, 1
je 0x10024710
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100246a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100246c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100246e1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100253d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100253d5
push esi
call edi
cmp eax, 1
jne 0x1002471e
push esi
call fcn.10047be3
push 1
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
call fcn.10040589
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x10024744
push 0x80004005
call fcn.10001100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x64], eax
lea ecx, [ebp - 0x64]
push ecx
mov ecx, esi
mov byte [ebp - 4], 7
call fcn.100253f0
add esp, 4
cmp eax, 0xffffffff
jne 0x10024823
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10024791
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100247b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100247d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100247f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100253d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100253d5
and dword [ebp - 0x30], 0xfffffe00
mov dword [ebp - 0x2c], edi
mov byte [ebp - 4], 9
mov ebx, dword [ebp - 0x64]
add ebx, 0xfffffff0
push ebx
call fcn.1000f2a0
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 0xa
cmp dword [esi - 4], 1
jle 0x1002485f
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [ebp - 0x14]
call fcn.10001a90
mov esi, dword [ebp - 0x14]
push esi
lea ecx, [ebp - 0x60]
call fcn.10002770
mov eax, 0xf
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xe8], edi
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xb4], edi
mov byte [ebp - 0xc4], 0
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x84], edi
mov byte [ebp - 0x94], 0
mov byte [ebp - 0x7c], 1
mov byte [ebp - 0x7b], 0
push 0xffffffffffffffff
push edi
lea edx, [ebp - 0x60]
push edx
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0xc
call fcn.10002220
cmp dword [ebp - 0xb0], 0x10
mov eax, dword [ebp - 0xc4]
jae 0x100248f3
lea eax, [ebp - 0xc4]
mov ecx, dword [ebp - 0xb4]
lea edx, [ebp - 0x38]
push edx
add ecx, eax
push ecx
push eax
lea eax, [ebp - 0xf0]
push eax
call fcn.100370d0
test al, al
lea edi, [ebp - 0xf0]
sete byte [ebp - 0x39]
call fcn.1001c380
cmp dword [ebp - 0x48], 0x10
jb 0x10024930
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1003efae
add esp, 4
xor edi, edi
lea eax, [esi - 0x10]
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], edi
mov byte [ebp - 0x5c], 0
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10024960
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp - 0x39], 0
je 0x10024a2b
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.100336a0
mov byte [ebp - 4], 6
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024993
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100249b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100249d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100249fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100253d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100253d5
mov eax, dword [ebp + 0xc]
mov ecx, str.360SE6
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x10024a59
cmp dx, di
je 0x10024a55
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x10024a59
add eax, 4
add ecx, 4
cmp dx, di
jne 0x10024a33
xor eax, eax
jmp 0x10024a5e
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x10024a6c
mov ecx, 0x10093438
call fcn.10021620
push str.backup
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
cmp byte [eax + 8], 0
push str.backup
je 0x10024d4d
lea edx, [ebp - 0x38]
push edx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
cmp byte [eax + 8], 0
push str.backup
lea eax, [ebp - 0x38]
push eax
je 0x10024d3b
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
push eax
call fcn.10034210
cmp byte [eax + 8], 0
je 0x10024d19
and dword [ebp - 0x70], 0xfffffe00
mov dword [ebp - 0x6c], edi
mov byte [ebp - 4], 0xe
push str.backup
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
push eax
call fcn.10034210
mov ecx, eax
call fcn.10033de0
cmp edi, eax
jae 0x10024bd0
mov eax, 0x10093438
lea esi, [ebp - 0x14]
call fcn.100201e0
mov ebx, eax
push str.backup
lea edx, [ebp - 0x38]
push edx
mov byte [ebp - 4], 0xf
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
push eax
call fcn.10034210
push edi
push eax
call fcn.10033ea0
lea esi, [ebp - 0x60]
mov ecx, eax
call fcn.100337d0
mov esi, eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebx]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x10024b7a
mov eax, dword [eax + 4]
push eax
mov ecx, ebx
call fcn.10001a90
mov ecx, dword [ebx]
mov eax, esi
call fcn.100286e0
test eax, eax
lea ecx, [ebp - 0x60]
sete bl
call fcn.100027b0
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xe
call fcn.10001ba0
test bl, bl
je 0x10024d08
push str.backup
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
push eax
call fcn.10034210
lea esi, [ebp - 0x78]
call fcn.10033740
mov al, byte [ebp - 0x70]
test al, al
je 0x10024bdf
cmp al, 6
jne 0x10024d10
push str.backup
lea edx, [ebp - 0x38]
push edx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
lea ecx, [ebp - 0x58]
push ecx
mov ecx, eax
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
xor ebx, ebx
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x78]
call fcn.10033de0
cmp ebx, eax
jae 0x10024d10
mov eax, 0x10093438
lea esi, [ebp - 0x1c]
call fcn.100201e0
mov edi, eax
push ebx
lea edx, [ebp - 0x78]
push edx
mov byte [ebp - 4], 0x11
call fcn.10033ea0
lea esi, [ebp - 0x60]
mov ecx, eax
call fcn.100337d0
mov esi, eax
mov byte [ebp - 4], 0x12
mov eax, dword [edi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x10024c68
mov eax, dword [eax + 4]
push eax
mov ecx, edi
call fcn.10001a90
mov ecx, dword [edi]
mov eax, esi
call fcn.100286e0
test eax, eax
setne bl
cmp dword [ebp - 0x48], 0x10
jb 0x10024c88
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1003efae
add esp, 4
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10024cbd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x10024cfc
push str.backup
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
push eax
call fcn.10034210
mov edx, dword [ebp - 0x14]
mov esi, eax
push edx
lea eax, [ebp - 0x78]
push eax
call fcn.10033ea0
push eax
mov eax, esi
call fcn.100344d0
add dword [ebp - 0x14], 1
mov ebx, dword [ebp - 0x14]
jmp 0x10024c15
add edi, 1
jmp 0x10024ae3
mov byte [ebp - 4], 9
lea eax, [ebp - 0x78]
jmp 0x10024d5c
push str.backup
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.extensions
push eax
call fcn.10034210
push 0x1007ab44
mov ecx, eax
jmp 0x10024d50
call fcn.10034210
lea ecx, [ebp - 0x58]
push str.extensions
push ecx
mov ecx, eax
jmp 0x10024d54
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x58]
push edx
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
push str.extensions
lea eax, [ebp - 0x38]
push eax
call fcn.10034210
cmp byte [eax + 8], 0
push str.extensions
lea ecx, [ebp - 0x38]
je 0x10025195
push ecx
call fcn.10034210
push str.settings
push eax
call fcn.10034210
cmp byte [eax + 8], 0
je 0x10024e95
mov eax, 0x10093438
lea esi, [ebp - 0x1c]
call fcn.100201e0
mov esi, eax
mov byte [ebp - 4], 0x13
mov eax, dword [esi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x10024dc5
mov edx, dword [eax + 4]
push edx
mov ecx, esi
call fcn.10001a90
mov esi, dword [esi]
push str.extensions
lea eax, [ebp - 0x38]
push eax
call fcn.10034210
push str.settings
push eax
call fcn.10034210
push esi
push eax
call fcn.10034210
cmp byte [eax + 8], 0
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024e11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x10093438
lea esi, [ebp - 0x1c]
call fcn.100201e0
test bl, bl
mov esi, eax
je 0x10024e4f
push str.extensions
lea ecx, [ebp - 0x38]
push ecx
mov byte [ebp - 4], 0x14
call fcn.10034210
push str.settings
push eax
call fcn.10034210
mov edi, eax
call fcn.10001850
push eax
lea edx, [ebp - 0x58]
push edx
jmp 0x10024e78
push str.extensions
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x15
call fcn.10034210
push str.settings
push eax
call fcn.10034210
mov edi, eax
call fcn.10001850
push eax
lea ecx, [ebp - 0x58]
push ecx
mov ecx, edi
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 9
call fcn.10001ba0
jmp 0x10024ebb
push str.extensions
lea edx, [ebp - 0x38]
push edx
call fcn.10034210
push str.settings
lea ecx, [ebp - 0x58]
push ecx
mov ecx, eax
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
push str.extensions
lea edx, [ebp - 0x38]
push edx
call fcn.10034210
push str.toolbar
push eax
call fcn.10034210
cmp byte [eax + 8], 0
je 0x1002517a
and dword [ebp - 0x70], 0xfffffe00
xor ebx, ebx
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x14], ebx
push str.extensions
lea eax, [ebp - 0x38]
push eax
call fcn.10034210
push str.toolbar
push eax
call fcn.10034210
mov ecx, eax
call fcn.10033de0
cmp ebx, eax
jae 0x10024ff0
mov eax, 0x10093438
lea esi, [ebp - 0x1c]
call fcn.100201e0
mov edi, eax
push str.extensions
lea ecx, [ebp - 0x38]
push ecx
mov byte [ebp - 4], 0x18
call fcn.10034210
push str.toolbar
push eax
call fcn.10034210
push ebx
push eax
call fcn.10033ea0
lea esi, [ebp - 0x60]
mov ecx, eax
call fcn.100337d0
mov esi, eax
mov byte [ebp - 4], 0x19
mov eax, dword [edi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x10024f72
mov edx, dword [eax + 4]
push edx
mov ecx, edi
call fcn.10001a90
mov ecx, dword [edi]
mov eax, esi
call fcn.100286e0
test eax, eax
sete bl
cmp dword [ebp - 0x48], 0x10
jb 0x10024f92
mov eax, dword [ebp - 0x5c]
push eax
call fcn.1003efae
add esp, 4
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10024fc7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x100250b9
push str.extensions
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.toolbar
push eax
call fcn.10034210
lea esi, [ebp - 0x78]
call fcn.10033740
mov al, byte [ebp - 0x70]
test al, al
je 0x10024fff
cmp al, 6
jne 0x10025171
push str.extensions
lea edx, [ebp - 0x38]
push edx
call fcn.10034210
push str.toolbar
lea ecx, [ebp - 0x58]
push ecx
mov ecx, eax
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
xor ebx, ebx
mov dword [ebp - 0x14], ebx
lea ebx, [ebx]
lea ecx, [ebp - 0x78]
call fcn.10033de0
cmp ebx, eax
jae 0x10025171
mov eax, 0x10093438
lea esi, [ebp - 0x1c]
call fcn.100201e0
mov edi, eax
push ebx
lea edx, [ebp - 0x78]
push edx
mov byte [ebp - 4], 0x1a
call fcn.10033ea0
lea esi, [ebp - 0x60]
mov ecx, eax
call fcn.100337d0
mov ebx, eax
mov byte [ebp - 4], 0x1b
mov eax, dword [edi]
sub eax, 0x10
cmp dword [eax + 0xc], 1
jle 0x10025083
mov eax, dword [eax + 4]
push eax
mov ecx, edi
call fcn.10001a90
mov ecx, dword [edi]
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x10025090
sub eax, esi
mov esi, dword [ebx + 0x14]
mov edi, eax
mov eax, esi
cmp eax, esi
jae 0x100250a6
cmp esi, edi
mov eax, esi
jb 0x100250ae
mov eax, edi
cmp dword [ebx + 0x18], 0x10
jb 0x100250c5
mov edx, dword [ebx + 4]
jmp 0x100250c8
add dword [ebp - 0x14], 1
mov ebx, dword [ebp - 0x14]
jmp 0x10024ef1
lea edx, [ebx + 4]
push edx
call fcn.100056f0
add esp, 4
test eax, eax
jne 0x100250e7
cmp esi, edi
jae 0x100250de
or eax, 0xffffffff
jmp 0x100250e5
xor eax, eax
cmp esi, edi
setne al
test eax, eax
setne bl
cmp dword [ebp - 0x48], 0x10
jb 0x100250fc
mov ecx, dword [ebp - 0x5c]
push ecx
call fcn.1003efae
add esp, 4
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], 0
mov byte [ebp - 0x5c], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10025131
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x10025165
push str.extensions
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.toolbar
push eax
call fcn.10034210
mov edx, dword [ebp - 0x14]
mov esi, eax
push edx
lea eax, [ebp - 0x78]
push eax
call fcn.10033ea0
push eax
mov eax, esi
call fcn.100344d0
add dword [ebp - 0x14], 1
mov ebx, dword [ebp - 0x14]
jmp 0x10025030
mov byte [ebp - 4], 9
lea eax, [ebp - 0x78]
jmp 0x100251a1
push str.extensions
lea ecx, [ebp - 0x38]
push ecx
call fcn.10034210
push str.toolbar
lea edx, [ebp - 0x58]
push edx
mov ecx, eax
jmp 0x10025199
lea eax, [ebp - 0x58]
push eax
call fcn.10034500
lea eax, [ebp - 0x58]
call fcn.100336a0
lea esi, [ebp - 0x60]
lea edi, [ebp - 0x38]
call fcn.100348f0
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, eax
call fcn.10025550
add esp, 4
test eax, eax
sete bl
mov byte [ebp - 4], 9
cmp dword [ebp - 0x48], 0x10
jb 0x100251de
mov edx, dword [ebp - 0x5c]
push edx
call fcn.1003efae
add esp, 4
test bl, bl
je 0x100252ad
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.100336a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025215
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025238
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1002525b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1002527e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100253d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x100253d5
mov ebx, dword [ebp - 0x20]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push ebx
call edi
test eax, eax
je 0x100252c3
push ebx
call fcn.10047be3
mov esi, dword [ebp - 0x24]
push 1
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push esi
call edi
test eax, eax
je 0x100252dd
push esi
call fcn.10047be3
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 7
call fcn.100336a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1002530c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025332
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [esi - 0x10]
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025352
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025372
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10025398
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret