4907db:	57                   	push   %edi
4907dc:	85 c0                	test   %eax,%eax
4907de:	75 7e                	jne    0x49085e
4907e0:	85 db                	test   %ebx,%ebx
4907e2:	75 45                	jne    0x490829
4907e4:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
4907e8:	b8 0f 00 00 00       	mov    $0xf,%eax
4907ed:	2b 86 08 01 00 00    	sub    0x108(%esi),%eax
4907f3:	57                   	push   %edi
4907f4:	50                   	push   %eax
4907f5:	8d 41 20             	lea    0x20(%ecx),%eax
4907f8:	50                   	push   %eax
4907f9:	55                   	push   %ebp
4907fa:	e8 b1 52 01 00       	call   0x4a5ab0
4907ff:	83 c4 10             	add    $0x10,%esp
490802:	85 c0                	test   %eax,%eax
490804:	0f 85 d9 00 00 00    	jne    0x4908e3
49080a:	8b c7                	mov    %edi,%eax
49080c:	c7 86 04 01 00 00 01 	movl   $0x1,0x104(%esi)
490813:	00 00 00
490816:	5f                   	pop    %edi
490817:	5e                   	pop    %esi
490818:	5d                   	pop    %ebp
490819:	5b                   	pop    %ebx
49081a:	8b 4c 24 18          	mov    0x18(%esp),%ecx
49081e:	33 cc                	xor    %esp,%ecx
490820:	e8 b5 0c 15 00       	call   0x5e14da
490825:	83 c4 1c             	add    $0x1c,%esp
490828:	c3                   	ret
490829:	83 be 04 01 00 00 00 	cmpl   $0x0,0x104(%esi)
490830:	8b 74 24 3c          	mov    0x3c(%esp),%esi
490834:	75 08                	jne    0x49083e
490836:	85 f6                	test   %esi,%esi
490838:	0f 85 a5 00 00 00    	jne    0x4908e3
49083e:	56                   	push   %esi
49083f:	53                   	push   %ebx
490840:	55                   	push   %ebp
490841:	e8 ba 47 01 00       	call   0x4a5000
490846:	83 c4 0c             	add    $0xc,%esp
490849:	8b c6                	mov    %esi,%eax
49084b:	5f                   	pop    %edi
49084c:	5e                   	pop    %esi
49084d:	5d                   	pop    %ebp
49084e:	5b                   	pop    %ebx
49084f:	8b 4c 24 18          	mov    0x18(%esp),%ecx
490853:	33 cc                	xor    %esp,%ecx
490855:	e8 80 0c 15 00       	call   0x5e14da
49085a:	83 c4 1c             	add    $0x1c,%esp
49085d:	c3                   	ret
49085e:	85 db                	test   %ebx,%ebx
490860:	75 15                	jne    0x490877
490862:	5f                   	pop    %edi
490863:	5e                   	pop    %esi
490864:	5d                   	pop    %ebp
490865:	33 c0                	xor    %eax,%eax
490867:	5b                   	pop    %ebx
490868:	8b 4c 24 18          	mov    0x18(%esp),%ecx
49086c:	33 cc                	xor    %esp,%ecx
49086e:	e8 67 0c 15 00       	call   0x5e14da
490873:	83 c4 1c             	add    $0x1c,%esp
490876:	c3                   	ret
490877:	83 be 04 01 00 00 00 	cmpl   $0x0,0x104(%esi)
49087e:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
490882:	75 30                	jne    0x4908b4
490884:	57                   	push   %edi
490885:	b8 0f 00 00 00       	mov    $0xf,%eax
49088a:	2b 86 08 01 00 00    	sub    0x108(%esi),%eax
490890:	50                   	push   %eax
490891:	8d 41 20             	lea    0x20(%ecx),%eax
490894:	50                   	push   %eax
490895:	55                   	push   %ebp
490896:	e8 15 52 01 00       	call   0x4a5ab0
49089b:	83 c4 10             	add    $0x10,%esp
49089e:	85 c0                	test   %eax,%eax
4908a0:	75 41                	jne    0x4908e3
4908a2:	8b 4c 24 10          	mov    0x10(%esp),%ecx
4908a6:	8b 44 24 14          	mov    0x14(%esp),%eax
4908aa:	c7 86 04 01 00 00 01 	movl   $0x1,0x104(%esi)
4908b1:	00 00 00
4908b4:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
4908b8:	8b 8e 40 01 00 00    	mov    0x140(%esi),%ecx
4908be:	74 58                	je     0x490918
4908c0:	85 c9                	test   %ecx,%ecx
4908c2:	74 0f                	je     0x4908d3
4908c4:	51                   	push   %ecx
4908c5:	57                   	push   %edi
4908c6:	50                   	push   %eax
4908c7:	53                   	push   %ebx
4908c8:	55                   	push   %ebp
4908c9:	e8 e2 4e 01 00       	call   0x4a57b0
4908ce:	83 c4 14             	add    $0x14,%esp
4908d1:	eb 0c                	jmp    0x4908df
4908d3:	57                   	push   %edi
4908d4:	50                   	push   %eax
4908d5:	53                   	push   %ebx
4908d6:	55                   	push   %ebp
4908d7:	e8 d4 4b 01 00       	call   0x4a54b0
4908dc:	83 c4 10             	add    $0x10,%esp
4908df:	85 c0                	test   %eax,%eax
4908e1:	74 16                	je     0x4908f9
4908e3:	5f                   	pop    %edi
4908e4:	5e                   	pop    %esi
4908e5:	5d                   	pop    %ebp
4908e6:	83 c8 ff             	or     $0xffffffff,%eax
4908e9:	5b                   	pop    %ebx
4908ea:	8b 4c 24 18          	mov    0x18(%esp),%ecx
4908ee:	33 cc                	xor    %esp,%ecx
4908f0:	e8 e5 0b 15 00       	call   0x5e14da
4908f5:	83 c4 1c             	add    $0x1c,%esp
4908f8:	c3                   	ret
4908f9:	8b c7                	mov    %edi,%eax
4908fb:	c7 86 00 01 00 00 01 	movl   $0x1,0x100(%esi)
490902:	00 00 00
490905:	5f                   	pop    %edi
490906:	5e                   	pop    %esi
490907:	5d                   	pop    %ebp
490908:	5b                   	pop    %ebx
490909:	8b 4c 24 18          	mov    0x18(%esp),%ecx
49090d:	33 cc                	xor    %esp,%ecx
49090f:	e8 c6 0b 15 00       	call   0x5e14da
490914:	83 c4 1c             	add    $0x1c,%esp
490917:	c3                   	ret
490918:	85 c9                	test   %ecx,%ecx
49091a:	74 0f                	je     0x49092b
49091c:	51                   	push   %ecx
49091d:	57                   	push   %edi
49091e:	50                   	push   %eax
49091f:	53                   	push   %ebx
490920:	55                   	push   %ebp
490921:	e8 ca 49 01 00       	call   0x4a52f0
490926:	83 c4 14             	add    $0x14,%esp
490929:	eb 0c                	jmp    0x490937
49092b:	57                   	push   %edi
49092c:	50                   	push   %eax
49092d:	53                   	push   %ebx
49092e:	55                   	push   %ebp
49092f:	e8 8c 47 01 00       	call   0x4a50c0
490934:	83 c4 10             	add    $0x10,%esp
490937:	f7 d8                	neg    %eax
490939:	1b c0                	sbb    %eax,%eax
49093b:	40                   	inc    %eax
49093c:	85 c0                	test   %eax,%eax
49093e:	74 40                	je     0x490980
490940:	ff b6 0c 01 00 00    	push   0x10c(%esi)
490946:	8d 44 24 1c          	lea    0x1c(%esp),%eax
49094a:	50                   	push   %eax
49094b:	55                   	push   %ebp
49094c:	e8 cf 51 01 00       	call   0x4a5b20
490951:	83 c4 0c             	add    $0xc,%esp
490954:	85 c0                	test   %eax,%eax
490956:	74 28                	je     0x490980
490958:	ff b6 0c 01 00 00    	push   0x10c(%esi)
49095e:	8b 44 24 14          	mov    0x14(%esp),%eax
490962:	83 c0 30             	add    $0x30,%eax
490965:	50                   	push   %eax
490966:	8d 44 24 20          	lea    0x20(%esp),%eax
49096a:	50                   	push   %eax
49096b:	e8 c0 fc 00 00       	call   0x4a0630
490970:	83 c4 0c             	add    $0xc,%esp
490973:	85 c0                	test   %eax,%eax
490975:	75 09                	jne    0x490980
490977:	8b df                	mov    %edi,%ebx
490979:	83 ff ff             	cmp    $0xffffffff,%edi
49097c:	75 12                	jne    0x490990
49097e:	eb 03                	jmp    0x490983
490980:	83 cb ff             	or     $0xffffffff,%ebx
490983:	57                   	push   %edi
490984:	ff 74 24 18          	push   0x18(%esp)
490988:	e8 c3 f9 00 00       	call   0x4a0350
49098d:	83 c4 08             	add    $0x8,%esp
490990:	8b 4c 24 28          	mov    0x28(%esp),%ecx
490994:	8b c3                	mov    %ebx,%eax
490996:	5f                   	pop    %edi
490997:	c7 86 fc 00 00 00 00 	movl   $0x0,0xfc(%esi)
49099e:	00 00 00
4909a1:	c7 86 00 01 00 00 00 	movl   $0x0,0x100(%esi)
4909a8:	00 00 00
4909ab:	c7 86 04 01 00 00 00 	movl   $0x0,0x104(%esi)
4909b2:	00 00 00
4909b5:	5e                   	pop    %esi
4909b6:	5d                   	pop    %ebp
4909b7:	5b                   	pop    %ebx
4909b8:	33 cc                	xor    %esp,%ecx
4909ba:	e8 1b 0b 15 00       	call   0x5e14da
4909bf:	83 c4 1c             	add    $0x1c,%esp
4909c2:	c3                   	ret
4909c3:	cc                   	int3
4909c4:	cc                   	int3
4909c5:	cc                   	int3
4909c6:	cc                   	int3
4909c7:	cc                   	int3
4909c8:	cc                   	int3
4909c9:	cc                   	int3
4909ca:	cc                   	int3
4909cb:	cc                   	int3
4909cc:	cc                   	int3
4909cd:	cc                   	int3
4909ce:	cc                   	int3
4909cf:	cc                   	int3
4909d0:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4909d4:	53                   	push   %ebx
4909d5:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4909d9:	56                   	push   %esi
4909da:	8b 74 24 0c          	mov    0xc(%esp),%esi
4909de:	57                   	push   %edi
4909df:	8b 7e 60             	mov    0x60(%esi),%edi
4909e2:	85 db                	test   %ebx,%ebx
4909e4:	75 0b                	jne    0x4909f1
4909e6:	85 c9                	test   %ecx,%ecx
4909e8:	75 0b                	jne    0x4909f5
4909ea:	5f                   	pop    %edi
4909eb:	5e                   	pop    %esi
4909ec:	8d 43 01             	lea    0x1(%ebx),%eax
4909ef:	5b                   	pop    %ebx
4909f0:	c3                   	ret
4909f1:	85 c9                	test   %ecx,%ecx
4909f3:	74 2f                	je     0x490a24
4909f5:	8b 46 58             	mov    0x58(%esi),%eax
4909f8:	57                   	push   %edi
4909f9:	c1 e0 03             	shl    $0x3,%eax
4909fc:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
490a00:	50                   	push   %eax
490a01:	51                   	push   %ecx
490a02:	74 07                	je     0x490a0b
490a04:	e8 c7 0e 01 00       	call   0x4a18d0
490a09:	eb 05                	jmp    0x490a10
490a0b:	e8 b0 0e 01 00       	call   0x4a18c0
490a10:	83 c4 0c             	add    $0xc,%esp
490a13:	85 db                	test   %ebx,%ebx
490a15:	75 0d                	jne    0x490a24
490a17:	89 9f f8 00 00 00    	mov    %ebx,0xf8(%edi)
490a1d:	8d 43 01             	lea    0x1(%ebx),%eax
490a20:	5f                   	pop    %edi
490a21:	5e                   	pop    %esi
490a22:	5b                   	pop    %ebx
490a23:	c3                   	ret
490a24:	8b 03                	mov    (%ebx),%eax
490a26:	8d 4e 20             	lea    0x20(%esi),%ecx
490a29:	89 01                	mov    %eax,(%ecx)
490a2b:	8b 43 04             	mov    0x4(%ebx),%eax
490a2e:	89 41 04             	mov    %eax,0x4(%ecx)
490a31:	b8 01 00 00 00       	mov    $0x1,%eax
490a36:	89 8f f8 00 00 00    	mov    %ecx,0xf8(%edi)
490a3c:	5f                   	pop    %edi
490a3d:	5e                   	pop    %esi
490a3e:	5b                   	pop    %ebx
490a3f:	c3                   	ret
490a40:	8b 4c 24 04          	mov    0x4(%esp),%ecx
490a44:	56                   	push   %esi
490a45:	8b 74 24 10          	mov    0x10(%esp),%esi
490a49:	8b 51 60             	mov    0x60(%ecx),%edx
490a4c:	85 f6                	test   %esi,%esi
490a4e:	75 04                	jne    0x490a54
490a50:	33 c0                	xor    %eax,%eax
490a52:	5e                   	pop    %esi
490a53:	c3                   	ret
490a54:	8b 44 24 14          	mov    0x14(%esp),%eax
490a58:	a8 07                	test   $0x7,%al
490a5a:	74 05                	je     0x490a61
490a5c:	83 c8 ff             	or     $0xffffffff,%eax
490a5f:	5e                   	pop    %esi
490a60:	c3                   	ret
490a61:	8b 49 08             	mov    0x8(%ecx),%ecx
490a64:	85 c9                	test   %ecx,%ecx
490a66:	74 09                	je     0x490a71
490a68:	83 f8 08             	cmp    $0x8,%eax
490a6b:	72 ef                	jb     0x490a5c
490a6d:	85 c9                	test   %ecx,%ecx
490a6f:	75 05                	jne    0x490a76
490a71:	83 f8 10             	cmp    $0x10,%eax
490a74:	72 e6                	jb     0x490a5c
490a76:	57                   	push   %edi
490a77:	8b 7c 24 10          	mov    0x10(%esp),%edi
490a7b:	85 ff                	test   %edi,%edi
490a7d:	75 10                	jne    0x490a8f
490a7f:	85 c9                	test   %ecx,%ecx
490a81:	74 06                	je     0x490a89
490a83:	5f                   	pop    %edi
490a84:	83 c0 08             	add    $0x8,%eax
490a87:	5e                   	pop    %esi
490a88:	c3                   	ret
490a89:	5f                   	pop    %edi
490a8a:	83 c0 f8             	add    $0xfffffff8,%eax
490a8d:	5e                   	pop    %esi
490a8e:	c3                   	ret
490a8f:	85 c9                	test   %ecx,%ecx
490a91:	74 24                	je     0x490ab7
490a93:	68 30 1e 4a 00       	push   $0x4a1e30
490a98:	50                   	push   %eax
490a99:	56                   	push   %esi
490a9a:	57                   	push   %edi
490a9b:	ff b2 f8 00 00 00    	push   0xf8(%edx)
490aa1:	52                   	push   %edx
490aa2:	e8 b9 55 01 00       	call   0x4a6060
490aa7:	83 c4 18             	add    $0x18,%esp
490aaa:	8b c8                	mov    %eax,%ecx
490aac:	83 c8 ff             	or     $0xffffffff,%eax
490aaf:	85 c9                	test   %ecx,%ecx
490ab1:	0f 45 c1             	cmovne %ecx,%eax
490ab4:	5f                   	pop    %edi
490ab5:	5e                   	pop    %esi
490ab6:	c3                   	ret
490ab7:	68 e0 18 4a 00       	push   $0x4a18e0
490abc:	50                   	push   %eax
490abd:	56                   	push   %esi
490abe:	57                   	push   %edi
490abf:	ff b2 f8 00 00 00    	push   0xf8(%edx)
490ac5:	52                   	push   %edx
490ac6:	e8 25 54 01 00       	call   0x4a5ef0
490acb:	83 c4 18             	add    $0x18,%esp
490ace:	8b c8                	mov    %eax,%ecx
490ad0:	83 c8 ff             	or     $0xffffffff,%eax
490ad3:	85 c9                	test   %ecx,%ecx
490ad5:	0f 45 c1             	cmovne %ecx,%eax
490ad8:	5f                   	pop    %edi
490ad9:	5e                   	pop    %esi
490ada:	c3                   	ret
490adb:	cc                   	int3
490adc:	cc                   	int3
490add:	cc                   	int3
490ade:	cc                   	int3
490adf:	cc                   	int3
490ae0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
490ae4:	56                   	push   %esi
490ae5:	57                   	push   %edi
490ae6:	8b 01                	mov    (%ecx),%eax
490ae8:	8b 79 60             	mov    0x60(%ecx),%edi
490aeb:	8b 70 10             	mov    0x10(%eax),%esi
490aee:	81 e6 07 00 0f 00    	and    $0xf0007,%esi
490af4:	83 fe 01             	cmp    $0x1,%esi
490af7:	74 05                	je     0x490afe
490af9:	83 fe 02             	cmp    $0x2,%esi
490afc:	75 3c                	jne    0x490b3a
490afe:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
490b03:	75 35                	jne    0x490b3a
490b05:	8b 41 58             	mov    0x58(%ecx),%eax
490b08:	57                   	push   %edi
490b09:	c1 e0 03             	shl    $0x3,%eax
490b0c:	50                   	push   %eax
490b0d:	ff 74 24 18          	push   0x18(%esp)
490b11:	e8 aa 0d 01 00       	call   0x4a18c0
490b16:	33 c9                	xor    %ecx,%ecx
490b18:	c7 87 f8 00 00 00 e0 	movl   $0x4a18e0,0xf8(%edi)
490b1f:	18 4a 00
490b22:	83 c4 0c             	add    $0xc,%esp
490b25:	8b d0                	mov    %eax,%edx
490b27:	83 fe 02             	cmp    $0x2,%esi
490b2a:	b8 90 2a 4a 00       	mov    $0x4a2a90,%eax
490b2f:	0f 44 c8             	cmove  %eax,%ecx
490b32:	89 8f fc 00 00 00    	mov    %ecx,0xfc(%edi)