Function at 0x548740
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
mov esi, dword [ebp + 0x14]
xor eax, eax
push edi
xor edx, edx
mov dword [ebp - 0x10], 0
xor edi, edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x24], 1
mov ecx, 0x102
mov dword [ebp - 4], edx
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x20], 0x1ff
mov dword [ebp - 0x18], ecx
test esi, esi
jle 0x5487cb
push esi
call fcn.00593e38
mov ebx, eax
add esp, 4
mov dword [ebp - 0xc], ebx
test ebx, ebx
je 0x5487c5
mov eax, dword [ebp + 8]
push dword [eax]
push 1
push esi
push ebx
call fcn.00595b79
mov eax, dword [ebp + 0x18]
add esp, 0x10
cmp word [eax + 0x4a], 2
jne 0x5487c5
xor ecx, ecx
test esi, esi
je 0x5487c5
movzx eax, byte [ecx + ebx]
mov al, byte [eax + 0x5d1f28]
mov byte [ecx + ebx], al
inc ecx
cmp ecx, esi
jb 0x5487b3
xor edx, edx
mov eax, ebx
jmp 0x5487ce
mov ebx, dword [ebp + 0x10]
mov dword [ebp + 0x14], ebx
cmp dword [ebp + 0x10], edi
jle 0x548a6a
mov esi, dword [ebp + 0xc]
lea ecx, [ecx]
test eax, eax
je 0x5487ed
movzx eax, byte [ebx]
inc ebx
mov dword [ebp + 0x14], ebx
jmp 0x54880e
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
mov ecx, dword [ebp + 0x18]
add esp, 4
mov edx, dword [ebp - 4]
cmp word [ecx + 0x4a], 2
jne 0x54880e
movzx eax, byte [eax + 0x5d1f28]
mov ecx, edi
add edi, 8
shl eax, cl
or edx, eax
mov dword [ebp - 4], edx
cmp edi, dword [ebp - 0x14]
jge 0x548858
cmp dword [ebp - 0xc], 0
je 0x54882e
movzx eax, byte [ebx]
inc ebx
mov dword [ebp + 0x14], ebx
jmp 0x54884f
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
mov ecx, dword [ebp + 0x18]
add esp, 4
mov edx, dword [ebp - 4]
cmp word [ecx + 0x4a], 2
jne 0x54884f
movzx eax, byte [eax + 0x5d1f28]
mov ecx, edi
shl eax, cl
or edx, eax
add edi, 8
mov ecx, dword [ebp - 0x14]
mov eax, edx
and eax, dword [ebp - 0x20]
sub edi, dword [ebp - 0x14]
movzx ebx, ax
mov eax, 0x101
sar edx, cl
mov dword [ebp - 4], edx
cmp bx, ax
je 0x548a6a
cmp word [ebp - 0x24], 0
mov eax, 0x100
je 0x54888e
cmp bx, ax
jne 0x548a63
mov dword [ebp - 0x24], 0
cmp bx, ax
jne 0x548973
mov ebx, dword [ebp + 0x18]
lea eax, [ebp - 0x1c]
push eax
push ebx
call fcn.00548ab0
add esp, 8
mov dword [ebp - 0x14], 9
cmp dword [ebp - 0xc], 0
mov ecx, 0x102
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], 0x1ff
je 0x5488d6
mov ebx, dword [ebp + 0x14]
movzx eax, byte [ebx]
inc ebx
mov dword [ebp + 0x14], ebx
jmp 0x5488f4
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
add esp, 4
cmp word [ebx + 0x4a], 2
mov ebx, dword [ebp + 0x14]
jne 0x5488f4
movzx eax, byte [eax + 0x5d1f28]
mov edx, dword [ebp - 4]
mov ecx, edi
shl eax, cl
add edi, 8
or edx, eax
mov dword [ebp - 4], edx
cmp edi, 9
jge 0x548941
cmp dword [ebp - 0xc], 0
je 0x548917
movzx eax, byte [ebx]
inc ebx
mov dword [ebp + 0x14], ebx
jmp 0x548938
mov eax, dword [ebp + 8]
push dword [eax]
call fcn.00597fff
mov ecx, dword [ebp + 0x18]
add esp, 4
mov edx, dword [ebp - 4]
cmp word [ecx + 0x4a], 2
jne 0x548938
movzx eax, byte [eax + 0x5d1f28]
mov ecx, edi
shl eax, cl
or edx, eax
add edi, 8
mov ebx, edx
mov eax, 0x101
and ebx, 0x1ff
sar edx, 9
sub edi, 9
mov dword [ebp - 4], edx
cmp bx, ax
je 0x548a6a
mov eax, 1
mov dword [ebp - 0x10], esi
mov byte [esi], bl
inc esi
mov dword [ebp - 8], eax
jmp 0x548a46
mov eax, dword [ebp - 0x18]
mov ecx, ebx
cmp ecx, eax
jge 0x5489a9
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x10], esi
mov eax, dword [eax + 0xa0]
lea ecx, [eax + ecx*8]
movzx eax, word [ecx + 4]
mov dword [ebp - 8], eax
add esi, eax
mov al, byte [ecx + 6]
dec esi
mov byte [esi], al
mov eax, dword [ebp - 0x10]
cmp esi, eax
jbe 0x5489ce
mov ecx, dword [ecx]
test ecx, ecx
jne 0x548994
jmp 0x5489ce
jle 0x5489ae
movzx ebx, ax
push dword [ebp - 8]
push dword [ebp - 0x10]
push esi
call fcn.00592150
mov edx, dword [ebp - 8]
add esp, 0xc
mov al, byte [esi]
mov dword [ebp - 0x10], esi
mov byte [edx + esi], al
inc edx
mov dword [ebp - 8], edx
mov eax, esi
mov al, byte [eax]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x1c]
add esi, dword [ebp - 8]
mov byte [ecx + 6], al
mov eax, dword [ebp - 0x28]
movzx ecx, ax
mov eax, dword [ebp + 0x18]
shl ecx, 3
mov eax, dword [eax + 0xa0]
mov ax, word [ecx + eax + 4]
inc ax
mov word [edx + 4], ax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 0xa0]
add eax, ecx
mov ecx, edx
mov edx, dword [ebp - 4]
mov dword [ecx], eax
add ecx, 8
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x20]
jle 0x548a43
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0xc
jle 0x548a38
mov ecx, 0xc
mov dword [ebp - 0x18], 0xfff
mov dword [ebp - 0x14], ecx
mov eax, 1
shl eax, cl
dec eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
movzx ecx, bx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 0x10]
sub ecx, eax
mov dword [ebp + 0x10], ecx
test ecx, ecx
jle 0x548a6a
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp - 0xc]
jmp 0x5487e0
mov ebx, 9
jmp 0x548a6c
xor ebx, ebx
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x548a7c
push eax
call fcn.00592c4b
add esp, 4
pop edi
pop esi
mov ax, bx
pop ebx
mov esp, ebp
pop ebp
ret