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

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
push dword [0x7ea724]
xor ebp, ebp
call fcn.0058c83f
mov ebx, eax
call fcn.00551071
cmp dword [esp + 0x1c], ebp
mov esi, 0x69cd88
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 0x550b54
push ebp
push 0x80
push 3
push ebp
push 1
push closesocket
push esi
call edi
mov dword [ebx], eax
cmp eax, 0xffffffff
jne 0x550b44
push ebp
push 0x80
push 3
push ebp
push 3
push closesocket
push esi
call edi
mov dword [ebx], eax
mov dword [ebx + 0xc], 1
cmp eax, 0xffffffff
je 0x550e14
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 0x550bc5
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 0x550c7e
push 3
lea eax, [esp + 0x14]
push 0x6b3e28
push eax
call fcn.0052c010
add esp, 0xc
test eax, eax
jne 0x550c7e
mov dword [ebx + 0x18], 0xfde9
sub edi, 3
test edi, edi
jle 0x550cae
lea eax, [edi + 2]
xor ecx, ecx
push eax
push ecx
push dword [0x7e42f8]
cmp dword [ebx + 0x18], ecx
jne 0x550c90
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x550cae
lea eax, [edi*4 + 2]
push eax
push 0
push dword [0x7e42f8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x550cae
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.00677a40
mov edi, eax
push edi
call fcn.006778e0
mov esi, eax
push esi
push dword [ebx + 0x10]
call fcn.0067ff70
pop ecx
pop ecx
push esi
call fcn.006778d0
push edi
call fcn.006778d0
push dword [ebx + 0x10]
call fcn.00680070
pop ecx
push dword [esp + 0x1c]
mov dword [ebx + 0x18], 0xfde9
mov edi, eax
push 0
push dword [0x7e42f8]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x550cae
xor eax, eax
push eax
push eax
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x550bcd
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x550cae
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 0x550e51
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 0x550e51
push 0x10
pop edi
mov al, byte [esi]
cmp al, 0x20
je 0x550cdd
cmp al, 9
jne 0x550ce0
inc esi
jmp 0x550cd3
cmp al, 0x3b
jne 0x550d2e
inc esi
cmp byte [esi], 0x20
jne 0x550ceb
inc esi
push edi
test ebp, ebp
je 0x550cf8
push ebp
call fcn.0058d008
jmp 0x550d01
lea eax, [ebx + 0x1c]
push eax
call fcn.0058cf7c
lea ebp, [eax - 8]
pop ecx
pop ecx
mov dword [ebp + 8], 2
mov dword [ebp + 0xc], esi
jmp 0x550d23
cmp al, 0xa
je 0x550dfb
cmp al, 0xd
je 0x550dfb
inc esi
mov al, byte [esi]
test al, al
jne 0x550d12
jmp 0x550dfb
cmp al, 0x5b
jne 0x550d95
inc esi
push edi
test ebp, ebp
je 0x550d40
push ebp
call fcn.0058d008
jmp 0x550d49
lea eax, [ebx + 0x1c]
push eax
call fcn.0058cf7c
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 0x550d7a
mov cl, al
mov al, cl
cmp cl, 0x5d
je 0x550d7a
cmp cl, 0xa
je 0x550d7a
cmp cl, 0xd
je 0x550d7a
inc esi
mov al, byte [esi]
mov cl, al
test al, al
jne 0x550d60
mov byte [esi], 0
inc esi
cmp al, 0x5d
jne 0x550dff
jmp 0x550d8d
cmp al, 0xa
je 0x550dff
cmp al, 0xd
je 0x550dff
inc esi
mov al, byte [esi]
test al, al
jne 0x550d84
jmp 0x550dff
cmp al, 0xa
je 0x550dff
cmp al, 0xd
je 0x550dff
mov edx, esi
jmp 0x550db0
cmp al, 0x3d
je 0x550db4
cmp al, 0xd
je 0x550db4
cmp al, 0xa
je 0x550db4
inc esi
mov al, byte [esi]
test al, al
jne 0x550da1
lea eax, [esi - 1]
jmp 0x550dc6
mov cl, byte [eax]
cmp cl, 0x20
je 0x550dc5
cmp cl, 9
jne 0x550dca
dec eax
cmp eax, edx
ja 0x550db9
mov byte [eax + 1], 0
inc esi
mov al, byte [esi]
cmp al, 0x20
je 0x550dce
cmp al, 9
je 0x550dce
push esi
push edx
lea eax, [ebx + 0x1c]
push ebp
push eax
call fcn.00550e6c
add esp, 0x10
mov ebp, eax
jmp 0x550df5
cmp al, 0xa
je 0x550dfb
cmp al, 0xd
je 0x550dfb
inc esi
mov al, byte [esi]
test al, al
jne 0x550dec
mov byte [esi], 0
inc esi
mov al, byte [esi]
cmp al, 0xa
je 0x550dfe
cmp al, 0xd
je 0x550dfe
cmp esi, dword [ebx + 0x14]
jb 0x550cd3
jmp 0x550e51
mov eax, dword [esp + 0x20]
and dword [ebx], ebp
push esi
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x18], 0xfde9
call fcn.005236eb
pop ecx
lea eax, [eax*2 + 2]
push eax
push 0
push dword [0x7e42f8]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 4], eax
test eax, eax
je 0x550e51
push esi
push eax
call fcn.0067fc08
pop ecx
pop ecx
mov eax, dword [ebx]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 0xc