Function at 0x47d550
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5164e7
mov eax, dword fs:[0]
push eax
sub esp, 0xfbc
mov eax, dword [0x577680]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0xf48], edi
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0xf18], eax
mov eax, dword [ebp + 0x14]
xor esi, esi
mov dword [ebp - 0xf30], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xf14], esi
cmp byte [edi + 0xf1], 0
mov dword [ebp - 0xf2c], edi
mov dword [ebp - 0xf6c], ebx
mov dword [ebp - 0xf3c], ecx
mov dword [ebp - 0xf10], eax
jne 0x47dc85
push ecx
mov ecx, edi
call fcn.00492b20
push 0x53457c
lea eax, [ebp - 0xf24]
push ebx
push eax
call fcn.00402b40
add esp, 0xc
lea ecx, [ebp - 0xee4]
push ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0xeec], eax
mov eax, dword [ebp - 0xf24]
add eax, 0xfffffff0
or ebx, 0xffffffff
mov dword [ebp - 0xefc], eax
lea edx, [eax + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47d630
mov ecx, dword [eax]
push dword [ebp - 0xefc]
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0xeec], 0xffffffff
je 0x47dc45
lea ecx, [ecx]
test byte [ebp - 0xee4], 0x10
je 0x47d735
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf00], eax
lea eax, [ebp - 0xeb8]
mov dword [ebp - 4], 0
test eax, 0xffff0000
jne 0x47d6a1
movzx eax, ax
push 0
push eax
call fcn.00403070
add esp, 8
test eax, eax
je 0x47d6d2
lea edx, [ebp - 0xeb8]
movzx ecx, dx
push ecx
push eax
lea ecx, [ebp - 0xf00]
call fcn.00408b00
jmp 0x47d6d2
lea ecx, [ebp - 0xeb8]
lea edx, [ecx + 2]
lea ebx, [ebx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d6b0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0xeb8]
push eax
lea ecx, [ebp - 0xf00]
call fcn.0040c730
lea eax, [ebp - 0xf00]
push 0x52afb8
or esi, 1
push eax
mov dword [ebp - 4], 1
mov dword [ebp - 0xf14], esi
call fcn.0047a200
add esp, 8
test al, al
je 0x47d735
lea eax, [ebp - 0xeb8]
push eax
lea ecx, [ebp - 0xf20]
call fcn.00401c30
push 0x534584
or esi, 2
push eax
mov dword [ebp - 4], 2
mov dword [ebp - 0xf14], esi
call fcn.0047a200
add esp, 8
mov byte [ebp - 0xef1], 1
test al, al
jne 0x47d73c
mov byte [ebp - 0xef1], 0
mov edx, dword [ebp - 0xf14]
mov dword [ebp - 4], 1
test dl, 2
je 0x47d77c
mov esi, dword [ebp - 0xf20]
add esi, 0xfffffff0
and edx, 0xfffffffd
mov dword [ebp - 0xf14], edx
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d77c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf14]
mov dword [ebp - 4], 0xffffffff
test dl, 1
je 0x47d7b0
and edx, 0xfffffffe
mov dword [ebp - 0xf14], edx
mov edx, dword [ebp - 0xf00]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d7b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xef1], 0
je 0x47dc24
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xef0], eax
lea eax, [ebp - 0xeb8]
mov dword [ebp - 4], 3
test eax, 0xffff0000
jne 0x47d808
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47d833
push esi
push eax
lea ecx, [ebp - 0xef0]
call fcn.00408b00
jmp 0x47d833
lea ecx, [ebp - 0xeb8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d811
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0xeb8]
push eax
lea ecx, [ebp - 0xef0]
call fcn.0040c730
push 0x52a1a0
push dword [ebp - 0xf6c]
lea eax, [ebp - 0xf84]
push eax
mov dword [ebp - 4], 4
call fcn.00402b40
lea ecx, [ebp - 0xef0]
push ecx
push eax
lea eax, [ebp - 0xf0c]
push eax
mov byte [ebp - 4], 5
call fcn.00402a80
add esp, 0x18
mov edx, dword [ebp - 0xf84]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d88f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xef0]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47d8b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0xf18]
lea eax, [ebp - 0xf38]
push eax
mov ecx, edi
call fcn.004841f0
push dword [ebp - 0xf38]
lea ecx, [edi + 0x7c]
push str.__BROWSER_NAME__
mov byte [ebp - 4], 9
call fcn.00408eb0
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf08], eax
mov eax, str.binstaller.js
mov byte [ebp - 4], 0xa
test eax, 0xffff0000
jne 0x47d924
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47d936
push esi
push eax
lea ecx, [ebp - 0xf08]
call fcn.00408b00
jmp 0x47d936
push 0xe
push str.binstaller.js
lea ecx, [ebp - 0xf08]
call fcn.0040c730
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov byte [ebp - 4], 0xb
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf34], eax
mov eax, str.jsli
mov byte [ebp - 4], 0xc
test eax, 0xffff0000
jne 0x47d981
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47d993
push esi
push eax
lea ecx, [ebp - 0xf34]
call fcn.00408b00
jmp 0x47d993
push 6
push str.jsli
lea ecx, [ebp - 0xf34]
call fcn.0040c730
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov byte [ebp - 4], 0xd
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf1c], eax
lea eax, [ebp - 0xf0c]
push eax
lea eax, [ebp - 0xf1c]
push eax
lea eax, [ebp - 0xf70]
push eax
mov byte [ebp - 4], 0xe
call fcn.0046cc80
lea ecx, [ebp - 0xf34]
push ecx
push eax
lea eax, [ebp - 0xf88]
push eax
mov byte [ebp - 4], 0xf
call fcn.0046cc80
lea ecx, [ebp - 0xf08]
push ecx
push eax
lea eax, [ebp - 0xefc]
push eax
mov byte [ebp - 4], 0x10
call fcn.0046cc80
add esp, 0x24
push dword [ebp + 0x1c]
mov ecx, edi
push eax
mov byte [ebp - 4], 0x11
call fcn.0040a510
mov edx, dword [ebp - 0xefc]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47da30
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf88]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xf
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47da53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf70]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47da76
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf1c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47da99
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf34]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xb
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dabc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf08]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dadf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xef0], esi
push 0x534604
lea eax, [ebp - 0xef0]
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x12
call fcn.00402b40
lea ecx, [ebp - 0xf38]
push ecx
push eax
lea eax, [ebp - 0xf04]
push eax
mov byte [ebp - 4], 0x13
call fcn.00402a80
push 0x534604
push eax
lea eax, [ebp - 0xf28]
push eax
mov byte [ebp - 4], 0x14
call fcn.00402b40
add esp, 0x24
push str.___BROWSER_NAME___
push dword [eax]
lea ecx, [edi + 0x7c]
mov byte [ebp - 4], 0x15
call fcn.00408eb0
mov edx, dword [ebp - 0xf28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47db78
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47db9b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x12
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dbbe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dbdb
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf38]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dbfe
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf0c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dc24
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xee4]
push eax
push dword [ebp - 0xeec]
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov esi, dword [ebp - 0xf14]
test eax, eax
jne 0x47d640
mov ecx, dword [0x578ad4]
lea eax, [ecx + 1]
imul eax, ecx
cdq
mov ecx, 0x14
idiv ecx
cmp edx, 5
jne 0x47dea4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
jmp 0x47dea4
push 0x534608
lea ecx, [ebp - 0xf0c]
call fcn.00401c30
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov dword [ebp - 4], 0x16
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xeec], eax
push dword [ebp - 0xf3c]
lea eax, [ebp - 0xeec]
push eax
lea eax, [ebp - 0xf04]
push eax
mov byte [ebp - 4], 0x17
call fcn.0046cc80
lea ecx, [ebp - 0xf0c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x18
call fcn.0046cc80
add esp, 0x18
lea ecx, [edi + 0xb0]
push ecx
lea edx, [edi + 0xac]
push edx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x19
call fcn.0040a030
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 0x18
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x47dd2a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dd4d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x16
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dd70
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf0c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dd96
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push str.manifest.json
lea ecx, [ebp - 0xf0c]
call fcn.00401c30
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov dword [ebp - 4], 0x1a
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xeec], eax
push dword [ebp - 0xf3c]
lea eax, [ebp - 0xeec]
push eax
lea eax, [ebp - 0xf04]
push eax
mov byte [ebp - 4], 0x1b
call fcn.0046cc80
lea ecx, [ebp - 0xf0c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x1c
call fcn.0046cc80
add esp, 0x18
lea ecx, [edi + 0xb0]
push ecx
lea ecx, [edi + 0xac]
push ecx
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1d
call fcn.0040a030
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1c
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de38
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1b
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de5b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47de7e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf0c]
add edx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47dea4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0xb98], 0xf
mov dword [ebp - 0xb9c], 0
mov byte [ebp - 0xbac], 0
lea eax, [ebp - 0xbac]
push eax
mov dword [ebp - 4], 0x1e
call fcn.00498950
add esp, 4
mov dword [ebp - 0xbe0], 0xf
mov dword [ebp - 0xbe4], 0
mov byte [ebp - 0xbf4], 0
mov dword [ebp - 0xbc8], 0xf
mov dword [ebp - 0xbcc], 0
mov byte [ebp - 0xbdc], 0
mov dword [ebp - 0xbb0], 0xf
mov dword [ebp - 0xbb4], 0
mov byte [ebp - 0xbc4], 0
lea eax, [ebp - 0xbac]
push eax
push dword [0x572b10]
lea ecx, [ebp - 0xbf4]
push 0x572ad0
mov byte [ebp - 4], 0x1f
call fcn.00499e20
lea ecx, [ebp - 0xc94]
call fcn.0046d2e0
push 0
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x20
call fcn.004707b0
push 0
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x21
call fcn.004707b0
mov byte [ebp - 4], 0x22
mov byte [ebp - 0xef1], 1
mov dword [ebp - 0xf34], 3
lea esp, [esp]
lea eax, [ebp - 0xf20]
push eax
mov eax, dword [ebp - 0xf18]
mov dword [ebp - 0xf20], 0
push dword [eax]
mov dword [ebp - 0xefc], 0
call fcn.00412e70
lea eax, [ebp - 0xefc]
push eax
mov eax, dword [ebp - 0xf30]
push dword [eax]
call fcn.00412e70
push dword [ebp - 0xf18]
lea eax, [ebp - 0xf00]
push eax
call fcn.00413300
push dword [ebp - 0xf30]
lea eax, [ebp - 0xef0]
push eax
mov byte [ebp - 4], 0x23
call fcn.00413300
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x24
call fcn.00417130
mov ecx, dword [eax]
xor eax, eax
add esp, 0x24
test ecx, ecx
setne al
test eax, eax
jne 0x47e01e
push 0x80004005
call fcn.004030e0
mov eax, dword [ebp - 0xf00]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47e04a
test dx, dx
je 0x47e046
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47e04a
add eax, 4
add ecx, 4
test dx, dx
jne 0x47e024
xor eax, eax
jmp 0x47e04f
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0xef8]
test eax, eax
sete byte [ebp - 0xee5]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e077
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xee5], 0
je 0x47e0f6
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf08], eax
mov eax, str.read_preferences_for_enable
mov byte [ebp - 4], 0x25
test eax, 0xffff0000
jne 0x47e0c7
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47e0d9
push esi
push eax
lea ecx, [ebp - 0xf08]
call fcn.00408b00
jmp 0x47e0d9
push 0x1b
push str.read_preferences_for_enable
lea ecx, [ebp - 0xf08]
call fcn.0040c730
lea eax, [ebp - 0xf08]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x26
call fcn.0040c040
mov edx, dword [ebp - 0xf08]
jmp 0x47f788
mov eax, dword [ebp - 0xf00]
cmp dword [eax - 0xc], 0
jne 0x47e178
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf08], eax
mov eax, str.read_preferences_for_enable_file_is_empty
mov byte [ebp - 4], 0x27
test eax, 0xffff0000
jne 0x47e149
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47e15b
push esi
push eax
lea ecx, [ebp - 0xf08]
call fcn.00408b00
jmp 0x47e15b
push 0x29
push str.read_preferences_for_enable_file_is_empty
lea ecx, [ebp - 0xf08]
call fcn.0040c730
lea eax, [ebp - 0xf08]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x28
call fcn.0040c040
mov edx, dword [ebp - 0xf08]
jmp 0x47f788
lea eax, [ebp - 0xf04]
push eax
call fcn.00417130
mov ecx, dword [eax]
xor eax, eax
add esp, 4
test ecx, ecx
setne al
test eax, eax
jne 0x47e19e
push 0x80004005
call fcn.004030e0
mov eax, dword [ebp - 0xef0]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47e1ca
test dx, dx
je 0x47e1c6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47e1ca
add eax, 4
add ecx, 4
test dx, dx
jne 0x47e1a4
xor eax, eax
jmp 0x47e1cf
sbb eax, eax
or eax, 1
mov edx, dword [ebp - 0xf04]
test eax, eax
sete byte [ebp - 0xee5]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e1f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xee5], 0
mov eax, dword [ebp - 0xef0]
je 0x47e279
cmp dword [eax - 0xc], 0
mov ecx, dword [eax - 0x10]
lea edx, [eax - 0x10]
mov dword [ebp - 0xf28], ecx
je 0x47e272
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x47e24b
cmp dword [eax - 8], 0
jge 0x47e231
push 0x80070057
call fcn.004030e0
mov dword [eax - 0xc], 0
mov eax, dword [ebp - 0xef0]
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0xef0]
jmp 0x47e272
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x47e25e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xf28]
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xef0], eax
mov byte [ebp - 0xef1], 0
mov ecx, dword [ebp - 0xf00]
cmp dword [ecx - 0xc], 0xa00000
jg 0x47f5e1
cmp dword [eax - 0xc], 0xa00000
jg 0x47f5e1
lea eax, [ebp - 0xf00]
push eax
lea eax, [ebp - 0xb94]
push eax
call fcn.0049acd0
add esp, 8
push 1
lea ecx, [ebp - 0xf58]
push ecx
push eax
lea ecx, [ebp - 0xc94]
mov byte [ebp - 4], 0x30
call fcn.0046eac0
test al, al
sete al
cmp dword [ebp - 0xb80], 0x10
mov byte [ebp - 0xee5], al
mov byte [ebp - 4], 0x24
jb 0x47e2f4
push dword [ebp - 0xb94]
call fcn.004f03fe
mov al, byte [ebp - 0xee5]
add esp, 4
test al, al
je 0x47e4b0
call fcn.004939c0
test al, al
jne 0x47e326
mov esi, dword [0x578ad4]
mov ecx, 1
cmp esi, ecx
jle 0x47e320
mov eax, esi
cdq
idiv ecx
inc ecx
add ecx, edx
cmp ecx, esi
jl 0x47e314
mov dword [0x578ad4], ecx
push str.parse_preferences_for_enable
lea ecx, [ebp - 0xeec]
call fcn.00401c30
lea eax, [ebp - 0xeec]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x31
call fcn.0040c040
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x24
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e36b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0xf18]
lea eax, [ebp - 0xf0c]
push eax
push dword [esi]
mov dword [ebp - 0xf0c], 0
call fcn.00412e70
add esp, 8
cmp dword [ebp - 0xf0c], 0
je 0x47f7a5
push str.InstEnd
lea ecx, [ebp - 0xf1c]
call fcn.00401ba0
push str.parse_ch_pref_for_enable_file
lea ecx, [ebp - 0xeec]
mov byte [ebp - 4], 0x32
call fcn.00401ba0
push str.SOFTWARE_
lea ecx, [ebp - 0xf28]
mov byte [ebp - 4], 0x33
call fcn.00401ba0
lea ecx, [edi + 0x1c]
push ecx
push eax
lea eax, [ebp - 0xf04]
push eax
mov byte [ebp - 4], 0x34
call fcn.00402a80
lea ecx, [ebp - 0xf1c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x35
call fcn.00402a80
push dword [0x5721d4]
mov byte [ebp - 4], 0x36
push eax
lea eax, [ebp - 0xeec]
push esi
push eax
call fcn.00427b90
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
add esp, 0x28
mov byte [ebp - 4], 0x35
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e43c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x34
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e45f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x33
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e482
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x32
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e4a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf1c]
jmp 0x47f788
mov eax, dword [ebp - 0xef0]
cmp dword [eax - 0xc], 0
je 0x47e4ff
lea eax, [ebp - 0xef0]
push eax
lea eax, [ebp - 0xb94]
push eax
call fcn.0049acd0
add esp, 8
push 1
lea ecx, [ebp - 0xf68]
push ecx
or esi, 4
push eax
lea ecx, [ebp - 0xc94]
mov byte [ebp - 4], 0x37
mov dword [ebp - 0xf14], esi
call fcn.0046eac0
mov byte [ebp - 0xee5], 1
test al, al
je 0x47e506
mov byte [ebp - 0xee5], 0
mov eax, dword [ebp - 0xf14]
mov dword [ebp - 4], 0x24
test al, 4
je 0x47e537
and eax, 0xfffffffb
cmp dword [ebp - 0xb80], 0x10
mov dword [ebp - 0xf14], eax
jb 0x47e537
push dword [ebp - 0xb94]
call fcn.004f03fe
add esp, 4
cmp byte [ebp - 0xee5], 0
je 0x47e6d7
push str.parse_preferences2_for_enable
lea ecx, [ebp - 0xeec]
call fcn.00401c30
lea eax, [ebp - 0xeec]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x38
call fcn.0040c040
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x24
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e589
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0xf0c]
push eax
push dword [ebp - 0xef0]
mov dword [ebp - 0xf0c], 0
call fcn.00412e70
add esp, 8
cmp dword [ebp - 0xf0c], 0
je 0x47f7a5
push str.InstEnd
lea ecx, [ebp - 0xf1c]
call fcn.00401ba0
push str.parse_ch_pref2_for_enable_file
lea ecx, [ebp - 0xeec]
mov byte [ebp - 4], 0x39
call fcn.00401ba0
push str.SOFTWARE_
lea ecx, [ebp - 0xf28]
mov byte [ebp - 4], 0x3a
call fcn.00401ba0
lea ecx, [edi + 0x1c]
push ecx
push eax
lea eax, [ebp - 0xf04]
push eax
mov byte [ebp - 4], 0x3b
call fcn.00402a80
lea ecx, [ebp - 0xf1c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402a80
push dword [0x5721d4]
mov byte [ebp - 4], 0x3d
push eax
lea eax, [ebp - 0xef0]
push eax
lea eax, [ebp - 0xeec]
push eax
call fcn.00427b90
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
add esp, 0x28
mov byte [ebp - 4], 0x3c
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e65e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3b
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e681
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3a
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e6a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xeec]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x39
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47e6c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xf1c]
call fcn.004020a0
jmp 0x47f7a5
push 0x534550
lea ecx, [ebp - 0xf58]
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
je 0x47e719
push str.settings
push 0x534550
lea ecx, [ebp - 0xf58]
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
jne 0x47e763
push 0x534550
lea ecx, [ebp - 0xf68]
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
je 0x47f4c6
push str.settings
push 0x534550
lea ecx, [ebp - 0xf68]
call fcn.00470d60
mov ecx, eax
call fcn.00470d60
mov ecx, eax
call fcn.00472000
test al, al
je 0x47f4c6
lea eax, [ebp - 0xf58]
push eax
mov ecx, edi
call fcn.0047b6d0
mov esi, eax
lea eax, [ebp - 0xf68]
push eax
mov ecx, edi
mov dword [ebp - 0xf28], esi
call fcn.0047b6d0
mov dword [ebp - 0xf70], eax
test esi, esi
je 0x47f466
test eax, eax
je 0x47f466
push 0
lea ecx, [ebp - 0xf80]
call fcn.004707b0
mov ecx, dword [0x578ad4]
mov ebx, 0x14
lea eax, [ecx + 1]
imul eax, ecx
cdq
idiv ebx
mov byte [ebp - 4], 0x44
cmp edx, 0xb
jne 0x47e7e8
lea eax, [ebx + 0x75]
mov esi, 0xfa
nop
test esi, esi
je 0x47e7e1
cdq
idiv esi
mov ecx, esi
mov eax, ecx
mov esi, edx
test ecx, ecx
jne 0x47e7d0
add eax, esi
mov dword [0x578ad4], eax
lea eax, [ebp - 0xf80]
push eax
push dword [ebp - 0xf10]
mov ecx, edi
push dword [ebp - 0xf3c]
call fcn.0048d7a0
test al, al
jne 0x47e873
lea ecx, [ebp - 0xf80]
mov byte [ebp - 4], 0x24
call fcn.00470ad0
lea ecx, [ebp - 0xef0]
call fcn.004020a0
lea ecx, [ebp - 0xf00]
call fcn.004020a0
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x21
call fcn.00470ad0
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x20
call fcn.00470ad0
lea ecx, [ebp - 0xc94]
call fcn.00402630
lea ecx, [ebp - 0xbf4]
mov byte [ebp - 4], 0x1e
call fcn.004999b0
lea ecx, [ebp - 0xbac]
call fcn.004239c0
jmp 0x47f838
cmp dword [edi + 0xd0], 2
jne 0x47e978
lea eax, [edi + 0xd4]
push eax
lea eax, [ebp - 0xb94]
push eax
mov byte [ebp - 4], 0x45
call fcn.0049acd0
add esp, 8
mov esi, eax
push 0x534550
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x46
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push esi
lea ecx, [ebp - 0xfc8]
push ecx
mov ecx, eax
call fcn.004721c0
lea ecx, [ebp - 0xfc8]
call fcn.00470ad0
lea ecx, [ebp - 0xb94]
call fcn.004239c0
jmp 0x47e8f5
lea eax, [edi + 0xd4]
push eax
lea eax, [ebp - 0xb94]
mov dword [ebp - 4], 0x44
push eax
mov byte [ebp - 4], 0x48
call fcn.0049acd0
add esp, 8
mov esi, eax
push 0x534550
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x49
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push esi
lea ecx, [ebp - 0xfb8]
push ecx
mov ecx, eax
call fcn.004721c0
lea ecx, [ebp - 0xfb8]
call fcn.00470ad0
lea ecx, [ebp - 0xb94]
call fcn.004239c0
jmp 0x47e971
mov dword [ebp - 4], 0x44
push str.extensions.settings.
lea ecx, [ebp - 0xc0c]
call fcn.00401010
lea esi, [edi + 0xac]
lea eax, [ebp - 0xb94]
push esi
push eax
mov byte [ebp - 4], 0x4b
call fcn.0049acd0
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0xc0c]
mov byte [ebp - 4], 0x4c
call fcn.0041b6f0
lea ecx, [ebp - 0xb94]
mov byte [ebp - 4], 0x4b
call fcn.004239c0
mov eax, dword [0x578ad4]
imul eax, eax
cdq
mov ecx, 0xb
idiv ecx
cmp edx, 7
jne 0x47e9e0
dec dword [0x57a1f0]
lea eax, [ebp - 0xbf4]
push eax
lea eax, [ebp - 0xc0c]
push eax
lea eax, [ebp - 0xf80]
push eax
lea eax, [ebp - 0xc24]
push eax
mov ecx, edi
call fcn.00484560
xor bl, bl
push str.protection
lea ecx, [ebp - 0xf58]
mov byte [ebp - 0xee5], bl
mov byte [ebp - 4], 0x4e
call fcn.00470d60
push str.macs
mov ecx, eax
call fcn.00470d60
push 0x534550
mov ecx, eax
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00471fb0
test al, al
je 0x47eaf3
lea eax, [ebp - 0xc24]
push eax
lea ecx, [ebp - 0xf98]
call fcn.004706a0
lea eax, [ebp - 0xb94]
push esi
push eax
mov byte [ebp - 4], 0x4f
call fcn.0049acd0
add esp, 8
mov ebx, eax
push str.protection
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x50
call fcn.00470d60
push str.macs
mov ecx, eax
call fcn.00470d60
push 0x534550
mov ecx, eax
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push ebx
mov ecx, eax
call fcn.00470c00
lea ecx, [ebp - 0xf98]
push ecx
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0xb94]
call fcn.004239c0
lea ecx, [ebp - 0xf98]
mov byte [ebp - 4], 0x4e
call fcn.00470ad0
lea eax, [ebp - 0xb94]
push esi
push eax
call fcn.0049acd0
add esp, 8
mov esi, eax
mov byte [ebp - 4], 0x51
jmp 0x47eb12
cmp byte [ebp - 0xef1], 0
jne 0x47eb5b
lea eax, [ebp - 0xb94]
push esi
push eax
call fcn.0049acd0
add esp, 8
mov esi, eax
mov byte [ebp - 4], 0x52
push 0x534550
lea ecx, [ebp - 0xf58]
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push esi
mov ecx, eax
call fcn.00470c00
lea ecx, [ebp - 0xf80]
push ecx
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0xb94]
mov byte [ebp - 4], 0x4e
call fcn.004239c0
mov bl, 1
mov byte [ebp - 0xee5], bl
lea eax, [ebp - 0xf58]
push eax
mov ecx, edi
call fcn.0048f410
jmp 0x47eb83
mov dword [ebp - 4], 0x4d
mov byte [ebp - 4], 0x54
call fcn.00493990
mov ecx, dword [0x57a1ec]
test al, al
mov eax, 0xfe25ef80
cmove ecx, eax
mov dword [0x57a1ec], ecx
test bl, bl
jne 0x47ec9e
lea eax, [ebp - 0xc24]
push eax
lea ecx, [ebp - 0xfa8]
call fcn.004706a0
lea esi, [edi + 0xac]
lea eax, [ebp - 0xb94]
push esi
push eax
mov byte [ebp - 4], 0x55
call fcn.0049acd0
add esp, 8
mov ebx, eax
push str.protection
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x56
call fcn.00470d60
push str.macs
mov ecx, eax
call fcn.00470d60
push 0x534550
mov ecx, eax
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push ebx
mov ecx, eax
call fcn.00470c00
lea ecx, [ebp - 0xfa8]
push ecx
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0xb94]
call fcn.004239c0
lea ecx, [ebp - 0xfa8]
mov byte [ebp - 4], 0x54
call fcn.00470ad0
lea eax, [ebp - 0xb94]
push esi
push eax
call fcn.0049acd0
add esp, 8
mov esi, eax
push 0x534550
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x57
call fcn.00470d60
push str.settings
mov ecx, eax
call fcn.00470d60
push esi
mov ecx, eax
call fcn.00470c00
lea ecx, [ebp - 0xf80]
push ecx
mov ecx, eax
call fcn.00470b70
lea ecx, [ebp - 0xb94]
mov byte [ebp - 4], 0x54
call fcn.004239c0
lea eax, [ebp - 0xf68]
push eax
mov ecx, edi
call fcn.0048f410
call fcn.004938d0
mov ebx, 4
test al, al
jne 0x47ed12
mov esi, dword [0x578ad4]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x2f4]
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ef820
add esp, 4
push eax
call fcn.004f0683
add esp, 4
jmp 0x47ed12
cmp dword [edi + 0xd0], 1
mov dword [ebp - 4], 0x4d
jne 0x47ed72
call fcn.00493d20
test al, al
jne 0x47ed64
mov esi, dword [0x578ad4]
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0x64
sub esi, ecx
xor ecx, ecx
lea eax, [esi + 0x63]
mul ebx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ef820
push eax
call fcn.004f0683
add esp, 8
lea eax, [ebp - 0xf58]
push eax
mov ecx, edi
call fcn.0047a6e0
mov ebx, dword [0x578ad4]
mov eax, ebx
imul eax, ebx
imul eax, ebx
cdq
mov ecx, 9
idiv ecx
mov dword [ebp - 0xf6c], 0
mov dword [ebp - 0xf24], 0
cmp edx, 5
jne 0x47ee50
xor edx, edx
mov dword [ebp - 0xf08], edx
lea ecx, [ebp - 0xb7c]
jmp 0x47edc0
xor eax, eax
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xf38], ecx
mov edi, edi
lea edi, [eax + 1]
lea ecx, [edx + 1]
mov eax, ebx
cdq
idiv ecx
mov eax, ebx
mov ecx, ebx
sub ecx, dword [ebp - 0xf08]
mov ebx, dword [ebp - 0xf38]
mov esi, edx
cdq
imul esi, ecx
idiv edi
add esi, eax
sub esi, dword [ebp - 0xeec]
push esi
push 0x52a4e0
call fcn.004f20c4
mov edx, dword [ebp - 0xf08]
mov eax, edi
add ebx, 4
add esp, 8
mov dword [ebp - 0xeec], eax
mov dword [ebp - 0xf38], ebx
cmp eax, 0x1c
jge 0x47ee2d
mov ebx, dword [0x578ad4]
jmp 0x47edd0
inc edx
mov dword [ebp - 0xf08], edx
cmp edx, 0x14
jge 0x47ee4a
mov ebx, dword [0x578ad4]
mov ecx, dword [ebp - 0xf38]
jmp 0x47edc0
mov edi, dword [ebp - 0xf48]
mov ebx, dword [ebp - 0xf18]
lea eax, [ebp - 0xf6c]
push eax
push dword [ebx]
call fcn.00412e70
lea eax, [ebp - 0xf24]
push eax
push dword [ebp - 0xef0]
call fcn.00412e70
add esp, 0x10
call fcn.00493cf0
test al, al
jne 0x47eea0
push 4
call fcn.004f04fa
mov esi, eax
call fcn.004f1791
mov dword [esi], eax
push esi
mov dword [0x578ad4], eax
call fcn.004f03fe
add esp, 8
mov eax, dword [ebp - 0xf6c]
cmp eax, dword [ebp - 0xf20]
je 0x47ef2d
mov eax, dword [ebp - 0xf24]
cmp eax, dword [ebp - 0xefc]
je 0x47ef2d
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0xc24]
call fcn.004239c0
lea ecx, [ebp - 0xc0c]
call fcn.004239c0
lea ecx, [ebp - 0xf80]
mov byte [ebp - 4], 0x24
call fcn.00470ad0
lea ecx, [ebp - 0xef0]
call fcn.004020a0
lea ecx, [ebp - 0xf00]
mov byte [ebp - 4], 0x22
call fcn.004020a0
mov eax, dword [ebp - 0xf34]
dec dword [ebp - 0xf34]
mov esi, dword [ebp - 0xf14]
mov ebx, 0xffffffff
test eax, eax
jg 0x47df90
mov ebx, dword [ebp - 0xf18]
jmp 0x47ef6c
lea ecx, [ebp - 0xc24]
call fcn.004239c0
lea ecx, [ebp - 0xc0c]
call fcn.004239c0
lea ecx, [ebp - 0xf80]
mov byte [ebp - 4], 0x24
call fcn.00470ad0
lea ecx, [ebp - 0xef0]
call fcn.004020a0
lea ecx, [ebp - 0xf00]
mov byte [ebp - 4], 0x22
call fcn.004020a0
lea eax, [ebp - 0xb94]
push eax
lea ecx, [ebp - 0xf58]
call fcn.00472630
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x59
jb 0x47ef8a
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xf44]
call fcn.00401a70
lea ecx, [ebp - 0xb94]
mov byte [ebp - 4], 0x5b
call fcn.004239c0
lea eax, [ebp - 0xc0c]
push eax
lea ecx, [ebp - 0xf68]
call fcn.00472630
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0x5c
jb 0x47efc3
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0xf40]
call fcn.00401a70
lea ecx, [ebp - 0xc0c]
mov byte [ebp - 4], 0x5e
call fcn.004239c0
mov eax, dword [ebp - 0xf44]
cmp dword [eax - 0xc], 0xa00000
jle 0x47f383
push str.write_to_preferences_for_enable_too_big_
lea ecx, [ebp - 0xef8]
call fcn.00401c30
mov ecx, dword [ebp - 0xf44]
mov byte [ebp - 4], 0x5f
push dword [ecx - 0xc]
push eax
lea eax, [ebp - 0xf10]
push eax
call fcn.0046cd00
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x60
call fcn.0040c040
lea ecx, [ebp - 0xf10]
call fcn.004020a0
lea ecx, [ebp - 0xef8]
mov byte [ebp - 4], 0x5e
call fcn.004020a0
mov ecx, dword [0x578ad4]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov ecx, 0xd
idiv ecx
cmp edx, 0xa
jne 0x47f067
push 0
call dword [sym.imp.KERNEL32.dll_GetFileType]
mov dword [ebp - 0xefc], 0
call fcn.00493ac0
test al, al
jne 0x47f09c
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ecx, dword [0x578ad4]
mov edx, 7
test eax, eax
cmove ecx, edx
mov dword [0x578ad4], ecx
lea eax, [ebp - 0xefc]
push eax
push dword [ebx]
call fcn.00412e70
add esp, 8
cmp dword [ebp - 0xefc], 0
je 0x47f175
push str.InstEnd
lea ecx, [ebp - 0xf20]
call fcn.00401ba0
push str.enable_extension_file_result_size
lea ecx, [ebp - 0xf24]
mov byte [ebp - 4], 0x61
call fcn.00401ba0
push str.SOFTWARE_
lea ecx, [ebp - 0xf04]
mov byte [ebp - 4], 0x62
call fcn.00401ba0
lea ecx, [edi + 0x1c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x63
call fcn.00402a80
lea ecx, [ebp - 0xf20]
push ecx
push eax
lea eax, [ebp - 0xf10]
push eax
mov byte [ebp - 4], 0x64
call fcn.00402a80
push dword [0x5721d4]
mov byte [ebp - 4], 0x65
push eax
lea eax, [ebp - 0xf24]
push ebx
push eax
call fcn.00427b90
add esp, 0x28
lea ecx, [ebp - 0xf10]
call fcn.004020a0
lea ecx, [ebp - 0xef8]
call fcn.004020a0
lea ecx, [ebp - 0xf04]
call fcn.004020a0
lea ecx, [ebp - 0xf24]
call fcn.004020a0
lea ecx, [ebp - 0xf20]
mov byte [ebp - 4], 0x5e
call fcn.004020a0
mov eax, dword [ebp - 0xf40]
cmp dword [eax - 0xc], 0xa00000
jle 0x47f40d
push str.write_to_secure_preferences_for_enable_too_big_
lea ecx, [ebp - 0xef8]
call fcn.00401c30
mov ecx, dword [ebp - 0xf40]
mov byte [ebp - 4], 0x67
push dword [ecx - 0xc]
push eax
lea eax, [ebp - 0xf10]
push eax
call fcn.0046cd00
add esp, 0xc
push eax
mov ecx, edi
mov byte [ebp - 4], 0x68
call fcn.0040c040
lea ecx, [ebp - 0xf10]
call fcn.004020a0
lea ecx, [ebp - 0xef8]
mov byte [ebp - 4], 0x5e
call fcn.004020a0
mov ebx, dword [ebp - 0xf30]
lea eax, [ebp - 0xefc]
push eax
push dword [ebx]
mov dword [ebp - 0xefc], 0
call fcn.00412e70
add esp, 8
cmp dword [ebp - 0xefc], 0
je 0x47f2c4
push str.InstEnd
lea ecx, [ebp - 0xf20]
call fcn.00401ba0
push str.enable_extension_secure_preferences_result_size
lea ecx, [ebp - 0xf24]
mov byte [ebp - 4], 0x69
call fcn.00401ba0
push str.SOFTWARE_
lea ecx, [ebp - 0xf04]
mov byte [ebp - 4], 0x6a
call fcn.00401ba0
lea ecx, [edi + 0x1c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x6b
call fcn.00402a80
lea ecx, [ebp - 0xf20]
push ecx
push eax
lea eax, [ebp - 0xf10]
push eax
mov byte [ebp - 4], 0x6c
call fcn.00402a80
push dword [0x5721d4]
mov byte [ebp - 4], 0x6d
push eax
lea eax, [ebp - 0xf24]
push ebx
push eax
call fcn.00427b90
add esp, 0x28
lea ecx, [ebp - 0xf10]
call fcn.004020a0
lea ecx, [ebp - 0xef8]
call fcn.004020a0
lea ecx, [ebp - 0xf04]
call fcn.004020a0
lea ecx, [ebp - 0xf24]
call fcn.004020a0
lea ecx, [ebp - 0xf20]
mov byte [ebp - 4], 0x5e
call fcn.004020a0
cmp dword [ebp - 0xf28], 1
je 0x47f2da
cmp dword [ebp - 0xf70], 1
jne 0x47f368
push str.crxver
lea ecx, [ebp - 0xf10]
call fcn.00401c30
lea ecx, [edi + 0xb0]
push ecx
push eax
lea eax, [ebp - 0xf3c]
push eax
mov byte [ebp - 4], 0x6f
call fcn.00402a80
add esp, 0xc
lea ecx, [ebp - 0xf10]
mov byte [ebp - 4], 0x71
call fcn.004020a0
push 0x52a638
push 0x529358
lea ecx, [ebp - 0xf3c]
call fcn.00408eb0
push str.reenablecrx
lea ecx, [ebp - 0xefc]
call fcn.00401c30
lea eax, [ebp - 0xf3c]
push eax
lea eax, [ebp - 0xefc]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x72
call fcn.0040bfb0
lea ecx, [ebp - 0xefc]
call fcn.004020a0
lea ecx, [ebp - 0xf3c]
call fcn.004020a0
lea ecx, [ebp - 0xf40]
call fcn.004020a0
lea ecx, [ebp - 0xf44]
call fcn.004020a0
jmp 0x47f47c
lea eax, [ebp - 0xf44]
push eax
push ebx
call fcn.00413d10
add esp, 8
test al, al
jne 0x47f175
push str.write_to_preferences_for_enable
lea ecx, [ebp - 0xefc]
call fcn.00401c30
lea eax, [ebp - 0xefc]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x66
call fcn.0040c040
lea ecx, [ebp - 0xefc]
call fcn.004020a0
call fcn.00493ac0
test al, al
jne 0x47f3f2
mov ebx, dword [0x578ad4]
xor esi, esi
mov edi, ebx
jmp 0x47f3e0
mov eax, edi
lea ecx, [esi + ebx]
cdq
inc esi
idiv ecx
dec edi
cmp esi, 0xaa
jb 0x47f3e0
lea ecx, [ebp - 0xf40]
call fcn.004020a0
lea ecx, [ebp - 0xf44]
call fcn.004020a0
jmp 0x47e82b
cmp byte [ebp - 0xef1], 0
je 0x47f2c4
lea eax, [ebp - 0xf40]
push eax
push dword [ebp - 0xf30]
call fcn.00413d10
add esp, 8
test al, al
jne 0x47f2c4
push str.write_to_secure_preferences_for_enable
lea ecx, [ebp - 0xefc]
call fcn.00401c30
lea eax, [ebp - 0xefc]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x6e
call fcn.0040c040
lea ecx, [ebp - 0xefc]
call fcn.004020a0
jmp 0x47f3f2
lea ecx, [ebp - 0xef0]
call fcn.004020a0
lea ecx, [ebp - 0xf00]
call fcn.004020a0
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x21
call fcn.00470ad0
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x20
call fcn.00470ad0
lea ecx, [ebp - 0xc94]
call fcn.00402630
lea ecx, [ebp - 0xbf4]
mov byte [ebp - 4], 0x1e
call fcn.004999b0
lea ecx, [ebp - 0xbac]
call fcn.004239c0
mov al, 1
jmp 0x47f83a
push str.invalid_preferences_to_enable
lea ecx, [ebp - 0xeec]
call fcn.00401c30
lea eax, [ebp - 0xeec]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x3e
call fcn.0040c040
lea ecx, [ebp - 0xeec]
mov byte [ebp - 4], 0x24
call fcn.004020a0
mov ebx, dword [ebp - 0xf18]
lea eax, [ebp - 0xf0c]
push eax
push dword [ebx]
mov dword [ebp - 0xf0c], 0
call fcn.00412e70
add esp, 8
cmp dword [ebp - 0xf0c], 0
je 0x47e815
push str.InstEnd
lea ecx, [ebp - 0xf1c]
call fcn.00401ba0
push str.invalid_ch_prefs_to_enable_file
lea ecx, [ebp - 0xeec]
mov byte [ebp - 4], 0x3f
call fcn.00401ba0
push str.SOFTWARE_
lea ecx, [ebp - 0xf04]
mov byte [ebp - 4], 0x40
call fcn.00401ba0
lea ecx, [edi + 0x1c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x41
call fcn.00402a80
lea ecx, [ebp - 0xf1c]
push ecx
push eax
lea eax, [ebp - 0xf10]
push eax
mov byte [ebp - 4], 0x42
call fcn.00402a80
push dword [0x5721d4]
mov byte [ebp - 4], 0x43
push eax
lea eax, [ebp - 0xeec]
push ebx
push eax
call fcn.00427b90
add esp, 0x28
lea ecx, [ebp - 0xf10]
call fcn.004020a0
lea ecx, [ebp - 0xef8]
call fcn.004020a0
lea ecx, [ebp - 0xf04]
call fcn.004020a0
lea ecx, [ebp - 0xeec]
call fcn.004020a0
lea ecx, [ebp - 0xf1c]
call fcn.004020a0
jmp 0x47e815
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf2c], eax
mov eax, 0x5346b4
mov byte [ebp - 4], 0x29
test eax, 0xffff0000
jne 0x47f628
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47f638
push esi
push eax
lea ecx, [ebp - 0xf2c]
call fcn.00408b00
jmp 0x47f638
push 0x5346b4
lea ecx, [ebp - 0xf2c]
call fcn.004027b0
mov eax, dword [0x5771f0]
mov ecx, 0x5771f0
mov byte [ebp - 4], 0x2a
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xf30], eax
mov eax, 0x5346b8
mov byte [ebp - 4], 0x2b
test eax, 0xffff0000
jne 0x47f683
movzx esi, ax
push 0
push esi
call fcn.00403070
add esp, 8
test eax, eax
je 0x47f695
push esi
push eax
lea ecx, [ebp - 0xf30]
call fcn.00408b00
jmp 0x47f695
push 0x1b
push 0x5346b8
lea ecx, [ebp - 0xf30]
call fcn.0040c730
mov eax, dword [ebp - 0xf00]
mov byte [ebp - 4], 0x2c
push dword [eax - 0xc]
lea eax, [ebp - 0xf30]
push eax
lea eax, [ebp - 0xf04]
push eax
call fcn.0046cd00
lea ecx, [ebp - 0xf2c]
push ecx
push eax
lea eax, [ebp - 0xef8]
push eax
mov byte [ebp - 4], 0x2d
call fcn.0046cc80
mov ecx, dword [ebp - 0xef0]
mov byte [ebp - 4], 0x2e
push dword [ecx - 0xc]
push eax
lea eax, [ebp - 0xf10]
push eax
call fcn.0046cd00
add esp, 0x24
push eax
mov ecx, edi
mov byte [ebp - 4], 0x2f
call fcn.0040c040
mov edx, dword [ebp - 0xf10]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2e
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f719
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xef8]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2d
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f73c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf04]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2c
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f75f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2a
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f782
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
mov byte [ebp - 4], 0x24
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f7a5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xef0]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x23
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47f7c8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0xf00]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x22
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x47f7e9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xf68]
mov byte [ebp - 4], 0x21
call fcn.00470ad0
lea ecx, [ebp - 0xf58]
mov byte [ebp - 4], 0x20
call fcn.00470ad0
lea ecx, [ebp - 0xc94]
call fcn.00402630
lea ecx, [ebp - 0xbf4]
mov byte [ebp - 4], 0x1e
call fcn.004999b0
cmp dword [ebp - 0xb98], 0x10
jb 0x47f838
push dword [ebp - 0xbac]
call fcn.004f03fe
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004f0cd4
mov esp, ebp
pop ebp
ret 0x18