Function at 0x4c7e20
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503027
mov eax, dword fs:[0]
push eax
sub esp, 0x14c
mov eax, dword [0x55ec40]
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 ebx, ecx
mov dword [ebp - 0xb0], ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xe8], eax
lea eax, [ebx + 0x48]
push eax
lea eax, [ebp - 0x5c]
mov dword [ebp - 0xec], ebx
push eax
mov dword [ebp - 0xa8], 0
call fcn.0042c4a0
add esp, 8
cmp dword [eax + 0x14], 7
jbe 0x4c7e8a
mov eax, dword [eax]
push 0x552244
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.004e1d44
mov ecx, dword [ebp - 0x48]
add esp, 0xc
cmp ecx, 7
jbe 0x4c7ed9
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4c7ecf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8989
push ecx
push edx
call fcn.004cefc9
add esp, 8
mov eax, dword [ebp - 0xac]
test eax, eax
jne 0x4c7eed
mov eax, 0xe
jmp 0x4c896b
push eax
call fcn.0042c010
push 0
push 0
push dword [ebp - 0xac]
mov esi, eax
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0x90], esi
call fcn.004e2374
lea eax, [esi + 1]
xor edi, edi
xor esi, esi
mov dword [ebp - 0xcc], edi
add esp, 0x10
mov dword [ebp - 0xd4], esi
mov dword [ebp - 0xd0], esi
test eax, eax
je 0x4c7f63
push eax
lea ecx, [ebp - 0xd4]
call fcn.004c6930
mov edi, dword [ebp - 0x90]
inc edi
push edi
push esi
mov esi, dword [ebp - 0xd4]
push esi
call fcn.004d1bb0
lea eax, [edi + esi]
add esp, 0xc
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0xd0], eax
push dword [ebp - 0xac]
mov dword [ebp - 4], 0
push dword [ebp - 0x90]
push 1
push esi
call fcn.004e1f97
push dword [ebp - 0xac]
call fcn.004df996
push 9
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 1
push esi
push eax
call fcn.00409640
add esp, 0x20
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
push 9
cmova eax, dword [ebp - 0x2c]
push str.PRV:CLOUD
push dword [ebp - 0x1c]
mov byte [ebp - 4], 2
push eax
call fcn.0041fc70
add esp, 0x10
test al, al
jne 0x4c7ff9
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c8966
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c7ff2
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
push edi
push esi
jmp 0x4c895e
push 9
lea eax, [ebp - 0x8c]
push esi
push eax
call fcn.00409640
add esp, 0xc
push 0
push 1
sub esp, 0x28
mov byte [ebp - 4], 3
mov eax, esp
mov dword [eax + 0x24], 0
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.00406e20
add esp, 0x38
push str.update_time
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 4
call fcn.00401600
mov ecx, eax
call fcn.004c5bb0
mov ecx, dword [ebx + 0x74]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xc4], edx
cmp dword [ecx + 0x18], 0
jl 0x4c8115
push 0
call fcn.004e1c0f
mov dword [ebp - 0x94], eax
add esp, 4
mov eax, dword [ebx + 0x74]
mov ecx, edx
mov ebx, dword [ebp - 0x90]
sub dword [ebp - 0x94], ebx
mov ebx, dword [ebp - 0xb0]
mov eax, dword [eax + 0x18]
sbb ecx, dword [ebp - 0xc4]
cdq
cmp ecx, edx
jl 0x4c8115
jg 0x4c80a8
cmp dword [ebp - 0x94], eax
jbe 0x4c8115
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 5
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c810b
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c8101
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
push edi
push esi
call fcn.004cefc9
add esp, 8
mov eax, 0xf
jmp 0x4c896b
push str.file_size
lea ecx, [ebp - 0xa4]
call fcn.00401600
mov ecx, eax
call fcn.004c5bb0
mov ecx, dword [ebp + 0xc]
cmp eax, dword [ebp + 8]
jne 0x4c8819
cmp edx, ecx
jne 0x4c8819
push str.target_tmp_file_path
lea ecx, [ebp - 0xa4]
call fcn.00401600
lea ecx, [ebp - 0x5c]
push ecx
mov ecx, eax
call fcn.00404970
lea eax, [ebp - 0x5c]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0xc0]
push eax
call fcn.004c5ce0
add esp, 8
mov ecx, dword [ebp - 0xc0]
mov byte [ebp - 4], 9
call fcn.004cbe00
test al, al
jne 0x4c8209
lea ecx, [ebp - 0xc0]
call fcn.00415ba0
lea ecx, [ebp - 0x5c]
call fcn.00409ef0
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xa
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c81ff
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c81f5
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
push edi
push esi
call fcn.004cefc9
add esp, 8
mov eax, 0x16
jmp 0x4c896b
mov ecx, dword [ebp - 0xc0]
call fcn.004cbd40
cmp eax, dword [ebp + 8]
jne 0x4c8799
cmp edx, dword [ebp + 0xc]
jne 0x4c8799
mov ebx, dword [ebx + 0x74]
lea ecx, [ebp - 0xa4]
push 0x546ea4
add ebx, 0x100
call fcn.00401600
lea ecx, [ebp - 0x44]
push ecx
mov ecx, eax
call fcn.00404970
cmp dword [ebx + 0x14], 0xf
mov edx, dword [ebx + 0x10]
jbe 0x4c8255
mov ebx, dword [ebx]
cmp dword [eax + 0x14], 0xf
mov ecx, dword [eax + 0x10]
jbe 0x4c8260
mov eax, dword [eax]
push edx
push ebx
push ecx
push eax
call fcn.0041fc70
add esp, 0x10
lea ecx, [ebp - 0x44]
mov bl, al
call fcn.00409ef0
test bl, bl
jne 0x4c82fe
lea ecx, [ebp - 0xc0]
call fcn.00415ba0
lea ecx, [ebp - 0x5c]
call fcn.00409ef0
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xc
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c82f4
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c82ea
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
push edi
push esi
call fcn.004cefc9
add esp, 8
mov eax, 0x17
jmp 0x4c896b
mov ebx, dword [ebp - 0xb0]
mov eax, dword [ebx + 0x74]
cmp dword [eax + 0x110], 0
jne 0x4c8342
push 0x546ea4
lea ecx, [ebp - 0xa4]
call fcn.00401600
lea ecx, [ebp - 0x44]
push ecx
mov ecx, eax
call fcn.00404970
mov ecx, dword [ebx + 0x74]
push eax
add ecx, 0x100
call fcn.0042af50
lea ecx, [ebp - 0x44]
call fcn.00409ef0
lea ecx, [ebx + 0x60]
mov dword [ebp - 0xb4], ecx
call fcn.004c6b30
push str.slices
lea ecx, [ebp - 0xa4]
call fcn.00401600
mov ebx, eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, ebx
call fcn.0040e230
lea eax, [ebp - 0x3c]
mov ecx, ebx
push eax
call fcn.0040e750
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00401510
test al, al
je 0x4c866d
mov ebx, dword [ebp - 0x6c]
test ebx, ebx
jne 0x4c83aa
push 0x2d76
push 0x504688
push str.m_object___nullptr
call fcn.004df729
add esp, 0xc
movzx eax, byte [ebx]
cmp eax, 9
ja case.0x4c83b9.3
movzx eax, byte [eax + 0x4c8a70]
jmp dword [eax*4 + 0x4c8a60]
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x68]
cmp ebx, dword [eax]
jne 0x4c83e1
push 0x2d7c
push 0x504688
push str.m_it.object_iterator___m_object__m_value.object__end__
call fcn.004df729
add esp, 0xc
add ebx, 0x28
jmp 0x4c8414
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x64]
cmp ebx, dword [eax + 4]
jne 0x4c8414
push 0x2d82
push 0x504688
push str.m_it.array_iterator___m_object__m_value.array__end__
call fcn.004df729
add esp, 0xc
jmp 0x4c8414
cmp dword [ebp - 0x60], 0
jne 0x4c8a1a
mov ecx, dword [ebp - 0xb0]
lea eax, [ebp - 0xfc]
push eax
lea ecx, [ecx + 8]
call fcn.004c97b0
mov dword [ebp - 0x90], eax
push str.capacity
mov ecx, ebx
mov byte [ebp - 4], 0xf
call fcn.00401600
mov ecx, eax
call fcn.004c5bb0
push 0x546ebc
mov ecx, ebx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xc4], edx
call fcn.00401600
mov ecx, eax
call fcn.004c5bb0
push str.begin
mov ecx, ebx
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0xdc], edx
call fcn.00401600
mov ecx, eax
call fcn.004c5bb0
push str.index
mov ecx, ebx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xe4], edx
call fcn.00401600
mov ebx, eax
mov cl, byte [ebx]
movzx eax, cl
cmp eax, 9
ja case.0x4c84ac.252
jmp dword [eax*4 + 0x4c8a7c]
xor edx, edx
lea eax, [ebx + 8]
cmp cl, 6
cmovne eax, edx
mov eax, dword [eax]
jmp 0x4c84ec
mov ecx, ebx
call fcn.004c5cb0
mov eax, dword [eax]
jmp 0x4c84ec
xor edx, edx
lea eax, [ebx + 8]
cmp cl, 7
cmovne eax, edx
cvttsd2si eax, qword [eax]
jmp 0x4c84ec
xor edx, edx
lea eax, [ebx + 8]
cmp cl, 4
cmovne eax, edx
movzx eax, byte [eax]
push 0x80
mov dword [ebp - 0x94], eax
call fcn.004cef99
mov ebx, eax
add esp, 4
mov dword [ebp - 0x100], ebx
mov byte [ebp - 4], 0x12
test ebx, ebx
je 0x4c85a4
mov eax, dword [ebp - 0x90]
sub esp, 8
mov ecx, esp
xorps xmm0, xmm0
movq qword [ebx], xmm0
mov dword [ebx + 8], 0
push dword [ebp - 0xc4]
mov dword [ebx + 4], 1
push dword [ebp - 0xd8]
mov dword [ebx + 8], 1
push dword [ebp - 0xdc]
mov dword [ebx], vtable.std::_Ref_count_obj2_class_zoe::Slice_.0
push dword [ebp - 0xe0]
mov dword [ecx], 0
push dword [ebp - 0xe4]
mov dword [ecx + 4], 0
mov eax, dword [eax]
push dword [ebp - 0xc8]
mov dword [ecx], eax
mov eax, dword [ebp - 0x90]
push dword [ebp - 0x94]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
lea ecx, [ebx + 0x10]
mov eax, dword [ebp - 0x90]
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.004c3da0
jmp 0x4c85a6
xor ebx, ebx
or dword [ebp - 0xa8], 2
lea edx, [ebx + 0x10]
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xf0], ebx
mov ecx, dword [ebp - 0xf8]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0xc8], ecx
test ecx, ecx
je 0x4c85f6
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x4c85f6
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0xc8]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x4c85f3
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [ebx + 0x10]
mov ecx, dword [ebp - 0xb4]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x4c8624
mov dword [eax], 0
mov dword [eax + 4], 0
test ebx, ebx
je 0x4c8619
lock inc dword [ebx + 4]
mov dword [eax], edx
mov dword [eax + 4], ebx
add dword [ecx + 4], 8
jmp 0x4c8637
lea edx, [ebp - 0xf4]
push edx
push eax
call fcn.004c59c0
mov ebx, dword [ebp - 0xf0]
mov byte [ebp - 4], 9
test ebx, ebx
je 0x4c8660
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x4c8660
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
or eax, 0xffffffff
lock xadd dword [ebx + 8], eax
jne 0x4c8660
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
lea ecx, [ebp - 0x6c]
call fcn.0040ab70
jmp 0x4c8378
mov edx, dword [ebp - 0xbc]
test edx, edx
je 0x4c8681
lock inc dword [edx + 4]
mov edx, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebx + 0x70]
mov dword [ebx + 0x6c], eax
mov dword [ebp - 0xb4], ecx
mov dword [ebx + 0x70], edx
test ecx, ecx
je 0x4c86c3
or eax, 0xffffffff
lock xadd dword [ecx + 4], eax
jne 0x4c86c3
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [ebp - 0xb4]
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x4c86c3
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0xc0]
call fcn.00415ba0
lea ecx, [ebp - 0x5c]
call fcn.00409ef0
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x15
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
mov edx, dword [ebp - 0xe8]
lea ecx, [ebx + 0x30]
mov dword [ebp - 4], 0
cmp ecx, edx
je 0x4c8731
cmp dword [edx + 0x14], 0xf
mov eax, dword [edx + 0x10]
jbe 0x4c872a
mov edx, dword [edx]
push eax
push edx
call fcn.00432050
mov eax, dword [ebp + 8]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp + 0xc]
push str.Load_exist_slice_success.
mov dword [ebx + 0x2c], eax
sub esp, 0x28
mov eax, dword [ebx + 0x74]
mov ecx, esp
add eax, 0xd0
push eax
call fcn.004c0e10
call fcn.004cb750
add esp, 0x2c
mov ecx, ebx
call fcn.004c6b50
test esi, esi
je 0x4c8792
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c8788
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a55
push edi
push esi
call fcn.004cefc9
add esp, 8
xor eax, eax
jmp 0x4c896b
lea ecx, [ebp - 0xc0]
call fcn.00415ba0
lea ecx, [ebp - 0x5c]
call fcn.00409ef0
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0xb
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c880f
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c8805
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
push edi
push esi
call fcn.004cefc9
add esp, 8
mov eax, 0x18
jmp 0x4c896b
push ecx
push dword [ebp + 8]
push edx
push eax
mov eax, dword [ebx + 0x74]
push str.File_size_has_changed__tmp_file_expired:__lld_____lld._n
sub esp, 0x28
mov ebx, esp
mov dword [ebp - 0xb8], ebx
mov dword [ebx + 0x24], 0
mov ecx, dword [eax + 0xf4]
mov byte [ebp - 4], 6
test ecx, ecx
je 0x4c884f
mov eax, dword [ecx]
push ebx
call dword [eax]
mov dword [ebx + 0x24], eax
mov byte [ebp - 4], 4
call fcn.004cb750
add esp, 0x3c
push 0
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 7
call fcn.0040e110
push dword [ebp - 0xa4]
lea ecx, [ebp - 0x9c]
call fcn.0040e3f0
lea ecx, [ebp - 0x8c]
call fcn.00409ef0
lea ecx, [ebp - 0x2c]
call fcn.00409ef0
test esi, esi
je 0x4c810b
sub edi, esi
mov eax, esi
cmp edi, 0x1000
jb 0x4c8101
mov esi, dword [eax - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4c8a5a
jmp 0x4c8101
call fcn.004cefc9
add esp, 8
mov eax, 3
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.004cefd7
mov esp, ebp
pop ebp
ret 0xc
call fcn.004d529e
push str.cannot_get_value
lea ecx, [ebp - 0x44]
call fcn.00408cc0
push ebx
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0x120]
push 0xd6
push eax
call fcn.004035a0
add esp, 0x10
lea eax, [ebp - 0x120]
push 0x55645c
push eax
call fcn.004d1214
mov ecx, ebx
call fcn.004128e0
push eax
lea ecx, [ebp - 0x44]
call fcn.00408cc0
push eax
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 0x10
push str.type_must_be_number__but_is
push eax
call fcn.004018d0
add esp, 0xc
push ebx
push eax
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 0x11
push 0x12e
push eax
call fcn.00404200
add esp, 0x10
lea eax, [ebp - 0x13c]
push 0x556498
push eax
call fcn.004d1214
push str.cannot_get_value
lea ecx, [ebp - 0x44]
call fcn.00408cc0
push ebx
lea eax, [ebp - 0x44]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x158]
push 0xd6
push eax
call fcn.004035a0
add esp, 0x10
lea eax, [ebp - 0x158]
push 0x55645c
push eax
call fcn.004d1214
call fcn.004d529e
call fcn.004d529e
nop
mov cs, word [ecx - 0x7c3fffb4]
dec esp
add dh, ah
or dword [eax + eax + 0xa], 0xffffff84
dec esp
add byte [eax], al
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add esp, dword [esi - 112]
leave
mov dword [eax + eax - 55], ecx
mov dword [eax + eax - 0x37], ecx
mov dword [eax + eax - 0x37], ecx
mov dword [eax + eax - 0x22], ecx
test byte [eax + eax - 0x3e], cl
test byte [eax + eax - 0x4d], cl
test byte [eax + eax - 0x33], cl
test byte [eax + eax - 0x37], cl
mov dword [eax + eax - 0x37], ecx
mov dword [eax + eax - 0x34], ecx
int3