Function at 0x488210
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
push eax
push edi
call fcn.004878d0
test eax, eax
jne 0x488985
test ebp, ebp
mov dword [esp + 0x14], eax
je 0x488273
mov eax, dword [ebp]
test eax, eax
je 0x48823c
mov ecx, dword [edi]
mov dword [eax], ecx
mov eax, dword [ebp + 4]
test eax, eax
je 0x488248
mov edx, dword [edi + 4]
mov dword [eax], edx
mov eax, dword [ebp + 8]
test eax, eax
je 0x488273
mov dword [eax], 0
mov eax, dword [edi + 8]
cmp dword [eax + 0x14], 0
je 0x488263
mov eax, dword [eax + 0x18]
jmp 0x48826f
mov ecx, dword [eax + 4]
push ecx
call fcn.00609413
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x1c]
test eax, eax
jl 0x488980
cmp eax, 0x100
jg 0x488980
test eax, eax
jne 0x48829f
mov ecx, dword [edi + 0xc]
cmp ecx, 8
jg 0x48829f
mov edx, 1
shl edx, cl
mov dword [edi + 0x1c], edx
cmp dword [edi + 0xc], 8
jle 0x4882af
cmp dword [edi + 0x1c], 0
jle 0x4885da
mov eax, dword [edi + 0x2c]
mov edx, eax
mov ecx, eax
shr edx, 1
and ecx, 1
cmp edx, 0x300
jne 0x4882cb
mov eax, dword [edi + 0x28]
jmp 0x48836c
test ecx, ecx
je 0x4882f4
mov eax, dword [edi + 0x28]
push 0x300
push eax
call fcn.0045d790
mov ecx, dword [edi + 0x2c]
and ecx, 1
add esp, 8
or ecx, 0x600
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], ecx
jmp 0x48836c
mov ebx, 1
lea esp, [esp]
add ebx, ebx
cmp ebx, 0x300
jbe 0x488300
mov eax, dword [edi + 0x28]
mov ecx, edx
test ecx, ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jge 0x488321
fadd dword [0x6c0a38]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x488340
mov esi, 1
shl esi, cl
jmp 0x488342
xor esi, esi
cmp esi, edx
jae 0x488348
add esi, esi
cmp esi, ebx
je 0x48835d
push ebx
push eax
call fcn.0045d790
add esp, 8
test eax, eax
mov dword [edi + 0x28], eax
je 0x488370
mov edx, dword [edi + 0x2c]
and edx, 1
or edx, 0x600
mov dword [edi + 0x2c], edx
test eax, eax
jne 0x48837e
mov eax, 4
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
mov eax, dword [edi + 0x28]
test eax, eax
je 0x488396
mov ecx, dword [edi + 0x2c]
shr ecx, 1
push ecx
push 0
push eax
call fcn.0060c930
add esp, 0xc
cmp dword [edi + 0x1c], 0
jle 0x4885da
mov eax, dword [edi + 8]
mov esi, dword [edi + 0x1c]
call fcn.004895c0
mov edx, dword [edi + 0x24]
imul edx, esi
cmp edx, eax
ja 0x488980
test esi, esi
mov dword [esp + 0x18], 0
jle 0x4885d0
mov dword [esp + 0x10], 0
mov esi, dword [edi + 8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x488413
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4883f1
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 1]
cmp ebp, eax
jbe 0x4883fa
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x488436
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x14]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 1
jmp 0x488434
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x14]
push 1
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x48843e
cmp dword [esi + 4], eax
jne 0x488436
cmp dword [esi + 0xc], eax
je 0x48843e
mov byte [edi + 0x55], 1
xor al, al
jmp 0x488442
mov al, byte [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x28]
mov byte [ecx + edx + 2], al
mov esi, dword [edi + 8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x48848f
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x48846d
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 1]
cmp ebp, eax
jbe 0x488476
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4884b2
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x15]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 1
jmp 0x4884b0
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x15]
push 1
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x4884ba
cmp dword [esi + 4], eax
jne 0x4884b2
cmp dword [esi + 0xc], eax
je 0x4884ba
mov byte [edi + 0x55], 1
xor al, al
jmp 0x4884be
mov al, byte [esp + 0xd]
mov edx, dword [esp + 0x10]
mov ecx, dword [edi + 0x28]
mov byte [ecx + edx + 1], al
mov esi, dword [edi + 8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x48850b
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x4884e9
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 1]
cmp ebp, eax
jbe 0x4884f2
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x48852e
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x16]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 1
jmp 0x48852c
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x16]
push 1
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x488536
cmp dword [esi + 4], eax
jne 0x48852e
cmp dword [esi + 0xc], eax
je 0x488536
mov byte [edi + 0x55], 1
xor al, al
jmp 0x48853a
mov al, byte [esp + 0xe]
mov ecx, dword [edi + 0x28]
mov edx, dword [esp + 0x10]
mov byte [edx + ecx], al
cmp dword [edi + 0x24], 4
jne 0x4885b3
mov esi, dword [edi + 8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x48858c
mov eax, dword [esi + 0x1c]
mov ebx, 1
cmp eax, ebx
jb 0x48856a
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 1]
cmp ebp, eax
jbe 0x488573
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4885af
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x17]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 1
jmp 0x4885ad
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x17]
push 1
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x4885b3
cmp dword [esi + 4], eax
jne 0x4885af
cmp dword [esi + 0xc], eax
je 0x4885b3
mov byte [edi + 0x55], 1
mov eax, dword [esp + 0x18]
add dword [esp + 0x10], 3
add eax, 1
cmp eax, dword [edi + 0x1c]
mov dword [esp + 0x18], eax
jl 0x4883d1
mov ebp, dword [esp + 0x24]
cmp byte [edi + 0x55], 0
jne 0x488980
mov eax, dword [edi + 0x20]
test eax, eax
mov byte [esp + 0xc], 0
jne 0x48860a
cmp dword [edi + 0xc], 0x10
jne 0x48879e
mov dword [edi + 0x30], 0x7c00
mov dword [edi + 0x34], 0x3e0
mov dword [edi + 0x38], 0x1f
jmp 0x48879e
cmp eax, 1
je 0x488799
cmp eax, 2
je 0x488799
cmp eax, 3
jne 0x48879e
mov esi, dword [edi + 8]
mov edx, dword [esi + 0x14]
test edx, edx
je 0x488665
lea ebx, [eax + 1]
mov eax, dword [esi + 0x1c]
cmp eax, ebx
jb 0x488643
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 4]
cmp ebp, eax
jbe 0x48864c
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x488688
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 4
jmp 0x488686
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x488690
cmp dword [esi + 4], eax
jne 0x488688
cmp dword [esi + 0xc], eax
je 0x488690
mov byte [edi + 0x55], 1
xor eax, eax
jmp 0x488694
mov eax, dword [esp + 0x18]
mov esi, dword [edi + 8]
mov dword [edi + 0x30], eax
mov edx, dword [esi + 0x14]
test edx, edx
je 0x4886d9
mov eax, dword [esi + 0x1c]
mov ebx, 4
cmp eax, ebx
jb 0x4886b7
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 4]
cmp ebp, eax
jbe 0x4886c0
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x4886fc
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 4
jmp 0x4886fa
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x488704
cmp dword [esi + 4], eax
jne 0x4886fc
cmp dword [esi + 0xc], eax
je 0x488704
mov byte [edi + 0x55], 1
xor eax, eax
jmp 0x488708
mov eax, dword [esp + 0x18]
mov esi, dword [edi + 8]
mov dword [edi + 0x34], eax
mov edx, dword [esi + 0x14]
test edx, edx
je 0x48874d
mov eax, dword [esi + 0x1c]
mov ebx, 4
cmp eax, ebx
jb 0x48872b
mov ecx, dword [esi + 0x18]
lea ebp, [ecx + 4]
cmp ebp, eax
jbe 0x488734
mov ecx, dword [esi + 0x18]
sub eax, ecx
mov ebx, eax
je 0x488770
push ebx
add ecx, edx
push ecx
lea eax, [esp + 0x20]
push eax
call fcn.0060d1b0
add dword [esi + 0x18], ebx
add esp, 0xc
cmp ebx, 4
jmp 0x48876e
mov ecx, dword [esi + 4]
push ecx
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.0060860a
add esp, 0x10
test eax, eax
jne 0x488778
cmp dword [esi + 4], eax
jne 0x488770
cmp dword [esi + 0xc], eax
je 0x488778
mov byte [edi + 0x55], 1
xor eax, eax
jmp 0x48877c
mov eax, dword [esp + 0x18]
cmp dword [edi + 0xc], 0x10
mov ebp, dword [esp + 0x24]
mov dword [edi + 0x38], eax
jne 0x48879e
xor eax, eax
mov word [edi + 0x32], ax
mov word [edi + 0x36], ax
mov word [edi + 0x3a], ax
jmp 0x48879e
mov byte [esp + 0xc], 1
cmp byte [edi + 0x55], 0
jne 0x488980
mov edx, dword [edi + 0x30]
mov ecx, edx
call fcn.00489480
mov esi, dword [edi + 0x34]
mov ecx, esi
mov dword [edi + 0x3c], eax
call fcn.00489480
mov ebx, dword [edi + 0x38]
mov ecx, ebx
mov dword [edi + 0x40], eax
call fcn.00489480
mov ecx, edx
mov dword [edi + 0x44], eax
call fcn.004894a0
mov ecx, esi
mov dword [edi + 0x48], eax
call fcn.004894a0
mov ecx, ebx
mov dword [edi + 0x4c], eax
call fcn.004894a0
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0xc]
cmp eax, 0x20
mov dword [edi + 0x14], 0
jne 0x488804
mov eax, dword [edi]
add eax, eax
add eax, eax
jmp 0x48885e
cmp eax, 0x18
jne 0x488813
mov eax, dword [edi]
lea ecx, [eax + eax*2]
mov dword [edi + 0x10], ecx
jmp 0x488861
cmp eax, 0x10
jne 0x488821
mov edx, dword [edi]
add edx, edx
mov dword [edi + 0x10], edx
jmp 0x488861
cmp eax, 8
jne 0x48882a
mov eax, dword [edi]
jmp 0x48885e
cmp eax, 4
jne 0x48883d
mov ecx, dword [edi]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
test cl, 1
jmp 0x488856
cmp eax, 1
jne 0x488980
mov ecx, dword [edi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
test cl, 7
mov dword [edi + 0x10], eax
je 0x488861
add eax, 1
mov dword [edi + 0x10], eax
mov edx, dword [edi + 0x10]
mov ecx, edx
and ecx, 0x80000003
mov dword [edi + 0x14], 0
jns 0x48887a
dec ecx
or ecx, 0xfffffffc
inc ecx
je 0x48888b
mov eax, 4
sub eax, ecx
mov dword [edi + 0x14], eax
add eax, edx
mov dword [edi + 0x10], eax
cmp dword [edi + 0x18], 0
jle 0x4888b2
mov eax, dword [edi + 8]
mov esi, dword [edi + 0x18]
call fcn.00410270
cmp esi, eax
jle 0x4888b2
mov eax, dword [edi + 8]
mov edx, esi
call fcn.00407090
test eax, eax
jne 0x488985
cmp byte [esp + 0xc], 0
jne 0x4888df
mov eax, dword [edi + 8]
call fcn.00410270
mov ecx, dword [edi + 4]
imul ecx, dword [edi + 0x10]
mov esi, dword [edi + 8]
mov ebx, eax
add ebx, ecx
call fcn.00410290
add eax, 1
cmp ebx, eax
ja 0x488980
mov esi, dword [esp + 0x28]
test esi, esi
mov edx, dword [edi + 4]
mov ecx, dword [edi]
mov ebx, dword [esp + 0x2c]
je 0x488932
mov eax, dword [esi]
push edx
mov edx, dword [eax + 0x10]
push ecx
mov ecx, esi
call edx
test eax, eax
jne 0x488985
cmp byte [esp + 0xc], 0
je 0x48894d
mov eax, dword [edi + 0xc]
cmp eax, 4
je 0x488917
cmp eax, 8
jne 0x48894d
mov eax, dword [esp + 0x20]
push ebx
push esi
push eax
mov ebx, edi
call fcn.00488990
test eax, eax
je 0x48895a
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
test ebx, ebx
je 0x488941
call fcn.00479fc0
test eax, eax
je 0x488903
jmp 0x4888fb
or eax, 0xffffffff
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
mov ecx, dword [esp + 0x20]
push ebx
push esi
push ecx
push edi
call fcn.00488f80
test ebp, ebp
je 0x488975
cmp dword [ebp + 8], 0
je 0x488975
mov eax, dword [edi + 8]
call fcn.00410270
sub eax, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov dword [edx], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
mov eax, 3
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10