Function at 0x4973fe
Capabilities:
Get file size
Read file on windows

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
push dword [0x5af468]
xor ebp, ebp
call fcn.004bef0d
mov ebx, eax
call fcn.00497a49
cmp dword [esp + 0x1c], ebp
mov esi, 0x55e448
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileW]
cmovne esi, dword [esp + 0x1c]
xor eax, eax
push eax
push 0x80
push 3
push eax
push 1
push 0xc0000000
push esi
mov dword [ebx + 0xc], eax
call edi
mov dword [ebx], eax
cmp eax, 0xffffffff
jne 0x49748a
push ebp
push 0x80
push 3
push ebp
push 1
push connect
push esi
call edi
mov dword [ebx], eax
cmp eax, 0xffffffff
jne 0x49747a
push ebp
push 0x80
push 3
push ebp
push 3
push connect
push esi
call edi
mov dword [ebx], eax
mov dword [ebx + 0xc], 1
cmp eax, 0xffffffff
je 0x49774a
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
xor ecx, ecx
cmp dword [esp + 0x24], 2
mov eax, 0xfde9
cmovne eax, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebx + 0x2c], eax
cmp edi, 3
jl 0x4974fb
push ecx
lea eax, [esp + 0x18]
push eax
push 3
lea eax, [esp + 0x1c]
push eax
push dword [ebx]
call esi
cmp dword [esp + 0x14], 3
jne 0x4975b4
push 3
lea eax, [esp + 0x14]
push 0x56cb44
push eax
call fcn.0045d070
add esp, 0xc
test eax, eax
jne 0x4975b4
mov dword [ebx + 0x18], 0xfde9
sub edi, 3
test edi, edi
jle 0x4975e4
lea eax, [edi + 2]
xor ecx, ecx
push eax
push ecx
push dword [0x5acc94]
cmp dword [ebx + 0x18], ecx
jne 0x4975c6
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x4975e4
lea eax, [edi*4 + 2]
push eax
push 0
push dword [0x5acc94]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x4975e4
push 0
lea eax, [esp + 0x18]
push eax
push edi
push esi
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
push esi
mov byte [esi + eax], 0
call fcn.00537c60
mov edi, eax
push edi
call fcn.00537b00
mov esi, eax
push esi
push dword [ebx + 0x10]
call fcn.005422d0
pop ecx
pop ecx
push esi
call fcn.00537af0
push edi
call fcn.00537af0
push dword [ebx + 0x10]
call fcn.00542190
pop ecx
push dword [esp + 0x1c]
mov dword [ebx + 0x18], 0xfde9
mov edi, eax
push 0
push dword [0x5acc94]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x4975e4
xor eax, eax
push eax
push eax
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x497503
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x4975e4
push 0
lea ecx, [esp + 0x18]
push ecx
push edi
push eax
push dword [ebx]
call esi
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x497787
xor ecx, ecx
mov word [eax + edi], cx
mov esi, dword [ebx + 0x10]
lea eax, [esi + edi]
mov dword [ebx + 0x14], eax
cmp esi, eax
jae 0x497787
push 0x10
pop edi
mov al, byte [esi]
cmp al, 0x20
je 0x497613
cmp al, 9
jne 0x497616
inc esi
jmp 0x497609
cmp al, 0x3b
jne 0x497664
inc esi
cmp byte [esi], 0x20
jne 0x497621
inc esi
push edi
test ebp, ebp
je 0x49762e
push ebp
call fcn.004bf8a1
jmp 0x497637
lea eax, [ebx + 0x1c]
push eax
call fcn.004bf832
lea ebp, [eax - 8]
pop ecx
pop ecx
mov dword [ebp + 8], 2
mov dword [ebp + 0xc], esi
jmp 0x497659
cmp al, 0xa
je 0x497731
cmp al, 0xd
je 0x497731
inc esi
mov al, byte [esi]
test al, al
jne 0x497648
jmp 0x497731
cmp al, 0x5b
jne 0x4976cb
inc esi
push edi
test ebp, ebp
je 0x497676
push ebp
call fcn.004bf8a1
jmp 0x49767f
lea eax, [ebx + 0x1c]
push eax
call fcn.004bf832
lea ebp, [eax - 8]
mov dword [ebp + 8], 1
mov dword [ebp + 0xc], esi
mov al, byte [esi]
pop ecx
pop ecx
test al, al
je 0x4976b0
mov cl, al
mov al, cl
cmp cl, 0x5d
je 0x4976b0
cmp cl, 0xa
je 0x4976b0
cmp cl, 0xd
je 0x4976b0
inc esi
mov al, byte [esi]
mov cl, al
test al, al
jne 0x497696
mov byte [esi], 0
inc esi
cmp al, 0x5d
jne 0x497735
jmp 0x4976c3
cmp al, 0xa
je 0x497735
cmp al, 0xd
je 0x497735
inc esi
mov al, byte [esi]
test al, al
jne 0x4976ba
jmp 0x497735
cmp al, 0xa
je 0x497735
cmp al, 0xd
je 0x497735
mov edx, esi
jmp 0x4976e6
cmp al, 0x3d
je 0x4976ea
cmp al, 0xd
je 0x4976ea
cmp al, 0xa
je 0x4976ea
inc esi
mov al, byte [esi]
test al, al
jne 0x4976d7
lea eax, [esi - 1]
jmp 0x4976fc
mov cl, byte [eax]
cmp cl, 0x20
je 0x4976fb
cmp cl, 9
jne 0x497700
dec eax
cmp eax, edx
ja 0x4976ef
mov byte [eax + 1], 0
inc esi
mov al, byte [esi]
cmp al, 0x20
je 0x497704
cmp al, 9
je 0x497704
push esi
push edx
lea eax, [ebx + 0x1c]
push ebp
push eax
call fcn.004977a2
add esp, 0x10
mov ebp, eax
jmp 0x49772b
cmp al, 0xa
je 0x497731
cmp al, 0xd
je 0x497731
inc esi
mov al, byte [esi]
test al, al
jne 0x497722
mov byte [esi], 0
inc esi
mov al, byte [esi]
cmp al, 0xa
je 0x497734
cmp al, 0xd
je 0x497734
cmp esi, dword [ebx + 0x14]
jb 0x497609
jmp 0x497787
mov eax, dword [esp + 0x20]
and dword [ebx], ebp
push esi
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x18], 0xfde9
call fcn.00454608
pop ecx
lea eax, [eax*2 + 2]
push eax
push 0
push dword [0x5acc94]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 4], eax
test eax, eax
je 0x497787
push esi
push eax
call fcn.00540568
pop ecx
pop ecx
mov eax, dword [ebx]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 0xc