Function at 0x420a58
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c9299
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x8009c
call fcn.00401910
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x80098], eax
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x800b0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x28], edi
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x3c]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], eax
call fcn.0040e57a
and dword [esp + 0x800b8], 0
lea ecx, [esp + 0x1c]
push ebx
call fcn.004b9cf7
mov dword [esp + 0x1c], vtable.micro::files::QPathStr.0
lea eax, [esp + 0x3c]
mov byte [esp + 0x800b8], 1
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [edi + 0x30]
call fcn.004bbda7
mov byte [esp + 0x800b8], 0
lea ecx, [esp + 0x1c]
mov bl, al
mov dword [esp + 0x1c], vtable.micro::utils::QString.0
call fcn.004b9e50
test bl, bl
jne 0x420b25
or dword [esp + 0x800b8], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.0040e543
xor al, al
jmp 0x420ccd
push 0
push dword [esp + 0x6c]
lea ecx, [edi + 0x14]
mov eax, dword [ecx]
push dword [esp + 0x6c]
call dword [eax + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, 0x4ef644
mov eax, esi
push 0x1000
cmp dword [ecx + 4], 0
cmovne eax, dword [ecx + 4]
lea ecx, [esp + 0x34]
push eax
call fcn.004bac46
mov byte [esp + 0x800b8], 2
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x420b7a
mov eax, dword [esp + 0x18]
cmp dword [eax + 4], 0
cmovne esi, dword [eax + 4]
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
mov edx, dword [esp + 0x50]
xor al, al
mov ecx, dword [esp + 0x4c]
mov edi, ecx
mov dword [esp + 0x1c], ecx
mov ebx, edx
mov dword [esp + 0x24], edx
mov byte [esp + 0x17], al
test edx, edx
jne 0x420ba0
test ecx, ecx
je 0x420c53
test ebx, ebx
ja 0x420bb2
jb 0x420bae
cmp edi, 0x80000
jae 0x420bb2
mov eax, edi
jmp 0x420bb7
mov eax, 0x80000
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x18]
and dword [esp + 0x18], 0
push 0
push ecx
push eax
lea eax, [esp + 0xb0]
push eax
push dword [esi + 0x18]
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x420c4f
cmp dword [esp + 0x18], 0
jbe 0x420c4f
push dword [esp + 0x18]
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x38]
call fcn.004bae6a
sub edi, dword [esp + 0x18]
mov ecx, dword [esi + 0x64]
sbb ebx, 0
test ecx, ecx
je 0x420c3f
push dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, eax
mov esi, dword [ecx]
sub edx, edi
push eax
mov eax, dword [esp + 0x2c]
sbb eax, ebx
push eax
push edx
call dword [esi + 0x14]
mov esi, dword [esp + 0x28]
push 0
push dword [esp + 0x1c]
mov ecx, dword [esi + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [esi + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x24]
test al, al
jne 0x420ca5
test ebx, ebx
jne 0x420ba2
test edi, edi
jne 0x420ba0
mov al, byte [esp + 0x17]
or edi, ebx
je 0x420ca9
test al, al
jne 0x420ca9
push 0xffffffffffffffff
push str.Write_Error
lea ecx, [esp + 0x30]
call fcn.004b9d49
and dword [esp + 0x20], 0
mov dword [esp + 0x1c], vtable.micro::utils::QString.0
lea eax, [esp + 0x28]
mov byte [esp + 0x800b8], 4
push eax
lea ecx, [esp + 0x20]
call fcn.004ba6d4
push 0x50b030
lea eax, [esp + 0x20]
mov byte [esp + 0x800bc], 3
push eax
call sub.msvcrt.dll__CxxThrowException
mov al, 1
jmp 0x420c53
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], vtable.micro::files::QFile.0
call fcn.004baeaf
or dword [esp + 0x800b8], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.0040e543
mov al, 1
mov ecx, dword [esp + 0x800b0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x80098]
xor ecx, esp
call fcn.00401000
mov esp, ebp
pop ebp
ret 8