Function at 0x465a90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
mov eax, dword [0x596c60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov ebx, edx
test ebx, ebx
mov edi, ecx
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xd0], 0
jne 0x465ad0
pop edi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005072fd
mov esp, ebp
pop ebp
ret
push esi
lea esi, [ebp - 0xd0]
mov eax, ebx
call fcn.004653d0
cmp eax, 1
je 0x465bb1
test edi, edi
je 0x465de0
cmp dword [edi], 0x53464348
jne 0x465de0
cmp dword [edi + 0x4158], 3
jl 0x465de0
push 0x59fd40
call fcn.00410be0
add esp, 4
test eax, eax
je 0x465de0
push str.read_operation_failed
call fcn.0040feb0
mov esi, eax
or eax, 0xffffffff
add esp, 4
cmp eax, str.ts_csnetipc_private_processpendingread
jne 0x465b65
push str.ts_csnetipc_private_processpendingread
push str._s_ENTER
lea ecx, [ebp - 0xcc]
push 0xc8
push ecx
call fcn.00410530
add esp, 0x10
push esi
lea eax, [ebp - 0xcc]
push 0x2a2
jmp 0x465dc0
mov edx, 0xfffffffe
cmp edx, str.ts_csnetipc_private_processpendingread
jne 0x465ba1
push str.ts_csnetipc_private_processpendingread
push str._s_EXIT
lea eax, [ebp - 0xcc]
push 0xc8
push eax
call fcn.00410530
add esp, 0x10
push esi
lea eax, [ebp - 0xcc]
push 0x2a2
jmp 0x465dc0
push esi
mov eax, str.ts_csnetipc_private_processpendingread
push 0x2a2
jmp 0x465dc0
cmp dword [ebp + 8], 0
je 0x465c2c
cmp dword [ebx + 0x80c], 0
jne 0x465c2c
lea esi, [ebx + 0x828]
mov edx, dword [ebx]
push esi
lea ecx, [ebp - 0xd4]
push ecx
push 0x800
lea eax, [ebx + 0xc]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x465c08
mov edi, dword [ebp - 0xd4]
call fcn.004652f0
cmp eax, 1
mov edi, dword [ebp - 0xd8]
jne 0x465c42
mov eax, dword [ebp - 0xd4]
add dword [ebp - 0xd0], eax
jmp 0x465c23
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x465d0c
mov dword [ebx + 0x80c], 1
cmp dword [ebx + 0x80c], 0
je 0x465bc6
pop esi
pop edi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005072fd
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x465de0
cmp dword [edi], 0x53464348
jne 0x465de0
cmp dword [edi + 0x4158], 3
jl 0x465de0
push 0x59fd40
call fcn.00410be0
add esp, 4
test eax, eax
je 0x465de0
push str.failed_to_process_data
call fcn.0040feb0
or ecx, 0xffffffff
add esp, 4
cmp ecx, str.ts_csnetipc_private_processpendingread
mov esi, eax
jne 0x465cc1
push str.ts_csnetipc_private_processpendingread
push str._s_ENTER
lea edx, [ebp - 0xcc]
push 0xc8
push edx
call fcn.00410530
add esp, 0x10
push esi
lea eax, [ebp - 0xcc]
push 0x2c3
jmp 0x465dc0
mov eax, 0xfffffffe
cmp eax, str.ts_csnetipc_private_processpendingread
jne 0x465cfc
push str.ts_csnetipc_private_processpendingread
push str._s_EXIT
lea ecx, [ebp - 0xcc]
push 0xc8
push ecx
call fcn.00410530
add esp, 0x10
push esi
lea eax, [ebp - 0xcc]
push 0x2c3
jmp 0x465dc0
push esi
mov eax, str.ts_csnetipc_private_processpendingread
push 0x2c3
jmp 0x465dc0
test edi, edi
je 0x465de0
cmp dword [edi], 0x53464348
jne 0x465de0
cmp dword [edi + 0x4158], 3
jl 0x465de0
push 0x59fd40
call fcn.00410be0
add esp, 4
test eax, eax
je 0x465de0
push str.read_failed
call fcn.0040feb0
or edx, 0xffffffff
add esp, 4
cmp edx, str.ts_csnetipc_private_processpendingread
mov esi, eax
jne 0x465d82
push str.ts_csnetipc_private_processpendingread
push str._s_ENTER
lea eax, [ebp - 0xcc]
push 0xc8
push eax
call fcn.00410530
add esp, 0x10
lea eax, [ebp - 0xcc]
jmp 0x465dba
mov ecx, 0xfffffffe
cmp ecx, str.ts_csnetipc_private_processpendingread
jne 0x465db5
push str.ts_csnetipc_private_processpendingread
push str._s_EXIT
lea edx, [ebp - 0xcc]
push 0xc8
push edx
call fcn.00410530
add esp, 0x10
lea eax, [ebp - 0xcc]
jmp 0x465dba
mov eax, str.ts_csnetipc_private_processpendingread
push esi
push 0x2de
push str.D:BUILD_478059BUILDTS_SDKTS_SDK_SRC_source_ts_ts_csnetipc.c
push eax
push 0x1000
push 3
push edi
call fcn.0040fee0
push 0x59fd40
call fcn.00410c00
add esp, 0x20
mov ecx, dword [ebp - 4]
pop esi
pop edi
xor ecx, ebp
or eax, 0xffffffff
pop ebx
call fcn.005072fd
mov esp, ebp
pop ebp
ret