40f886:	29 73 10             	sub    %esi,0x10(%ebx)
40f889:	8b 43 1c             	mov    0x1c(%ebx),%eax
40f88c:	8b 50 14             	mov    0x14(%eax),%edx
40f88f:	2b d6                	sub    %esi,%edx
40f891:	89 50 14             	mov    %edx,0x14(%eax)
40f894:	85 d2                	test   %edx,%edx
40f896:	75 06                	jne    0x40f89e
40f898:	8b 48 08             	mov    0x8(%eax),%ecx
40f89b:	89 48 10             	mov    %ecx,0x10(%eax)
40f89e:	5e                   	pop    %esi
40f89f:	5b                   	pop    %ebx
40f8a0:	c3                   	ret
40f8a1:	90                   	nop
40f8a2:	90                   	nop
40f8a3:	90                   	nop
40f8a4:	53                   	push   %ebx
40f8a5:	56                   	push   %esi
40f8a6:	57                   	push   %edi
40f8a7:	55                   	push   %ebp
40f8a8:	51                   	push   %ecx
40f8a9:	8b fa                	mov    %edx,%edi
40f8ab:	8b f0                	mov    %eax,%esi
40f8ad:	85 f6                	test   %esi,%esi
40f8af:	74 0f                	je     0x40f8c0
40f8b1:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40f8b5:	74 09                	je     0x40f8c0
40f8b7:	83 ff 04             	cmp    $0x4,%edi
40f8ba:	7f 04                	jg     0x40f8c0
40f8bc:	85 ff                	test   %edi,%edi
40f8be:	7d 0a                	jge    0x40f8ca
40f8c0:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40f8c5:	e9 57 02 00 00       	jmp    0x40fb21
40f8ca:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
40f8ce:	8b 5e 1c             	mov    0x1c(%esi),%ebx
40f8d1:	74 19                	je     0x40f8ec
40f8d3:	83 3e 00             	cmpl   $0x0,(%esi)
40f8d6:	75 06                	jne    0x40f8de
40f8d8:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40f8dc:	75 0e                	jne    0x40f8ec
40f8de:	81 7b 04 9a 02 00 00 	cmpl   $0x29a,0x4(%ebx)
40f8e5:	75 17                	jne    0x40f8fe
40f8e7:	83 ff 04             	cmp    $0x4,%edi
40f8ea:	74 12                	je     0x40f8fe
40f8ec:	a1 a0 64 42 00       	mov    0x4264a0,%eax
40f8f1:	89 46 18             	mov    %eax,0x18(%esi)
40f8f4:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40f8f9:	e9 23 02 00 00       	jmp    0x40fb21
40f8fe:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40f902:	75 13                	jne    0x40f917
40f904:	8b 15 ac 64 42 00    	mov    0x4264ac,%edx
40f90a:	b8 fb ff ff ff       	mov    $0xfffffffb,%eax
40f90f:	89 56 18             	mov    %edx,0x18(%esi)
40f912:	e9 0a 02 00 00       	jmp    0x40fb21
40f917:	89 33                	mov    %esi,(%ebx)
40f919:	8b 6b 20             	mov    0x20(%ebx),%ebp
40f91c:	89 7b 20             	mov    %edi,0x20(%ebx)
40f91f:	83 7b 04 2a          	cmpl   $0x2a,0x4(%ebx)
40f923:	75 7d                	jne    0x40f9a2
40f925:	8b 4b 28             	mov    0x28(%ebx),%ecx
40f928:	8b 43 7c             	mov    0x7c(%ebx),%eax
40f92b:	83 e9 08             	sub    $0x8,%ecx
40f92e:	48                   	dec    %eax
40f92f:	c1 e1 04             	shl    $0x4,%ecx
40f932:	83 c1 08             	add    $0x8,%ecx
40f935:	c1 e1 08             	shl    $0x8,%ecx
40f938:	d1 f8                	sar    $1,%eax
40f93a:	83 f8 03             	cmp    $0x3,%eax
40f93d:	76 05                	jbe    0x40f944
40f93f:	b8 03 00 00 00       	mov    $0x3,%eax
40f944:	c1 e0 06             	shl    $0x6,%eax
40f947:	0b c8                	or     %eax,%ecx
40f949:	83 7b 64 00          	cmpl   $0x0,0x64(%ebx)
40f94d:	74 03                	je     0x40f952
40f94f:	83 c9 20             	or     $0x20,%ecx
40f952:	8b c1                	mov    %ecx,%eax
40f954:	51                   	push   %ecx
40f955:	33 d2                	xor    %edx,%edx
40f957:	b9 1f 00 00 00       	mov    $0x1f,%ecx
40f95c:	f7 f1                	div    %ecx
40f95e:	b8 1f 00 00 00       	mov    $0x1f,%eax
40f963:	59                   	pop    %ecx
40f964:	2b c2                	sub    %edx,%eax
40f966:	03 c8                	add    %eax,%ecx
40f968:	8b c3                	mov    %ebx,%eax
40f96a:	c7 43 04 71 00 00 00 	movl   $0x71,0x4(%ebx)
40f971:	8b d1                	mov    %ecx,%edx
40f973:	e8 b0 fe ff ff       	call   0x40f828
40f978:	83 7b 64 00          	cmpl   $0x0,0x64(%ebx)
40f97c:	74 1d                	je     0x40f99b
40f97e:	8b 56 30             	mov    0x30(%esi),%edx
40f981:	8b c3                	mov    %ebx,%eax
40f983:	c1 ea 10             	shr    $0x10,%edx
40f986:	e8 9d fe ff ff       	call   0x40f828
40f98b:	8b 56 30             	mov    0x30(%esi),%edx
40f98e:	8b c3                	mov    %ebx,%eax
40f990:	81 e2 ff ff 00 00    	and    $0xffff,%edx
40f996:	e8 8d fe ff ff       	call   0x40f828
40f99b:	c7 46 30 01 00 00 00 	movl   $0x1,0x30(%esi)
40f9a2:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
40f9a6:	74 1b                	je     0x40f9c3
40f9a8:	8b c6                	mov    %esi,%eax
40f9aa:	e8 a1 fe ff ff       	call   0x40f850
40f9af:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40f9b3:	75 30                	jne    0x40f9e5
40f9b5:	c7 43 20 ff ff ff ff 	movl   $0xffffffff,0x20(%ebx)
40f9bc:	33 c0                	xor    %eax,%eax
40f9be:	e9 5e 01 00 00       	jmp    0x40fb21
40f9c3:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40f9c7:	75 1c                	jne    0x40f9e5
40f9c9:	3b ef                	cmp    %edi,%ebp
40f9cb:	7c 18                	jl     0x40f9e5
40f9cd:	83 ff 04             	cmp    $0x4,%edi
40f9d0:	74 13                	je     0x40f9e5
40f9d2:	8b 15 ac 64 42 00    	mov    0x4264ac,%edx
40f9d8:	b8 fb ff ff ff       	mov    $0xfffffffb,%eax
40f9dd:	89 56 18             	mov    %edx,0x18(%esi)
40f9e0:	e9 3c 01 00 00       	jmp    0x40fb21
40f9e5:	81 7b 04 9a 02 00 00 	cmpl   $0x29a,0x4(%ebx)
40f9ec:	75 19                	jne    0x40fa07
40f9ee:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40f9f2:	74 13                	je     0x40fa07
40f9f4:	8b 15 ac 64 42 00    	mov    0x4264ac,%edx
40f9fa:	b8 fb ff ff ff       	mov    $0xfffffffb,%eax
40f9ff:	89 56 18             	mov    %edx,0x18(%esi)
40fa02:	e9 1a 01 00 00       	jmp    0x40fb21
40fa07:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40fa0b:	75 1b                	jne    0x40fa28
40fa0d:	83 7b 6c 00          	cmpl   $0x0,0x6c(%ebx)
40fa11:	75 15                	jne    0x40fa28
40fa13:	85 ff                	test   %edi,%edi
40fa15:	0f 84 b6 00 00 00    	je     0x40fad1
40fa1b:	81 7b 04 9a 02 00 00 	cmpl   $0x29a,0x4(%ebx)
40fa22:	0f 84 a9 00 00 00    	je     0x40fad1
40fa28:	8b 53 7c             	mov    0x7c(%ebx),%edx
40fa2b:	8b c3                	mov    %ebx,%eax
40fa2d:	8d 14 52             	lea    (%edx,%edx,2),%edx
40fa30:	8b 2c 95 f8 64 42 00 	mov    0x4264f8(,%edx,4),%ebp
40fa37:	8b d7                	mov    %edi,%edx
40fa39:	ff d5                	call   *%ebp
40fa3b:	89 04 24             	mov    %eax,(%esp)
40fa3e:	83 3c 24 02          	cmpl   $0x2,(%esp)
40fa42:	74 06                	je     0x40fa4a
40fa44:	83 3c 24 03          	cmpl   $0x3,(%esp)
40fa48:	75 07                	jne    0x40fa51
40fa4a:	c7 43 04 9a 02 00 00 	movl   $0x29a,0x4(%ebx)
40fa51:	83 3c 24 00          	cmpl   $0x0,(%esp)
40fa55:	74 06                	je     0x40fa5d
40fa57:	83 3c 24 02          	cmpl   $0x2,(%esp)
40fa5b:	75 14                	jne    0x40fa71
40fa5d:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40fa61:	75 07                	jne    0x40fa6a
40fa63:	c7 43 20 ff ff ff ff 	movl   $0xffffffff,0x20(%ebx)
40fa6a:	33 c0                	xor    %eax,%eax
40fa6c:	e9 b0 00 00 00       	jmp    0x40fb21
40fa71:	83 3c 24 01          	cmpl   $0x1,(%esp)
40fa75:	75 5a                	jne    0x40fad1
40fa77:	83 ff 01             	cmp    $0x1,%edi
40fa7a:	75 09                	jne    0x40fa85
40fa7c:	8b c3                	mov    %ebx,%eax
40fa7e:	e8 39 20 00 00       	call   0x411abc
40fa83:	eb 34                	jmp    0x40fab9
40fa85:	6a 00                	push   $0x0
40fa87:	33 c9                	xor    %ecx,%ecx
40fa89:	33 d2                	xor    %edx,%edx
40fa8b:	8b c3                	mov    %ebx,%eax
40fa8d:	e8 6e 1f 00 00       	call   0x411a00
40fa92:	83 ff 03             	cmp    $0x3,%edi
40fa95:	75 22                	jne    0x40fab9
40fa97:	8b 53 3c             	mov    0x3c(%ebx),%edx
40fa9a:	8b 4b 44             	mov    0x44(%ebx),%ecx
40fa9d:	66 c7 44 4a fe 00 00 	movw   $0x0,-0x2(%edx,%ecx,2)
40faa4:	8b 43 44             	mov    0x44(%ebx),%eax
40faa7:	48                   	dec    %eax
40faa8:	03 c0                	add    %eax,%eax
40faaa:	50                   	push   %eax
40faab:	6a 00                	push   $0x0
40faad:	8b 53 3c             	mov    0x3c(%ebx),%edx
40fab0:	52                   	push   %edx
40fab1:	e8 da f8 ff ff       	call   0x40f390
40fab6:	83 c4 0c             	add    $0xc,%esp
40fab9:	8b c6                	mov    %esi,%eax
40fabb:	e8 90 fd ff ff       	call   0x40f850
40fac0:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
40fac4:	75 0b                	jne    0x40fad1
40fac6:	c7 43 20 ff ff ff ff 	movl   $0xffffffff,0x20(%ebx)
40facd:	33 c0                	xor    %eax,%eax
40facf:	eb 50                	jmp    0x40fb21
40fad1:	83 ff 04             	cmp    $0x4,%edi
40fad4:	74 04                	je     0x40fada
40fad6:	33 c0                	xor    %eax,%eax
40fad8:	eb 47                	jmp    0x40fb21
40fada:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
40fade:	74 07                	je     0x40fae7
40fae0:	b8 01 00 00 00       	mov    $0x1,%eax
40fae5:	eb 3a                	jmp    0x40fb21
40fae7:	8b 56 30             	mov    0x30(%esi),%edx
40faea:	8b c3                	mov    %ebx,%eax
40faec:	c1 ea 10             	shr    $0x10,%edx
40faef:	e8 34 fd ff ff       	call   0x40f828
40faf4:	8b 56 30             	mov    0x30(%esi),%edx
40faf7:	8b c3                	mov    %ebx,%eax
40faf9:	81 e2 ff ff 00 00    	and    $0xffff,%edx
40faff:	e8 24 fd ff ff       	call   0x40f828
40fb04:	8b c6                	mov    %esi,%eax
40fb06:	e8 45 fd ff ff       	call   0x40f850
40fb0b:	c7 43 18 ff ff ff ff 	movl   $0xffffffff,0x18(%ebx)
40fb12:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
40fb16:	74 04                	je     0x40fb1c
40fb18:	33 c0                	xor    %eax,%eax
40fb1a:	eb 05                	jmp    0x40fb21
40fb1c:	b8 01 00 00 00       	mov    $0x1,%eax
40fb21:	5a                   	pop    %edx
40fb22:	5d                   	pop    %ebp
40fb23:	5f                   	pop    %edi
40fb24:	5e                   	pop    %esi
40fb25:	5b                   	pop    %ebx
40fb26:	c3                   	ret
40fb27:	90                   	nop
40fb28:	53                   	push   %ebx
40fb29:	56                   	push   %esi
40fb2a:	8b d8                	mov    %eax,%ebx
40fb2c:	85 db                	test   %ebx,%ebx
40fb2e:	74 06                	je     0x40fb36
40fb30:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
40fb34:	75 08                	jne    0x40fb3e
40fb36:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40fb3b:	5e                   	pop    %esi
40fb3c:	5b                   	pop    %ebx
40fb3d:	c3                   	ret
40fb3e:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fb41:	8b 72 04             	mov    0x4(%edx),%esi
40fb44:	83 fe 2a             	cmp    $0x2a,%esi
40fb47:	74 15                	je     0x40fb5e
40fb49:	83 fe 71             	cmp    $0x71,%esi
40fb4c:	74 10                	je     0x40fb5e
40fb4e:	81 fe 9a 02 00 00    	cmp    $0x29a,%esi
40fb54:	74 08                	je     0x40fb5e
40fb56:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40fb5b:	5e                   	pop    %esi
40fb5c:	5b                   	pop    %ebx
40fb5d:	c3                   	ret
40fb5e:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fb61:	8b 42 08             	mov    0x8(%edx),%eax
40fb64:	85 c0                	test   %eax,%eax
40fb66:	74 08                	je     0x40fb70
40fb68:	8b d0                	mov    %eax,%edx
40fb6a:	8b 43 28             	mov    0x28(%ebx),%eax
40fb6d:	ff 53 24             	call   *0x24(%ebx)
40fb70:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fb73:	8b 42 3c             	mov    0x3c(%edx),%eax
40fb76:	85 c0                	test   %eax,%eax
40fb78:	74 08                	je     0x40fb82
40fb7a:	8b d0                	mov    %eax,%edx
40fb7c:	8b 43 28             	mov    0x28(%ebx),%eax
40fb7f:	ff 53 24             	call   *0x24(%ebx)
40fb82:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fb85:	8b 42 38             	mov    0x38(%edx),%eax
40fb88:	85 c0                	test   %eax,%eax
40fb8a:	74 08                	je     0x40fb94
40fb8c:	8b d0                	mov    %eax,%edx
40fb8e:	8b 43 28             	mov    0x28(%ebx),%eax
40fb91:	ff 53 24             	call   *0x24(%ebx)
40fb94:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fb97:	8b 42 30             	mov    0x30(%edx),%eax
40fb9a:	85 c0                	test   %eax,%eax
40fb9c:	74 08                	je     0x40fba6
40fb9e:	8b d0                	mov    %eax,%edx
40fba0:	8b 43 28             	mov    0x28(%ebx),%eax
40fba3:	ff 53 24             	call   *0x24(%ebx)
40fba6:	8b 53 1c             	mov    0x1c(%ebx),%edx
40fba9:	8b 43 28             	mov    0x28(%ebx),%eax
40fbac:	ff 53 24             	call   *0x24(%ebx)
40fbaf:	33 d2                	xor    %edx,%edx
40fbb1:	83 fe 71             	cmp    $0x71,%esi
40fbb4:	89 53 1c             	mov    %edx,0x1c(%ebx)
40fbb7:	75 07                	jne    0x40fbc0
40fbb9:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
40fbbe:	eb 02                	jmp    0x40fbc2
40fbc0:	33 c0                	xor    %eax,%eax
40fbc2:	5e                   	pop    %esi
40fbc3:	5b                   	pop    %ebx
40fbc4:	c3                   	ret
40fbc5:	90                   	nop
40fbc6:	90                   	nop
40fbc7:	90                   	nop
40fbc8:	53                   	push   %ebx
40fbc9:	56                   	push   %esi
40fbca:	57                   	push   %edi
40fbcb:	55                   	push   %ebp
40fbcc:	51                   	push   %ecx
40fbcd:	89 14 24             	mov    %edx,(%esp)
40fbd0:	8b f0                	mov    %eax,%esi
40fbd2:	83 3c 24 00          	cmpl   $0x0,(%esp)
40fbd6:	74 0d                	je     0x40fbe5
40fbd8:	85 f6                	test   %esi,%esi
40fbda:	74 09                	je     0x40fbe5
40fbdc:	8b 04 24             	mov    (%esp),%eax
40fbdf:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40fbe3:	75 0a                	jne    0x40fbef
40fbe5:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
40fbea:	e9 6a 01 00 00       	jmp    0x40fd59
40fbef:	8b 14 24             	mov    (%esp),%edx
40fbf2:	8b 04 24             	mov    (%esp),%eax
40fbf5:	b9 0e 00 00 00       	mov    $0xe,%ecx
40fbfa:	8b 7a 1c             	mov    0x1c(%edx),%edi
40fbfd:	56                   	push   %esi
40fbfe:	57                   	push   %edi
40fbff:	8b fe                	mov    %esi,%edi
40fc01:	8b f0                	mov    %eax,%esi
40fc03:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40fc05:	5f                   	pop    %edi
40fc06:	5e                   	pop    %esi
40fc07:	b9 b8 16 00 00       	mov    $0x16b8,%ecx
40fc0c:	ba 01 00 00 00       	mov    $0x1,%edx
40fc11:	8b 46 28             	mov    0x28(%esi),%eax
40fc14:	ff 56 20             	call   *0x20(%esi)
40fc17:	8b d8                	mov    %eax,%ebx
40fc19:	85 db                	test   %ebx,%ebx
40fc1b:	75 0a                	jne    0x40fc27
40fc1d:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
40fc22:	e9 32 01 00 00       	jmp    0x40fd59
40fc27:	89 5e 1c             	mov    %ebx,0x1c(%esi)
40fc2a:	56                   	push   %esi
40fc2b:	57                   	push   %edi
40fc2c:	8b f7                	mov    %edi,%esi
40fc2e:	8b fb                	mov    %ebx,%edi
40fc30:	b9 ae 05 00 00       	mov    $0x5ae,%ecx
40fc35:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40fc37:	5f                   	pop    %edi
40fc38:	5e                   	pop    %esi
40fc39:	89 33                	mov    %esi,(%ebx)
40fc3b:	b9 02 00 00 00       	mov    $0x2,%ecx
40fc40:	8b 53 24             	mov    0x24(%ebx),%edx
40fc43:	8b 46 28             	mov    0x28(%esi),%eax
40fc46:	ff 56 20             	call   *0x20(%esi)
40fc49:	89 43 30             	mov    %eax,0x30(%ebx)
40fc4c:	b9 02 00 00 00       	mov    $0x2,%ecx
40fc51:	8b 53 24             	mov    0x24(%ebx),%edx
40fc54:	8b 46 28             	mov    0x28(%esi),%eax
40fc57:	ff 56 20             	call   *0x20(%esi)
40fc5a:	89 43 38             	mov    %eax,0x38(%ebx)
40fc5d:	b9 02 00 00 00       	mov    $0x2,%ecx
40fc62:	8b 53 44             	mov    0x44(%ebx),%edx
40fc65:	8b 46 28             	mov    0x28(%esi),%eax
40fc68:	ff 56 20             	call   *0x20(%esi)
40fc6b:	89 43 3c             	mov    %eax,0x3c(%ebx)
40fc6e:	b9 04 00 00 00       	mov    $0x4,%ecx
40fc73:	8b 93 94 16 00 00    	mov    0x1694(%ebx),%edx
40fc79:	8b 46 28             	mov    0x28(%esi),%eax
40fc7c:	ff 56 20             	call   *0x20(%esi)