Function at 0x142e5734
Capabilities:
Get file size
Print debug messages
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x29
push 0
push 0
dec ecx
jne 0x142e573c
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x142e5d5b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x142e577a
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x30]
mov eax, 0x142e5d70
call fcn.141227e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x142e5784
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0xc]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0xc]
mov ecx, 0xff
call fcn.1410a860
xor eax, eax
mov dword [0x142fb424], eax
xor eax, eax
mov dword [0x142fb428], eax
mov dword [0x142fb54c], 1
xor eax, eax
push ebp
push 0x142e582d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0x10]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x10]
mov ecx, 0xff
call fcn.1410a860
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d1114]
call fcn.142d5648
mov dword [0x142fb550], eax
mov eax, dword [0x142fb550]
call fcn.14107e50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x142e5837
inc dword [0x142fb54c]
cmp dword [0x142fb54c], 0xa001
jne 0x142e57ca
push 0x142e5d78
call sub.kernel32.dll_OutputDebugStringA
mov eax, 0x142fb114
xor ecx, ecx
mov edx, 0xff
call fcn.141077f8
push 0xff
push 0x142fb114
mov eax, dword [0x142f85a0]
push eax
call sub.kernel32.dll_GetModuleFileNameA
mov dword [0x142fb54c], 1
xor eax, eax
push ebp
push 0x142e58e2
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0x14]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x14]
mov ecx, 0xff
call fcn.1410a860
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x142e58ec
inc dword [0x142fb54c]
cmp dword [0x142fb54c], 0x12aa1
jne 0x142e5883
push 0x142e5d7c
call sub.kernel32.dll_OutputDebugStringA
lea eax, [ebp - 0x138]
mov edx, 0x142fb114
mov ecx, pe_nt_image_headers32
call fcn.14107998
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x38]
call fcn.1410a8cc
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.14123a20
lea eax, [ebp - 0x34]
mov edx, 0x142e5d8c
call fcn.1410a958
mov edx, dword [ebp - 0x34]
mov eax, 0x142fb324
mov ecx, 0xff
call fcn.1410a860
push 0x142fb325
call sub.kernel32.dll_OutputDebugStringA
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0x18]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x18]
mov ecx, 0xff
call fcn.1410a860
push 0
push 0
push 3
push 0
push 3
push 0x80000000
push 0x142fb325
call sub.kernel32.dll_CreateFileA
mov dword [0x142fb548], eax
mov dword [0x142fb54c], 1
xor eax, eax
push ebp
push 0x142e5a18
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d1114]
call fcn.142d5648
mov dword [0x142fb550], eax
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0x1c]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x1c]
mov ecx, 0xff
call fcn.1410a860
mov eax, dword [0x142fb550]
call fcn.14107e50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x142e5a22
inc dword [0x142fb54c]
cmp dword [0x142fb54c], 0x4f01
jne 0x142e59b5
cmp dword [0x142fb548], 0xffffffff
je 0x142e5d1e
push 0x142e5da4
call sub.kernel32.dll_OutputDebugStringA
push 0
mov eax, dword [0x142fb548]
push eax
call sub.kernel32.dll_GetFileSize
mov dword [0x142fb440], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
mov dword [0x142fb31c], 0xd
mov eax, dword [0x142fb440]
add eax, 0x1000
call fcn.142e562c
mov dword [0x142fb314], eax
cmp dword [0x142fb314], 0
je 0x142e5d1e
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
mov dword [0x142fb320], 0x20
cmp dword [0x142fb314], 0
je 0x142e5d1e
push 0
push 0x142fb444
mov eax, dword [0x142fb440]
push eax
mov eax, dword [0x142fb314]
push eax
mov eax, dword [0x142fb548]
push eax
call sub.kernel32.dll_ReadFile
mov dword [0x142fb318], 1
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
cmp dword [0x142fb548], 0
je 0x142e5b26
mov eax, dword [0x142fb548]
push eax
call sub.kernel32.dll_CloseHandle_1
push 0x142e5da8
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x142fb440]
test eax, eax
jb 0x142e5ca0
inc eax
mov dword [ebp - 8], eax
mov dword [0x142fb54c], 0
cmp dword [0x142fb54c], 0x1f20
ja 0x142e5ba7
cmp dword [0x142fb54c], 0xc
jb 0x142e5ba7
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
push 0x3fff
push 0x99999999
push 0x9999999a
lea edx, [ebp - 0x20]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x20]
mov ecx, 0xff
call fcn.1410a860
mov eax, dword [ebp - 4]
call fcn.14107e50
mov al, byte [0x142fb31c]
add al, byte [0x142fb320]
add al, byte [0x142fb318]
mov edx, dword [0x142fb314]
add edx, dword [0x142fb54c]
add byte [edx], al
cmp dword [0x142fb54c], 0x1f10
ja 0x142e5bf4
cmp dword [0x142fb54c], 0xb
jb 0x142e5bf4
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
mov al, byte [0x142fb318]
add al, byte [0x142fb31c]
add al, byte [0x142fb320]
mov edx, dword [0x142fb314]
add edx, dword [0x142fb54c]
xor byte [edx], al
cmp dword [0x142fb54c], 0x1010
ja 0x142e5c72
cmp dword [0x142fb54c], 0x81
jb 0x142e5c72
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
push 0x4000
push 0x8ccccccc
push 0xcccccccd
lea edx, [ebp - 0x24]
mov eax, dword [0x142f4140]
call fcn.14125624
mov eax, 0x142fb448
mov edx, dword [ebp - 0x24]
mov ecx, 0xff
call fcn.1410a860
mov eax, dword [ebp - 4]
call fcn.14107e50
mov al, byte [0x142fb31c]
add al, byte [0x142fb320]
add al, byte [0x142fb318]
mov edx, dword [0x142fb314]
add edx, dword [0x142fb54c]
add byte [edx], al
inc dword [0x142fb54c]
dec dword [ebp - 8]
jne 0x142e5b4b
lea edx, [ebp - 0x14c]
mov eax, dword [0x142fb314]
call fcn.142ddaa8
lea esi, [ebp - 0x14c]
mov edi, 0x142fb42c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dl, 1
mov eax, dword [0x142d0fd8]
call fcn.142d6460
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.14107e50
push 0x142e5dac
call sub.kernel32.dll_OutputDebugStringA
lea eax, [ebp + 0x1412bd24]
mov edx, 0x142e5db0
mov eax, 0x142fb42c
call fcn.142dd958
mov dword [0x142fb554], eax
cmp dword [0x142fb554], 0
je 0x142e5d1e
push 0x142e5db8
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
call dword [0x142fb554]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x142e5d62
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.14109d00
lea eax, [ebp - 0x30]
call fcn.14109ce8
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.14109d30
lea eax, [ebp - 0x24]
mov edx, 7
call fcn.14109d00
ret