Function at 0x4856b0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x581ae8
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x5ecfcc]
xor eax, esp
mov dword [esp + 0x54], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5ecfcc]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
push esi
push 1
lea eax, [esp + 0x48]
mov ebp, ecx
push 4
push eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], ebx
call fcn.0055d90a
add esp, 0x10
xor ecx, ecx
xor eax, eax
lea ecx, [ecx]
movzx edx, byte [esp + eax + 0x40]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 4
jl 0x485710
mov eax, ecx
push esi
mov dword [esp + 0x38], ecx
mov dword [ebx], eax
xor edi, edi
call fcn.0055dc17
add esp, 4
test eax, eax
jne 0x485fcb
jmp 0x485744
mov ebx, dword [esp + 0x24]
cmp edi, dword [esp + 0x34]
jge 0x485fcf
push 4
lea eax, [ebx + 4]
push 0
push eax
mov dword [ebx], 0xffffffff
call fcn.00578d20
or ecx, 0xffffffff
mov word [ebx + 8], cx
mov ebx, dword [ebx + 0xc]
add esp, 0xc
test ebx, ebx
je 0x48577b
push ebx
call fcn.00525c2b
add esp, 4
mov eax, dword [esp + 0x24]
push esi
xor ebx, ebx
push 1
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], 0xffffffff
add eax, 4
push 4
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*4]
mov dword [esp + 0x64], 0xf
mov dword [esp + 0x60], ebx
mov byte [esp + 0x50], bl
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x24]
mov dl, byte [eax + ebx + 4]
add eax, 4
mov byte [esp + 0x48], dl
mov eax, dword [esp + 0x48]
push eax
push 1
lea ecx, [esp + 0x54]
call fcn.00485600
inc ebx
cmp ebx, 4
jb 0x4857b3
mov ebx, dword [esp + 0x60]
mov ecx, ebx
cmp ebx, 4
jb 0x4857e8
mov ecx, 4
cmp dword [esp + 0x64], 0x10
mov eax, dword [esp + 0x50]
jae 0x4857f7
lea eax, [esp + 0x50]
push ecx
push 0x598b58
push eax
call fcn.00460810
add esp, 0xc
test eax, eax
jne 0x485f9e
cmp ebx, 4
jb 0x485f9e
cmp ebx, 4
setne al
test eax, eax
jne 0x485f9e
push esi
push 1
lea ecx, [esp + 0x34]
push 2
push ecx
call fcn.0055d90a
add esp, 0x10
lea ebx, [edi + eax*2]
xor ecx, ecx
xor eax, eax
mov edi, edi
movzx edx, byte [esp + eax + 0x2c]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485840
mov eax, dword [esp + 0x24]
push esi
push 1
mov word [eax + 8], cx
lea ecx, [esp + 0x2b]
push 1
push ecx
call fcn.0055d90a
movzx edi, byte [esp + 0x33]
add esp, 0x10
add ebx, eax
test edi, edi
jle 0x485894
push edi
call fcn.00525c36
mov edx, dword [esp + 0x28]
push esi
push 1
push edi
push eax
mov dword [edx + 0xc], eax
call fcn.0055d90a
imul eax, edi
add esp, 0x14
add ebx, eax
and edi, 0x80000001
jns 0x4858a1
dec edi
or edi, 0xfffffffe
inc edi
jne 0x4858b7
push esi
push 1
lea eax, [esp + 0x2b]
push 1
push eax
call fcn.0055d90a
add esp, 0x10
add ebx, eax
push esi
push 1
lea ecx, [esp + 0x44]
push 4
push ecx
call fcn.0055d90a
add esp, 0x10
lea edi, [ebx + eax*4]
xor ecx, ecx
xor eax, eax
movzx edx, byte [esp + eax + 0x3c]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 4
jl 0x4858d0
mov eax, dword [esp + 0x24]
mov edx, ecx
and edx, 0x80000001
mov dword [eax + 0x10], ecx
jns 0x4858f6
dec edx
or edx, 0xfffffffe
inc edx
je 0x4858fc
inc ecx
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x10]
test ecx, ecx
jle 0x485f9e
movsx eax, word [eax + 8]
add eax, 0xfffffc18
cmp eax, 0x2f
ja case.0x485920.1001
movzx eax, byte [eax + 0x48601c]
jmp dword [eax*4 + 0x485ff8]
push esi
push 1
lea ecx, [esp + 0x1c]
push 2
push ecx
mov byte [ebp + 0x5c], 1
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485944
push esi
push 1
mov word [ebp + 0x52], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485971
push esi
push 1
mov word [ebp + 0x54], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
mov edi, edi
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x4859a0
push esi
push 1
mov word [ebp + 0x56], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea ecx, [ecx]
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x4859d0
push esi
push 1
mov word [ebp + 0x58], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
lea ecx, [ecx]
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485a00
mov word [ebp + 0x5a], cx
jmp 0x485f9e
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
mov byte [ebp + 0x50], 1
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485a36
push esi
push 1
mov word [ebp + 0x3c], ax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485a63
push esi
push 1
mov dword [ebp + 0x40], eax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
nop
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485a90
push esi
push 1
mov word [ebp + 0x44], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea ecx, [ecx]
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485ac0
push esi
push 1
mov word [ebp + 0x46], ax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea ecx, [ecx]
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485af0
push esi
push 1
mov dword [ebp + 0x48], eax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
lea esp, [esp]
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485b20
mov word [ebp + 0x4c], cx
jmp 0x485f9e
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
mov byte [ebp + 0x6c], 1
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485b56
mov word [ebp + 0x5e], cx
lea ebx, [ebp + 0x60]
mov dword [esp + 0x28], 4
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
mov edi, edi
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485b90
mov word [ebx], cx
add ebx, 2
sub dword [esp + 0x28], 1
jne 0x485b75
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485bc6
push esi
push 1
mov word [ebp + 0x68], ax
lea eax, [esp + 0x2a]
push 1
push eax
call fcn.0055d90a
add edi, eax
movzx eax, byte [esp + 0x32]
push esi
push 1
test eax, eax
lea edx, [esp + 0x3a]
setne cl
push 1
push edx
mov byte [ebp + 0x6a], cl
call fcn.0055d90a
add esp, 0x20
add edi, eax
movzx eax, byte [esp + 0x22]
mov byte [ebp + 0x6b], al
jmp 0x485f9e
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485c32
test ecx, ecx
setne al
mov byte [ebp + 0x91], al
jmp 0x485f9e
push esi
push 1
lea ecx, [esp + 0x24]
push 4
push ecx
mov byte [ebp + 0x90], 1
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485c72
push esi
push 1
mov dword [ebp + 0x70], eax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
mov edi, edi
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485ca0
push esi
push 1
mov dword [ebp + 0x74], eax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea esp, [esp]
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485cd0
push esi
push 1
mov dword [ebp + 0x78], eax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea esp, [esp]
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485d00
push esi
push 1
mov dword [ebp + 0x7c], eax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
lea esp, [esp]
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485d30
push esi
push 1
mov dword [ebp + 0x80], eax
lea eax, [esp + 0x24]
push 4
push eax
call fcn.0055d90a
lea edi, [edi + eax*4]
add esp, 0x10
xor eax, eax
xor ecx, ecx
nop
movzx edx, byte [esp + ecx + 0x1c]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 4
jl 0x485d60
push esi
push 1
mov dword [ebp + 0x84], eax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
nop
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485d90
push esi
push 1
mov word [ebp + 0x88], ax
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
lea edi, [edi + eax*2]
add esp, 0x10
xor eax, eax
xor ecx, ecx
movzx edx, byte [esp + ecx + 0x14]
shl eax, 8
inc ecx
or eax, edx
cmp ecx, 2
jl 0x485dc0
mov word [ebp + 0x8a], ax
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + 0x10]
sub ebx, 0x1c
push ebx
call fcn.00525c36
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
movzx eax, word [ecx + 8]
mov edx, 0x409
add esp, 4
cmp dx, ax
jne 0x485e8c
test ebx, ebx
jbe 0x485ecf
mov ebp, dword [esp + 0x28]
dec ebx
mov eax, 0xaaaaaaab
mul ebx
mov ebx, edx
shr ebx, 1
inc ebp
inc ebx
mov edi, edi
push esi
push 1
lea eax, [esp + 0x23]
push 1
push eax
call fcn.0055d90a
push esi
add edi, eax
movzx eax, byte [esp + 0x2f]
push 1
lea ecx, [esp + 0x33]
push 1
push ecx
mov byte [ebp + 1], al
call fcn.0055d90a
push esi
add edi, eax
movzx eax, byte [esp + 0x3f]
push 1
lea edx, [esp + 0x43]
push 1
push edx
mov byte [ebp], al
call fcn.0055d90a
add edi, eax
movzx eax, byte [esp + 0x4b]
mov byte [ebp - 1], al
add esp, 0x30
add ebp, 3
sub ebx, 1
jne 0x485e20
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x44]
push eax
call fcn.00525c2b
add esp, 4
jmp 0x485f9e
mov ecx, 0x40c
cmp cx, ax
jne 0x485ecf
mov dword [esp + 0x38], 0
test ebx, ebx
jbe 0x485ecf
push esi
push 1
lea edx, [esp + 0x23]
push 1
push edx
call fcn.0055d90a
movzx ecx, byte [esp + 0x2b]
mov edx, dword [esp + 0x38]
add edi, eax
mov eax, dword [esp + 0x48]
mov byte [eax + edx], cl
inc eax
add esp, 0x10
mov dword [esp + 0x38], eax
cmp eax, ebx
jb 0x485ea2
mov eax, dword [esp + 0x28]
push eax
call fcn.00525c2b
add esp, 4
jmp 0x485f9e
push esi
push 1
lea ecx, [esp + 0x24]
push 4
push ecx
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*4]
xor ecx, ecx
xor eax, eax
lea ebx, [ebx]
movzx edx, byte [esp + eax + 0x1c]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 4
jl 0x485f00
mov dword [ebp + 0x38], ecx
jmp 0x485f9e
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485f31
mov word [ebp + 0x20], cx
jmp 0x485f9e
push esi
push 1
lea eax, [esp + 0x1c]
push 2
push eax
call fcn.0055d90a
add esp, 0x10
lea edi, [edi + eax*2]
xor ecx, ecx
xor eax, eax
movzx edx, byte [esp + eax + 0x14]
shl ecx, 8
inc eax
or ecx, edx
cmp eax, 2
jl 0x485f60
mov word [ebp + 0x22], cx
jmp 0x485f9e
xor ebx, ebx
test ecx, ecx
jbe 0x485f9e
lea esp, [esp]
push esi
push 1
lea eax, [esp + 0x3b]
push 1
push eax
call fcn.0055d90a
mov ecx, dword [esp + 0x34]
inc ebx
add esp, 0x10
add edi, eax
cmp ebx, dword [ecx + 0x10]
jb 0x485f80
cmp dword [esp + 0x64], 0x10
mov dword [esp + 0x74], 0xffffffff
jb 0x485fba
mov edx, dword [esp + 0x50]
push edx
call fcn.00525c2b
add esp, 4
push esi
call fcn.0055dc17
add esp, 4
test eax, eax
je 0x485740
cmp edi, dword [esp + 0x34]
jne 0x485fd5
mov al, 1
jmp 0x485fd7
xor al, al
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x54]
xor ecx, esp
call fcn.0055953b
add esp, 0x64
ret 8