Function at 0x42e450
Capabilities:
Read file on windows

Disassembly:
push edi
mov eax, 0x1008c
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
call fcn.00491680
sub esp, eax
mov edi, ecx
mov dword [ebp - 0x10018], 0x562288
mov dword [esp], 0x1000
call fcn.0054fb50
mov byte [ebp - 0xfffc], 0
lea ecx, [ebp - 0x10018]
mov dword [ebp - 0x10014], eax
mov dword [ebp - 0x1000c], eax
add eax, 0x1000
mov dword [ebp - 0x10008], eax
lea eax, [ebp - 0xfffc]
mov dword [ebp - 0x10010], 0x1000
mov dword [ebp - 0x10018], 0x586bbc
mov dword [ebp - 0x10004], eax
mov dword [ebp - 0x10000], 0
mov dword [esp], 0x2e
mov dword [esp + 4], str.Event_Loop_Windows::Registered_Pipe_Read_pipe
call fcn.004711c0
mov ebx, dword [edi]
sub esp, 8
cmp dword [ebp - 0x10010], 0xf
jle 0x42e8c8
mov esi, dword [ebp - 0x1000c]
mov eax, dword [ebp - 0x10008]
sub eax, esi
cmp eax, 0xf
jle 0x42e810
lea eax, [esi + 0x10]
mov dword [ebp - 0x1000c], eax
test esi, esi
je 0x42e8c8
mov edx, ebx
mov eax, ebx
mov ecx, ebx
shr edx, 0x18
shr eax, 0x1c
and edx, 0xf
shr ecx, 0x14
mov dword [ebp - 0x1003c], eax
mov dword [ebp - 0x10058], edx
mov edx, ebx
mov eax, ecx
mov ecx, ebx
shr edx, 0x10
and eax, 0xf
shr ecx, 0xc
and edx, 0xf
movzx eax, byte [eax + 0x586ba0]
and ecx, 0xf
movzx edx, byte [edx + 0x586ba0]
mov dword [ebp - 0x10068], ecx
mov ecx, ebx
shr ecx, 8
shl edx, 8
and ecx, 0xf
or edx, eax
mov eax, dword [ebp - 0x10058]
mov dword [ebp - 0x10040], ecx
mov ecx, ebx
shl edx, 8
shr ecx, 4
and ebx, 0xf
movzx eax, byte [eax + 0x586ba0]
movzx ebx, byte [ebx + 0x586ba0]
and ecx, 0xf
movzx ecx, byte [ecx + 0x586ba0]
or edx, eax
mov eax, dword [ebp - 0x1003c]
shl ebx, 8
or ebx, ecx
shl edx, 8
movzx eax, byte [eax + 0x586ba0]
shl ebx, 8
mov dword [ebp - 0x1003c], eax
mov eax, dword [ebp - 0x10040]
movzx ecx, byte [eax + 0x586ba0]
or ebx, ecx
mov ecx, dword [ebp - 0x10068]
mov eax, ebx
shl eax, 8
movzx ebx, byte [ecx + 0x586ba0]
mov dword [ebp - 0x10068], eax
mov eax, dword [ebp - 0x1003c]
mov dword [ebp - 0x10058], ebx
or eax, edx
mov edx, dword [ebp - 0x10068]
mov ecx, eax
mov eax, dword [ebp - 0x10058]
mov dword [esi + 8], ecx
or eax, edx
mov edx, 0x30303030
mov dword [esi + 0xc], eax
mov eax, 0x30303030
mov dword [esi], eax
mov dword [esi + 4], edx
mov eax, dword [ebp - 0x10014]
mov ebx, dword [ebp - 0x1000c]
mov edx, dword [ebp - 0x10000]
mov dword [ebp - 0x1003c], eax
sub ebx, eax
mov eax, 0x7fffffff
sub eax, edx
cmp eax, ebx
jb 0x42f10b
mov esi, dword [ebp - 0x10004]
lea eax, [ebp - 0xfffc]
lea ecx, [ebx + edx]
cmp esi, eax
je 0x42ece0
mov eax, dword [ebp - 0xfffc]
cmp eax, ecx
jb 0x42ebd0
test ebx, ebx
jne 0x42ea48
mov dword [ebp - 0x10000], ecx
lea ebx, [ebp - 0x10028]
mov byte [esi + ecx], 0
mov eax, dword [ebp - 0x10014]
mov esi, dword [ebp - 0x10000]
mov dword [ebp - 0x10030], ebx
mov dword [ebp - 0x1000c], eax
mov edx, dword [ebp - 0x10004]
cmp esi, 0xf
ja 0x42eb70
cmp esi, 1
je 0x42ebc0
test esi, esi
jne 0x42f002
mov eax, ebx
mov dword [ebp - 0x1002c], esi
mov byte [eax + esi], 0
mov esi, dword [ebp - 0x10030]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
cmp eax, 0x100
ja 0x42eb58
mov eax, esi
call fcn.0044c4b0
mov edx, dword [ebp - 0x10030]
cmp edx, ebx
je 0x42e707
mov eax, dword [ebp - 0x10028]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [ebp - 0x10004]
lea eax, [ebp - 0xfffc]
mov dword [ebp - 0x10018], 0x586bbc
cmp edx, eax
je 0x42e736
mov eax, dword [ebp - 0xfffc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov dword [ebp - 0x10018], 0x562288
mov eax, dword [ebp - 0x10014]
test eax, eax
je 0x42e752
mov dword [esp], eax
call fcn.0054fb20
lea esi, [edi + 0x18]
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
test eax, eax
jle 0x42e7fc
mov eax, 1
xchg byte [esi], al
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
test eax, eax
jle 0x42e7fc
lea eax, [ebp - 0x10030]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x10018]
mov dword [esp + 8], 0x10000
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub esp, 0x14
mov ebx, eax
test eax, eax
je 0x42eae0
mov ebx, dword [ebp - 0x10030]
test ebx, ebx
jne 0x42ea80
xor eax, eax
xchg byte [esi], al
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
test eax, eax
jle 0x42e7fc
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov ebx, dword [edi]
mov edx, dword [eax]
mov edx, dword [edx + 4]
cmp edx, 0x4063e0
jne 0x42f010
mov eax, 0xffffffff
lock xadd dword [ecx + 4], eax
cmp eax, 1
jle 0x42ed10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, dword [ebp - 0x10014]
mov ecx, dword [ebp - 0x10000]
sub esi, eax
mov dword [ebp - 0x10068], eax
mov eax, 0x7fffffff
sub eax, ecx
mov edx, esi
cmp eax, esi
jb 0x42f10b
lea eax, [esi + ecx]
mov esi, dword [ebp - 0x10004]
mov dword [ebp - 0x1003c], eax
lea eax, [ebp - 0xfffc]
mov dword [ebp - 0x10058], esi
cmp esi, eax
je 0x42ef00
mov eax, dword [ebp - 0xfffc]
mov esi, dword [ebp - 0x1003c]
cmp eax, esi
jb 0x42eda0
test edx, edx
je 0x42e8a3
mov esi, dword [ebp - 0x10058]
add esi, ecx
cmp edx, 1
je 0x42efe6
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x10068]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x10004]
mov dword [ebp - 0x10058], eax
mov eax, dword [ebp - 0x1003c]
mov esi, dword [ebp - 0x10058]
mov dword [ebp - 0x10000], eax
mov byte [esi + eax], 0
mov esi, dword [ebp - 0x10014]
jmp 0x42e510
lea ecx, [ebp - 0x10018]
call fcn.0047c4b0
mov dword [esp], 0x10
call fcn.0054fb50
mov edx, ebx
mov ecx, ebx
shr edx, 0x1c
mov dword [ebp - 0x1003c], eax
shr ecx, 0x10
mov eax, ebx
mov dword [ebp - 0x10058], edx
mov edx, ebx
shr eax, 0x18
and ecx, 0xf
shr edx, 0x14
and eax, 0xf
movzx ecx, byte [ecx + 0x586ba0]
and edx, 0xf
mov esi, eax
mov eax, ebx
movzx edx, byte [edx + 0x586ba0]
shr eax, 0xc
shl ecx, 8
movzx esi, byte [esi + 0x586ba0]
and eax, 0xf
or ecx, edx
mov dword [ebp - 0x10068], eax
mov eax, ebx
shl ecx, 8
shr eax, 8
mov edx, ecx
mov ecx, dword [ebp - 0x10058]
and eax, 0xf
mov dword [ebp - 0x10040], eax
mov eax, ebx
and ebx, 0xf
or edx, esi
movzx ecx, byte [ecx + 0x586ba0]
shr eax, 4
mov esi, dword [ebp - 0x10040]
shl edx, 8
and eax, 0xf
mov dword [ebp - 0x10058], ecx
movzx ecx, byte [ebx + 0x586ba0]
movzx ebx, byte [eax + 0x586ba0]
shl ecx, 8
or ecx, ebx
movzx ebx, byte [esi + 0x586ba0]
shl ecx, 8
or ecx, ebx
mov ebx, dword [ebp - 0x10068]
mov eax, ecx
shl eax, 8
movzx esi, byte [ebx + 0x586ba0]
mov ebx, dword [ebp - 0x10000]
mov dword [ebp - 0x10068], eax
mov eax, dword [ebp - 0x10058]
or eax, edx
mov edx, 0x30303030
mov ecx, eax
mov eax, dword [ebp - 0x10068]
or eax, esi
mov esi, dword [ebp - 0x1003c]
mov dword [esi + 0xc], eax
mov eax, 0x30303030
mov dword [esi], eax
mov eax, 0x7fffffff
sub eax, ebx
mov dword [esi + 8], ecx
mov ecx, esi
mov dword [esi + 4], edx
cmp eax, 0xf
jbe 0x42f10b
mov eax, dword [ebp - 0x10004]
lea edx, [ebp - 0xfffc]
lea esi, [ebx + 0x10]
cmp eax, edx
je 0x42ef38
mov edx, dword [ebp - 0xfffc]
cmp edx, esi
jb 0x42f050
movdqu xmm0, xmmword [ecx]
movups xmmword [eax + ebx], xmm0
mov ecx, dword [ebp - 0x10004]
movups xmmword [ebp - 0x10058], xmm0
mov eax, dword [ebp - 0x1003c]
mov dword [ebp - 0x10000], esi
mov byte [ecx + ebx + 0x10], 0
mov dword [esp], eax
call fcn.0054fb20
jmp 0x42e61e
add esi, edx
cmp ebx, 1
je 0x42eed0
mov dword [ebp - 0x10058], ecx
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x1003c]
mov dword [esp], esi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x10004]
mov ecx, dword [ebp - 0x10058]
jmp 0x42e674
xor eax, eax
xchg byte [esi], al
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
test eax, eax
jle 0x42e7fc
mov eax, dword [edi]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov dword [ebp - 0x1003c], eax
mov eax, dword [ecx]
mov eax, dword [eax]
cmp eax, 0x406710
jne 0x42f028
lea eax, [ebp - 0x10018]
mov dword [esp + 8], ebx
sub ecx, 4
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1003c]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0054e710
sub esp, 0x10
jmp 0x42e755
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x6d
je 0x42e7c2
cmp eax, 0xe8
je 0x42ea80
xchg byte [esi], bl
mov edx, dword [edi + 4]
mov edx, dword [edx + 4]
test edx, edx
jle 0x42e7fc
mov edx, dword [edi]
mov ebx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov dword [ebp - 0x1003c], edx
cmp eax, 0x3e3
je 0x42e7fc
mov edx, dword [ecx]
mov edx, dword [edx + 8]
cmp edx, 0x4064b0
jne 0x42ed78
mov ecx, str.on_pipe_read_error
mov edx, 0x1d5
mov eax, str.D:_a_quick_lint_js_quick_lint_js_src_quick_lint_js_cli_main.cpp
mov dword [esp], 0x586621
call fcn.00467dc0
int3
mov eax, str.EventLoopPipe
call fcn.0044c4b0
jmp 0x42e6e8
mov dword [ebp - 0x1003c], edx
test esi, esi
js 0x42f117
mov eax, esi
add eax, 1
js 0x42efc7
mov dword [esp], eax
call fcn.0054fb80
mov dword [ebp - 0x10028], esi
mov edx, dword [ebp - 0x1003c]
mov dword [ebp - 0x10030], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp - 0x10030]
jmp 0x42e6be
movzx eax, byte [edx]
mov byte [ebp - 0x10028], al
jmp 0x42e6bc
test ecx, ecx
js 0x42f117
add eax, eax
mov dword [ebp - 0x10068], eax
cmp ecx, eax
jb 0x42efbf
mov eax, ecx
add eax, 1
js 0x42efc7
mov dword [ebp - 0x10068], ecx
mov dword [ebp - 0x10040], ecx
mov dword [ebp - 0x10058], edx
mov dword [esp], eax
call fcn.0054fb80
mov edx, dword [ebp - 0x10058]
mov ecx, dword [ebp - 0x10040]
mov esi, eax
mov eax, dword [ebp - 0x10004]
test edx, edx
mov dword [ebp - 0x10058], eax
je 0x42ec5c
cmp edx, 1
je 0x42efdc
mov dword [ebp - 0x10044], ecx
mov dword [esp + 8], edx
mov dword [ebp - 0x10040], edx
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x10044]
mov edx, dword [ebp - 0x10040]
mov eax, dword [ebp - 0x1003c]
test eax, eax
je 0x42ec97
test ebx, ebx
je 0x42ec97
add edx, esi
cmp ebx, 1
je 0x42efcc
mov dword [ebp - 0x10040], ecx
mov dword [esp + 8], ebx
mov eax, dword [ebp - 0x1003c]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [ebp - 0x10040]
mov ebx, dword [ebp - 0x10058]
lea eax, [ebp - 0xfffc]
cmp ebx, eax
je 0x42ecc8
mov eax, dword [ebp - 0xfffc]
mov dword [ebp - 0x1003c], ecx
mov dword [esp], ebx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov ecx, dword [ebp - 0x1003c]
mov eax, dword [ebp - 0x10068]
mov dword [ebp - 0x10004], esi
mov dword [ebp - 0xfffc], eax
jmp 0x42e674
cmp ecx, 0xf
jbe 0x42e66c
test ecx, ecx
js 0x42f117
cmp ecx, 0x1d
ja 0x42ebe8
mov dword [ebp - 0x10068], 0x1e
mov eax, 0x1f
jmp 0x42ebf9
mov eax, dword [ecx]
mov eax, dword [eax + 8]
cmp eax, 0x4345e0
jne 0x42eef0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
sub esp, 0x10
test eax, eax
jne 0x42e7fc
mov ecx, str.notify_via_control
mov edx, 0x11c
mov eax, str.D:_a_quick_lint_js_quick_lint_js_src_quick_lint_js_io_event_loop_windows.cpp
mov dword [esp], 0x586621
call fcn.00467dc0
int3
mov dword [ebp - 0x1002c], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1003c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edx
sub esp, 0xc
jmp 0x42e755
mov esi, dword [ebp - 0x1003c]
test esi, esi
js 0x42f117
add eax, eax
mov dword [ebp - 0x10044], eax
cmp dword [ebp - 0x1003c], eax
jae 0x42edd0
test eax, eax
js 0x42efc7
add eax, 1
jmp 0x42ede7
mov esi, dword [ebp - 0x1003c]
mov eax, esi
add eax, 1
js 0x42efc7
mov dword [ebp - 0x10044], esi
mov dword [ebp - 0x10048], ecx
mov dword [ebp - 0x10040], edx
mov dword [esp], eax
call fcn.0054fb80
mov ecx, dword [ebp - 0x10048]
mov edx, dword [ebp - 0x10040]
mov dword [ebp - 0x10058], eax
mov eax, dword [ebp - 0x10004]
test ecx, ecx
mov dword [ebp - 0x10040], eax
je 0x42ee54
cmp ecx, 1
je 0x42f0d4
mov dword [ebp - 0x1006c], edx
mov dword [esp + 8], ecx
mov dword [ebp - 0x10048], ecx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10058]
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x1006c]
mov ecx, dword [ebp - 0x10048]
mov esi, dword [ebp - 0x10068]
test esi, esi
je 0x42ee89
test edx, edx
je 0x42ee89
mov eax, dword [ebp - 0x10058]
add ecx, eax
cmp edx, 1
je 0x42f0e4
mov dword [esp + 8], edx
mov eax, dword [ebp - 0x10068]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x10040]
lea eax, [ebp - 0xfffc]
cmp esi, eax
je 0x42eeae
mov eax, dword [ebp - 0xfffc]
mov dword [esp], esi
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov eax, dword [ebp - 0x10058]
mov dword [ebp - 0x10004], eax
mov eax, dword [ebp - 0x10044]
mov dword [ebp - 0xfffc], eax
jmp 0x42e8a3
mov eax, dword [ebp - 0x1003c]
movzx eax, byte [eax]
mov byte [esi], al
mov esi, dword [ebp - 0x10004]
jmp 0x42e674
call eax
jmp 0x42e7fc
cmp dword [ebp - 0x1003c], 0xf
jbe 0x42e86c
mov eax, dword [ebp - 0x1003c]
test eax, eax
js 0x42f117
cmp eax, 0x1d
ja 0x42edd0
mov dword [ebp - 0x10044], 0x1e
mov eax, 0x1f
jmp 0x42ede7
cmp esi, 0x1d
ja 0x42f08e
mov dword [ebp - 0x10058], 0x1e
mov eax, 0x1f
mov dword [esp], eax
call fcn.0054fb80
mov edx, dword [ebp - 0x10004]
mov ecx, eax
test ebx, ebx
jne 0x42f0f4
mov eax, dword [ebp - 0x1003c]
movdqu xmm2, xmmword [eax]
lea eax, [ebp - 0xfffc]
movups xmmword [ebp - 0x10068], xmm2
movups xmmword [ecx + ebx], xmm2
cmp edx, eax
je 0x42efa8
mov eax, dword [ebp - 0xfffc]
mov dword [ebp - 0x10068], ecx
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov ecx, dword [ebp - 0x10068]
mov eax, dword [ebp - 0x10058]
mov dword [ebp - 0x10004], ecx
mov dword [ebp - 0xfffc], eax
jmp 0x42ea24
test eax, eax
jns 0x42f103
call fcn.005523a0
mov eax, dword [ebp - 0x1003c]
movzx eax, byte [eax]
mov byte [edx], al
jmp 0x42ec97
movzx eax, byte [eax]
mov byte [esi], al
jmp 0x42ec5c
mov eax, dword [ebp - 0x10068]
movzx eax, byte [eax]
mov byte [esi], al
mov eax, dword [ebp - 0x10004]
mov dword [ebp - 0x10058], eax
jmp 0x42e8a3
mov eax, ebx
jmp 0x42eba3
mov dword [esp], ecx
mov ecx, eax
mov dword [esp + 4], ebx
call edx
sub esp, 8
jmp 0x42e7fc
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x10018]
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp - 0x1003c]
mov dword [esp], edx
mov dword [esp + 4], ebx
call eax
sub esp, 0x10
jmp 0x42e755
test esi, esi
js 0x42f117
lea eax, [edx + edx]
mov dword [ebp - 0x10058], eax
cmp esi, eax
jae 0x42f078
test eax, eax
js 0x42efc7
add eax, 1
jmp 0x42ef50
mov eax, ebx
add eax, 0x11
js 0x42efc7
mov dword [ebp - 0x10058], esi
jmp 0x42ef50
lea eax, [ebx + 0x11]
mov dword [esp], eax
call fcn.0054fb80
mov dword [ebp - 0x10058], esi
mov edx, dword [ebp - 0x10004]
mov ecx, eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [ebp - 0x10040], edx
mov dword [esp], ecx
mov dword [ebp - 0x10068], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [ebp - 0x10040]
mov ecx, dword [ebp - 0x10068]
jmp 0x42ef68
movzx eax, byte [eax]
mov esi, dword [ebp - 0x10058]
mov byte [esi], al
jmp 0x42ee54
mov eax, dword [ebp - 0x10068]
movzx eax, byte [eax]
mov byte [ecx], al
jmp 0x42ee89
cmp ebx, 1
jne 0x42f0a7
movzx eax, byte [edx]
mov byte [ecx], al
jmp 0x42ef68
add eax, 1
jmp 0x42ebf9
mov dword [esp], 0x586657
call fcn.00552550
mov dword [esp], 0x58666c
call fcn.00552550
lea esi, cs:[esi]
lea esi, cs:[esi]
sub esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
call fcn.0042e450
xor eax, eax
add esp, 0xc
ret 4