Function at 0x42b2f0
Capabilities:
Get file size
Read file on windows
Read pipe

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eab61
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push esi
push edi
mov eax, dword [0x555ab0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
mov dword [ebp - 4], 0
mov eax, dword [esi]
mov dword [ebp - 0x18], 1
cmp dword [eax - 0xc], 0
je 0x42b3f8
mov ecx, 0x536dd0
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42b386
test dx, dx
je 0x42b382
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42b386
add eax, 4
add ecx, 4
test dx, dx
jne 0x42b360
xor eax, eax
jmp 0x42b38b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
jne 0x42b3f8
lea ecx, [ebp - 0x24]
call fcn.00429500
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
mov dword [ebp - 0x18], 3
test eax, eax
jne 0x42b3ba
push 0x80004005
call fcn.00401840
mov eax, dword [esi]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x42b3e6
test dx, dx
je 0x42b3e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x42b3e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x42b3c0
xor eax, eax
jmp 0x42b3eb
sbb eax, eax
or eax, 1
test eax, eax
sete al
mov byte [ebp - 0xd], 0
test al, al
je 0x42b3fc
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0x18]
or ebx, 0xffffffff
test al, 2
je 0x42b428
mov edx, dword [ebp - 0x24]
and eax, 0xfffffffd
add edx, 0xfffffff0
mov dword [ebp - 0x18], eax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b428
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp - 0xd], 0
je 0x42b61e
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.Received_an_inv_lid_path
mov dword [ebp - 4], 1
test eax, 0xffff0000
jne 0x42b472
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b47f
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402420
jmp 0x42b47f
push str.Received_an_inv_lid_path
lea ecx, [ebp - 0x20]
call fcn.004047f0
mov dword [ebp - 4], 2
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, 0x536dec
mov byte [ebp - 4], 3
test eax, 0xffff0000
jne 0x42b4c3
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b4d2
push esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402420
jmp 0x42b4d2
push 0xc
push 0x536dec
lea ecx, [ebp - 0x1c]
call fcn.004021b0
mov byte [ebp - 4], 4
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x24], esi
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00421a70
push 2
mov edx, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.0041f130
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
add esp, 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b52f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b54c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b56c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b58c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x24]
call fcn.00429500
mov dword [ebp - 4], 7
mov edx, dword [eax]
mov esi, dword [edi]
lea ecx, [edx - 0x10]
sub esi, 0x10
cmp ecx, esi
je 0x42b5e8
cmp dword [esi + 0xc], 0
jl 0x42b5dd
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x42b5dd
call fcn.004022e0
mov dword [ebp - 0x28], eax
mov ecx, ebx
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b5d6
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [edi], eax
jmp 0x42b5e8
push dword [edx - 0xc]
mov ecx, edi
push edx
call fcn.004021b0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x42be3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
push 3
push 0
push 0
push SysReAllocStringLen
push dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
jne 0x42b876
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.F_i1ed_to_open_fi1e:
mov dword [ebp - 4], 8
test eax, 0xffff0000
jne 0x42b681
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b68e
push esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402420
jmp 0x42b68e
push str.F_i1ed_to_open_fi1e:
lea ecx, [ebp - 0x1c]
call fcn.004047f0
mov dword [ebp - 4], 9
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.ReadTextFile
mov byte [ebp - 4], 0xa
test eax, 0xffff0000
jne 0x42b6d2
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b6e1
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402420
jmp 0x42b6e1
push 0xc
push str.ReadTextFile
lea ecx, [ebp - 0x20]
call fcn.004021b0
mov byte [ebp - 4], 0xb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.00421b00
mov edi, eax
mov byte [ebp - 4], 0xc
mov edx, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x28], esi
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xd
call fcn.00421a70
push edi
mov edx, eax
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xe
call fcn.00421a70
push 2
mov edx, eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xf
call fcn.0041f130
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
add esp, 0xc
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b764
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b784
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xc
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b7a1
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b7c1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b7e1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b801
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x2c]
call fcn.00429500
mov dword [ebp - 4], 0x10
mov edi, dword [ebp - 0x14]
mov edx, dword [eax]
mov esi, dword [edi]
lea ecx, [edx - 0x10]
sub esi, 0x10
cmp ecx, esi
je 0x42b86a
cmp dword [esi + 0xc], 0
jl 0x42b85f
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x42b85f
call fcn.004022e0
mov dword [ebp - 0x30], eax
mov ecx, ebx
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42b84e
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x30]
add eax, 0x10
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x2c]
mov dword [edi], eax
jmp 0x42b5ef
push dword [edx - 0xc]
mov ecx, edi
push edx
call fcn.004021b0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x2c]
jmp 0x42b5ef
lea ecx, [ebp - 0x40]
push ecx
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x40], xmm0
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x42ba6e
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.GetFi1e_izeEx_f_i1ed
mov dword [ebp - 4], 0x11
test eax, 0xffff0000
jne 0x42b8d1
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b8de
push esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402420
jmp 0x42b8de
push str.GetFi1e_izeEx_f_i1ed
lea ecx, [ebp - 0x1c]
call fcn.004047f0
mov dword [ebp - 4], 0x12
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.Re_dTextFi1e
mov byte [ebp - 4], 0x13
test eax, 0xffff0000
jne 0x42b922
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42b931
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402420
jmp 0x42b931
push 0xc
push str.Re_dTextFi1e
lea ecx, [ebp - 0x20]
call fcn.004021b0
mov byte [ebp - 4], 0x14
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x15
call fcn.00421a70
push 2
mov edx, eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x16
call fcn.0041f130
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
add esp, 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b98e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b9ab
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b9cb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42b9eb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x2c]
call fcn.00429500
mov dword [ebp - 4], 0x17
mov edx, dword [eax]
mov esi, dword [edi]
lea ecx, [edx - 0x10]
sub esi, 0x10
cmp ecx, esi
je 0x42ba47
cmp dword [esi + 0xc], 0
jl 0x42ba3c
mov eax, dword [ecx]
cmp eax, dword [esi]
jne 0x42ba3c
call fcn.004022e0
mov dword [ebp - 0x30], eax
mov ecx, ebx
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42ba35
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x30]
add eax, 0x10
mov dword [edi], eax
jmp 0x42ba47
push dword [edx - 0xc]
mov ecx, edi
push edx
call fcn.004021b0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x42be35
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42be35
cmp dword [ebp - 0x3c], 0
je 0x42bbb6
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.Fi1e__ize_is_too_6ig
mov dword [ebp - 4], 0x18
test eax, 0xffff0000
jne 0x42bab8
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42bac5
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402420
jmp 0x42bac5
push str.Fi1e__ize_is_too_6ig
lea ecx, [ebp - 0x20]
call fcn.004047f0
push str.Re_dFromFile
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x19
call fcn.00402020
mov byte [ebp - 4], 0x1a
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1b
call fcn.00421a70
push 2
mov edx, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x1c
call fcn.0041f130
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
add esp, 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bb36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bb53
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x19
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bb73
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bb93
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x30]
call fcn.00429500
push eax
mov ecx, edi
mov dword [ebp - 4], 0x1d
call fcn.004020f0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x30]
jmp 0x42ba4e
mov eax, dword [ebp - 0x40]
test eax, eax
jne 0x42bcc8
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
mov eax, str.File_size_is_zero
mov dword [ebp - 4], 0x1e
test eax, 0xffff0000
jne 0x42bc01
movzx esi, ax
mov ecx, esi
call fcn.00401970
test eax, eax
je 0x42bc0e
push esi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402420
jmp 0x42bc0e
push str.File_size_is_zero
lea ecx, [ebp - 0x20]
call fcn.004047f0
push str.ReadFromFi1e
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0x1f
call fcn.00402020
mov byte [ebp - 4], 0x20
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x21
call fcn.00421a70
push 2
mov edx, eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x22
call fcn.0041f130
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
add esp, 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bc7f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x20
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bc9c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1f
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bcbc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x20]
jmp 0x42ba4e
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 0x23
call fcn.0042c1c0
mov esi, dword [ebp - 0x4c]
push 0
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x40]
mov dword [ebp - 0x34], 0
push esi
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x42be52
push str.ReadFi1e_error
lea ecx, [ebp - 0x1c]
call fcn.00404310
push str.ReadFromFile
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x24
call fcn.00402020
mov byte [ebp - 4], 0x25
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x1c]
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x26
call fcn.00421a70
add esp, 4
mov edi, eax
mov byte [ebp - 4], 0x27
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, edi
lea ecx, [ebp - 0x2c]
call fcn.004219b0
push 2
mov edx, eax
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x28
call fcn.0041f130
mov byte [ebp - 4], 0x27
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
add esp, 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bda7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x26
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bdc7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 0x25
lea eax, [esi + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42bde4
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42be04
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x42be22
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x42be32
push eax
call fcn.004b009b
add esp, 4
mov edi, dword [ebp - 0x14]
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xe]
push eax
lea edx, [ebp - 0xd]
mov ecx, esi
mov byte [ebp - 0xd], 0
mov byte [ebp - 0xe], 0
mov dword [ebp - 0x20], 0
call fcn.00428de0
mov eax, dword [ebp - 0x20]
add esp, 8
test eax, eax
jle 0x42be90
add eax, esi
push eax
push esi
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0042c240
mov esi, dword [ebp - 0x4c]
cmp byte [ebp - 0xe], 0
mov edi, dword [ebp - 0x48]
je 0x42beb4
mov ecx, esi
cmp esi, edi
je 0x42beb4
nop
mov dl, byte [ecx]
mov bl, byte [ecx + 1]
mov byte [ecx + 1], dl
mov byte [ecx], bl
add ecx, 2
cmp ecx, edi
jne 0x42bea0
or ebx, 0xffffffff
sub edi, esi
cmp byte [edi + esi - 1], 0
je 0x42bf14
inc edi
push edi
lea ecx, [ebp - 0x4c]
call fcn.0042c1c0
mov esi, dword [ebp - 0x4c]
mov byte [edi + esi - 1], 0
mov eax, dword [0x55e860]
imul eax, eax
and eax, 0x8000000f
jns 0x42bee3
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 6
jne 0x42befa
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
cmp byte [ebp - 0xd], 0
je 0x42bf67
inc edi
push edi
lea ecx, [ebp - 0x4c]
call fcn.0042c1c0
mov esi, dword [ebp - 0x4c]
mov byte [edi + esi - 1], 0
jmp 0x42bf2f
cmp byte [ebp - 0xd], 0
je 0x42bf67
lea eax, [edi + 2]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0042c1c0
mov esi, dword [ebp - 0x4c]
mov word [edi + esi], 0
push esi
lea ecx, [ebp - 0x30]
call fcn.00402020
mov byte [ebp - 4], 0x29
mov edi, dword [ebp - 0x14]
push eax
mov ecx, edi
call fcn.004020f0
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x42bfc0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42bfc0
mov eax, dword [0x5556d8]
mov ecx, 0x5556d8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
push esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x2a
call fcn.004047f0
mov byte [ebp - 4], 0x2b
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.004020f0
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x42bfb7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, edi
mov ecx, edi
call fcn.00428760
test esi, esi
je 0x42be35
push esi
call fcn.004b009b
add esp, 4
jmp 0x42be35