Function at 0x465ce0
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
push edi
xor ebx, ebx
mov ecx, dword [esi + 0xc900]
lea eax, [esi + 0xc978]
push eax
push ecx
push esi
mov dword [esp + 0x1c], ebx
xor edi, edi
call fcn.00469cb0
add esp, 0xc
test eax, eax
jne 0x4662cf
mov dx, word [esi + 0xc97e]
and edx, 0xf000
cmp edx, 0x4000
sete al
mov edi, eax
cmp edi, ebx
jne 0x4662cf
mov ecx, dword [esi + 0xc98c]
push esi
mov dword [esi + 0xc908], ecx
call fcn.00466e80
add esp, 4
test eax, eax
je 0x465d58
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 8
ret
cmp dword [esi + 0xc8d8], ebx
jne 0x465d7c
call fcn.0046d180
cmp eax, ebx
mov dword [esi + 0xc8d8], eax
jne 0x465d7c
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 8
ret
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x465da9
cmp dword [esi + 0x78], ebx
je 0x465da9
mov edi, dword [esi + 0x1c]
xor edx, edx
cmp edi, ebx
push ebx
sete dl
push eax
push esi
mov dword [esi + 0x74], edx
call fcn.00469220
add esp, 0xc
cmp eax, 2
jg 0x4662db
mov eax, dword [esi + 0xc8e0]
mov dword [esi + 0xc90c], ebx
mov dword [esi + 0xc8e4], eax
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x465dea
mov ecx, dword [esi + 0xc908]
push ecx
push esi
call fcn.004662f0
mov ebp, eax
add esp, 8
cmp ebp, ebx
jne 0x465e25
push esi
call fcn.0046d140
mov ebp, eax
add esp, 4
cmp ebp, 1
jg 0x465e25
jmp 0x465dee
mov ebp, dword [esp + 0x1c]
cmp dword [esi + 0xc], ebx
jne 0x465e5d
mov eax, dword [esi + 0xc908]
cmp eax, 0x101d0
jl 0x465e05
mov eax, 0x101d0
push eax
push esi
call fcn.004662f0
mov ebp, eax
add esp, 8
cmp ebp, ebx
jne 0x465e25
push esi
call fcn.004666b0
mov ebp, eax
add esp, 4
cmp ebp, 1
jle 0x465e5d
mov edx, dword [esi + 0xc904]
push edx
call fcn.00479359
mov eax, dword [esp + 0x24]
add esp, 4
cmp eax, ebx
je 0x465e46
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov dword [esi + 0xc9c0], 1
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 8
ret
cmp dword [esi + 0x5c], ebx
jle 0x465e80
cmp dword [esi + 0xc], ebx
jne 0x465e80
mov eax, dword [esi + 0xc904]
push eax
call fcn.00479359
add esp, 4
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x465e97
cmp word [esi + 0xc964], bx
je 0x465e97
mov edx, 1
jmp 0x465e99
xor edx, edx
cmp eax, ebx
mov dword [esp + 0x1c], edx
je 0x465f12
mov ax, word [esi + 0xc964]
mov cx, word [esi + 0xc966]
cmp ax, cx
je 0x465f12
jbe 0x465f0d
mov ebp, 0xb
mov edx, dword [esi + 0xc904]
push edx
call fcn.00479359
mov eax, dword [esi + 0x48]
add esp, 4
test eax, eax
je 0x465f03
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x465f03
mov eax, dword [esp + 0x10]
test eax, eax
jbe 0x465f03
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0xc900]
push eax
push ecx
push esi
call fcn.004684c0
add esp, 0xc
test eax, eax
je 0x465f03
cmp ebp, 1
jge 0x465f03
mov ebp, 1
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ebp, 1
cmp edx, ebx
je 0x465f1b
mov ebp, 1
mov ecx, dword [esi + 0x84]
mov eax, dword [esi + 0x80]
sub eax, ecx
mov dword [esi + 0xc910], eax
jns 0x465f38
mov ebp, 2
jmp 0x465f64
cmp eax, ebx
jle 0x465f64
cmp dword [esi + 0xc970], ebx
jne 0x465f5f
cmp dword [esi + 0xc96c], ebx
je 0x465f5f
mov dword [esi + 0xc970], eax
mov dword [esi + 0xc910], ebx
mov ebp, 2
jmp 0x465f64
mov ebp, 1
cmp ecx, ebx
jne 0x465f97
cmp dword [esi + 0xc96c], ebx
jne 0x465f97
mov ecx, dword [esi + 0xc904]
push ecx
call fcn.00479359
add esp, 4
cmp ebp, 1
mov eax, ebp
jg 0x4662db
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 8
ret
mov eax, dword [esi + 0xc970]
mov edi, dword [esi + 0xc910]
add eax, edi
mov edi, eax
and edi, 0x80001fff
jns 0x465fb7
dec edi
or edi, 0xffffe000
inc edi
mov ecx, eax
sub ecx, edi
cmp eax, ebx
jge 0x465fcc
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 8
ret
cmp ecx, dword [esi + 0xc90c]
je 0x466032
mov edx, dword [esi + 0xc904]
push ebx
push ecx
push edx
call fcn.0047960b
mov ecx, dword [esi + 0xc904]
mov dword [esi + 0xc90c], eax
mov eax, dword [esi + 0xc8e0]
push 0x2000
push eax
push ecx
call fcn.0047abb6
add esp, 0x18
cmp eax, ebx
mov dword [esi + 0xc8e8], eax
jg 0x46601a
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 8
ret
mov edx, dword [esi + 0xc8e0]
add edx, edi
sub eax, edi
mov dword [esi + 0xc8e4], edx
mov dword [esi + 0xc8e8], eax
jmp 0x466058
mov eax, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc8e4]
mov edx, dword [esi + 0xc8e8]
sub ecx, eax
sub ecx, edi
add edx, ecx
add eax, edi
mov dword [esi + 0xc8e8], edx
mov dword [esi + 0xc8e4], eax
lea ebx, [esi + 0xc4]
push 4
push ebx
push esi
call fcn.00467010
add esp, 0xc
test eax, eax
je 0x466086
push 4
push 0x497bc0
push ebx
call fcn.00470230
add esp, 0xc
test eax, eax
je 0x46617b
mov ecx, dword [esi + 0xc970]
mov dword [esi + 0xc910], 0
mov edi, ecx
and edi, 0x80001fff
jns 0x4660a8
dec edi
or edi, 0xffffe000
inc edi
mov eax, ecx
sub eax, edi
test ecx, ecx
jge 0x4660bd
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 8
ret
cmp eax, dword [esi + 0xc90c]
je 0x466124
mov edx, dword [esi + 0xc904]
push 0
push eax
push edx
call fcn.0047960b
mov ecx, dword [esi + 0xc904]
mov dword [esi + 0xc90c], eax
mov eax, dword [esi + 0xc8e0]
push 0x2000
push eax
push ecx
call fcn.0047abb6
add esp, 0x18
mov dword [esi + 0xc8e8], eax
test eax, eax
jg 0x46610c
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 8
ret
mov edx, dword [esi + 0xc8e0]
add edx, edi
sub eax, edi
mov dword [esi + 0xc8e4], edx
mov dword [esi + 0xc8e8], eax
jmp 0x46614a
mov eax, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc8e4]
mov edx, dword [esi + 0xc8e8]
sub ecx, eax
sub ecx, edi
add edx, ecx
add eax, edi
mov dword [esi + 0xc8e8], edx
mov dword [esi + 0xc8e4], eax
push 4
push ebx
push esi
call fcn.00467010
add esp, 0xc
test eax, eax
je 0x4662b3
push 4
push 0x497bc0
push ebx
call fcn.00470230
add esp, 0xc
test eax, eax
jne 0x4662b3
mov ebp, 2
mov eax, dword [esi + 0xc970]
mov ecx, dword [esi + 0xc910]
add eax, ecx
mov edi, eax
and edi, 0x80001fff
jns 0x46619b
dec edi
or edi, 0xffffe000
inc edi
mov ecx, eax
sub ecx, edi
test eax, eax
jge 0x4661b0
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 8
ret
cmp ecx, dword [esi + 0xc90c]
je 0x466217
mov edx, dword [esi + 0xc904]
push 0
push ecx
push edx
call fcn.0047960b
mov ecx, dword [esi + 0xc904]
mov dword [esi + 0xc90c], eax
mov eax, dword [esi + 0xc8e0]
push 0x2000
push eax
push ecx
call fcn.0047abb6
add esp, 0x18
mov dword [esi + 0xc8e8], eax
test eax, eax
jg 0x4661ff
pop edi
pop esi
pop ebp
mov eax, 0x33
pop ebx
add esp, 8
ret
mov edx, dword [esi + 0xc8e0]
add edx, edi
sub eax, edi
mov dword [esi + 0xc8e4], edx
mov dword [esi + 0xc8e8], eax
jmp 0x46623d
mov eax, dword [esi + 0xc8e0]
mov ecx, dword [esi + 0xc8e4]
mov edx, dword [esi + 0xc8e8]
sub ecx, eax
sub ecx, edi
add edx, ecx
add eax, edi
mov dword [esi + 0xc8e8], edx
mov dword [esi + 0xc8e4], eax
mov eax, dword [esi + 0x94]
test eax, eax
jne 0x4662a0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x466259
push esi
call fcn.0041bed0
add esp, 4
jmp 0x4662a4
mov eax, dword [esi + 0x48]
test eax, eax
je 0x466275
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push eax
push esi
call fcn.0046cdc0
add esp, 0xc
jmp 0x4662a4
mov eax, dword [esi + 0x50]
test eax, eax
je 0x466295
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x466295
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x466295
push esi
call fcn.0046c870
add esp, 4
jmp 0x4662a4
push esi
call fcn.0046b540
add esp, 4
jmp 0x4662a4
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jle 0x465ebb
mov ebp, eax
jmp 0x465ebb
mov ecx, dword [esi + 0xc904]
push ecx
call fcn.00479359
add esp, 4
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, edi
neg eax
sbb eax, eax
and eax, 0x43
add eax, 9
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret