40d891:	85 c0                	test   %eax,%eax
40d893:	74 03                	je     0x40d898
40d895:	33 db                	xor    %ebx,%ebx
40d897:	43                   	inc    %ebx
40d898:	8a c3                	mov    %bl,%al
40d89a:	5b                   	pop    %ebx
40d89b:	5d                   	pop    %ebp
40d89c:	c2 0c 00             	ret    $0xc
40d89f:	a1 f4 20 4c 00       	mov    0x4c20f4,%eax
40d8a4:	8b 70 08             	mov    0x8(%eax),%esi
40d8a7:	eb c3                	jmp    0x40d86c
40d8a9:	8b d3                	mov    %ebx,%edx
40d8ab:	eb ce                	jmp    0x40d87b
40d8ad:	8b c3                	mov    %ebx,%eax
40d8af:	eb e0                	jmp    0x40d891
40d8b1:	b9 e0 20 4c 00       	mov    $0x4c20e0,%ecx
40d8b6:	e9 2d 6a 06 00       	jmp    0x4742e8
40d8bb:	cc                   	int3
40d8bc:	cc                   	int3
40d8bd:	cc                   	int3
40d8be:	cc                   	int3
40d8bf:	cc                   	int3
40d8c0:	55                   	push   %ebp
40d8c1:	8b ec                	mov    %esp,%ebp
40d8c3:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40d8c7:	74 77                	je     0x40d940
40d8c9:	53                   	push   %ebx
40d8ca:	56                   	push   %esi
40d8cb:	57                   	push   %edi
40d8cc:	8b 7d 08             	mov    0x8(%ebp),%edi
40d8cf:	8d 45 0c             	lea    0xc(%ebp),%eax
40d8d2:	50                   	push   %eax
40d8d3:	57                   	push   %edi
40d8d4:	e8 c7 00 00 00       	call   0x40d9a0
40d8d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40d8dc:	8b 77 04             	mov    0x4(%edi),%esi
40d8df:	8b 43 04             	mov    0x4(%ebx),%eax
40d8e2:	85 f6                	test   %esi,%esi
40d8e4:	0f 84 91 00 00 00    	je     0x40d97b
40d8ea:	85 c0                	test   %eax,%eax
40d8ec:	0f 84 8d 00 00 00    	je     0x40d97f
40d8f2:	8b 13                	mov    (%ebx),%edx
40d8f4:	3b f0                	cmp    %eax,%esi
40d8f6:	72 76                	jb     0x40d96e
40d8f8:	8b 07                	mov    (%edi),%eax
40d8fa:	85 f6                	test   %esi,%esi
40d8fc:	74 13                	je     0x40d911
40d8fe:	8b ff                	mov    %edi,%edi
40d900:	66 8b 08             	mov    (%eax),%cx
40d903:	66 3b 0a             	cmp    (%edx),%cx
40d906:	75 0d                	jne    0x40d915
40d908:	83 c0 02             	add    $0x2,%eax
40d90b:	83 c2 02             	add    $0x2,%edx
40d90e:	4e                   	dec    %esi
40d90f:	75 ef                	jne    0x40d900
40d911:	33 c0                	xor    %eax,%eax
40d913:	eb 0c                	jmp    0x40d921
40d915:	0f b7 00             	movzwl (%eax),%eax
40d918:	66 3b 02             	cmp    (%edx),%ax
40d91b:	1b c0                	sbb    %eax,%eax
40d91d:	83 e0 fe             	and    $0xfffffffe,%eax
40d920:	40                   	inc    %eax
40d921:	85 c0                	test   %eax,%eax
40d923:	78 30                	js     0x40d955
40d925:	7e 61                	jle    0x40d988
40d927:	8b 43 1c             	mov    0x1c(%ebx),%eax
40d92a:	89 47 1c             	mov    %eax,0x1c(%edi)
40d92d:	89 5f 18             	mov    %ebx,0x18(%edi)
40d930:	8b c7                	mov    %edi,%eax
40d932:	5f                   	pop    %edi
40d933:	5e                   	pop    %esi
40d934:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
40d93b:	5b                   	pop    %ebx
40d93c:	5d                   	pop    %ebp
40d93d:	c2 08 00             	ret    $0x8
40d940:	8b 45 08             	mov    0x8(%ebp),%eax
40d943:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
40d94a:	c7 40 18 00 00 00 00 	movl   $0x0,0x18(%eax)
40d951:	5d                   	pop    %ebp
40d952:	c2 08 00             	ret    $0x8
40d955:	8b 4b 18             	mov    0x18(%ebx),%ecx
40d958:	89 5f 1c             	mov    %ebx,0x1c(%edi)
40d95b:	89 4f 18             	mov    %ecx,0x18(%edi)
40d95e:	8b c7                	mov    %edi,%eax
40d960:	5f                   	pop    %edi
40d961:	5e                   	pop    %esi
40d962:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
40d969:	5b                   	pop    %ebx
40d96a:	5d                   	pop    %ebp
40d96b:	c2 08 00             	ret    $0x8
40d96e:	8b 0f                	mov    (%edi),%ecx
40d970:	50                   	push   %eax
40d971:	e8 27 e5 ff ff       	call   0x40be9d
40d976:	83 c4 04             	add    $0x4,%esp
40d979:	eb a6                	jmp    0x40d921
40d97b:	85 c0                	test   %eax,%eax
40d97d:	75 d6                	jne    0x40d955
40d97f:	85 f6                	test   %esi,%esi
40d981:	75 a4                	jne    0x40d927
40d983:	e9 6a ff ff ff       	jmp    0x40d8f2
40d988:	5f                   	pop    %edi
40d989:	5e                   	pop    %esi
40d98a:	8b c3                	mov    %ebx,%eax
40d98c:	5b                   	pop    %ebx
40d98d:	5d                   	pop    %ebp
40d98e:	c2 08 00             	ret    $0x8
40d991:	cc                   	int3
40d992:	cc                   	int3
40d993:	cc                   	int3
40d994:	cc                   	int3
40d995:	cc                   	int3
40d996:	cc                   	int3
40d997:	cc                   	int3
40d998:	cc                   	int3
40d999:	cc                   	int3
40d99a:	cc                   	int3
40d99b:	cc                   	int3
40d99c:	cc                   	int3
40d99d:	cc                   	int3
40d99e:	cc                   	int3
40d99f:	cc                   	int3
40d9a0:	55                   	push   %ebp
40d9a1:	8b ec                	mov    %esp,%ebp
40d9a3:	83 ec 10             	sub    $0x10,%esp
40d9a6:	56                   	push   %esi
40d9a7:	8b 75 0c             	mov    0xc(%ebp),%esi
40d9aa:	83 3e 00             	cmpl   $0x0,(%esi)
40d9ad:	0f 84 cc 01 00 00    	je     0x40db7f
40d9b3:	a1 f0 21 4c 00       	mov    0x4c21f0,%eax
40d9b8:	c6 45 0f 00          	movb   $0x0,0xf(%ebp)
40d9bc:	a8 01                	test   $0x1,%al
40d9be:	0f 84 0b 02 00 00    	je     0x40dbcf
40d9c4:	53                   	push   %ebx
40d9c5:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
40d9cc:	00 00 00
40d9cf:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
40d9d6:	00 00 00
40d9d9:	c7 45 f4 f4 21 4c 00 	movl   $0x4c21f4,-0xc(%ebp)
40d9e0:	c7 45 f8 f4 21 4c 00 	movl   $0x4c21f4,-0x8(%ebp)
40d9e7:	57                   	push   %edi
40d9e8:	8b 45 08             	mov    0x8(%ebp),%eax
40d9eb:	8b 16                	mov    (%esi),%edx
40d9ed:	8b 58 04             	mov    0x4(%eax),%ebx
40d9f0:	8b 4a 04             	mov    0x4(%edx),%ecx
40d9f3:	85 db                	test   %ebx,%ebx
40d9f5:	0f 84 80 6a 06 00    	je     0x47447b
40d9fb:	85 c9                	test   %ecx,%ecx
40d9fd:	0f 84 80 6a 06 00    	je     0x474483
40da03:	3b d9                	cmp    %ecx,%ebx
40da05:	0f 82 30 01 00 00    	jb     0x40db3b
40da0b:	8b 0a                	mov    (%edx),%ecx
40da0d:	8b 10                	mov    (%eax),%edx
40da0f:	8b fb                	mov    %ebx,%edi
40da11:	85 ff                	test   %edi,%edi
40da13:	74 11                	je     0x40da26
40da15:	66 8b 02             	mov    (%edx),%ax
40da18:	66 3b 01             	cmp    (%ecx),%ax
40da1b:	75 0d                	jne    0x40da2a
40da1d:	83 c2 02             	add    $0x2,%edx
40da20:	83 c1 02             	add    $0x2,%ecx
40da23:	4f                   	dec    %edi
40da24:	75 ef                	jne    0x40da15
40da26:	33 c0                	xor    %eax,%eax
40da28:	eb 0c                	jmp    0x40da36
40da2a:	0f b7 02             	movzwl (%edx),%eax
40da2d:	66 3b 01             	cmp    (%ecx),%ax
40da30:	1b c0                	sbb    %eax,%eax
40da32:	83 e0 fe             	and    $0xfffffffe,%eax
40da35:	40                   	inc    %eax
40da36:	8b 16                	mov    (%esi),%edx
40da38:	85 c0                	test   %eax,%eax
40da3a:	78 4e                	js     0x40da8a
40da3c:	7e 13                	jle    0x40da51
40da3e:	8b 45 08             	mov    0x8(%ebp),%eax
40da41:	8b 52 1c             	mov    0x1c(%edx),%edx
40da44:	85 d2                	test   %edx,%edx
40da46:	0f 85 a2 00 00 00    	jne    0x40daee
40da4c:	8a 5d 0f             	mov    0xf(%ebp),%bl
40da4f:	eb 02                	jmp    0x40da53
40da51:	b3 01                	mov    $0x1,%bl
40da53:	8b 06                	mov    (%esi),%eax
40da55:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40da58:	8b 40 18             	mov    0x18(%eax),%eax
40da5b:	8b 55 f4             	mov    -0xc(%ebp),%edx
40da5e:	89 41 1c             	mov    %eax,0x1c(%ecx)
40da61:	8b 0e                	mov    (%esi),%ecx
40da63:	5f                   	pop    %edi
40da64:	8b 49 1c             	mov    0x1c(%ecx),%ecx
40da67:	89 4a 18             	mov    %ecx,0x18(%edx)
40da6a:	8b 16                	mov    (%esi),%edx
40da6c:	8b 0d 10 22 4c 00    	mov    0x4c2210,%ecx
40da72:	89 4a 18             	mov    %ecx,0x18(%edx)
40da75:	8b 16                	mov    (%esi),%edx
40da77:	8b 0d 0c 22 4c 00    	mov    0x4c220c,%ecx
40da7d:	8a c3                	mov    %bl,%al
40da7f:	5b                   	pop    %ebx
40da80:	89 4a 1c             	mov    %ecx,0x1c(%edx)
40da83:	5e                   	pop    %esi
40da84:	8b e5                	mov    %ebp,%esp
40da86:	5d                   	pop    %ebp
40da87:	c2 08 00             	ret    $0x8
40da8a:	8b 45 08             	mov    0x8(%ebp),%eax
40da8d:	8b 52 18             	mov    0x18(%edx),%edx
40da90:	85 d2                	test   %edx,%edx
40da92:	74 b8                	je     0x40da4c
40da94:	8b 4a 04             	mov    0x4(%edx),%ecx
40da97:	3b d9                	cmp    %ecx,%ebx
40da99:	0f 87 22 01 00 00    	ja     0x40dbc1
40da9f:	8b 0a                	mov    (%edx),%ecx
40daa1:	8b 38                	mov    (%eax),%edi
40daa3:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40daa6:	85 db                	test   %ebx,%ebx
40daa8:	0f 84 c3 00 00 00    	je     0x40db71
40daae:	8b ff                	mov    %edi,%edi
40dab0:	66 8b 07             	mov    (%edi),%ax
40dab3:	66 3b 01             	cmp    (%ecx),%ax
40dab6:	0f 84 a6 00 00 00    	je     0x40db62
40dabc:	73 19                	jae    0x40dad7
40dabe:	8b 0e                	mov    (%esi),%ecx
40dac0:	8b 42 1c             	mov    0x1c(%edx),%eax
40dac3:	89 41 18             	mov    %eax,0x18(%ecx)
40dac6:	8b 06                	mov    (%esi),%eax
40dac8:	89 42 1c             	mov    %eax,0x1c(%edx)
40dacb:	89 16                	mov    %edx,(%esi)
40dacd:	83 7a 18 00          	cmpl   $0x0,0x18(%edx)
40dad1:	0f 84 75 ff ff ff    	je     0x40da4c
40dad7:	8b 06                	mov    (%esi),%eax
40dad9:	8b 55 f4             	mov    -0xc(%ebp),%edx
40dadc:	89 42 18             	mov    %eax,0x18(%edx)
40dadf:	8b 06                	mov    (%esi),%eax
40dae1:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dae4:	8b 40 18             	mov    0x18(%eax),%eax
40dae7:	89 06                	mov    %eax,(%esi)
40dae9:	e9 fa fe ff ff       	jmp    0x40d9e8
40daee:	8b 4a 04             	mov    0x4(%edx),%ecx
40daf1:	3b cb                	cmp    %ebx,%ecx
40daf3:	0f 87 cf 00 00 00    	ja     0x40dbc8
40daf9:	8b 38                	mov    (%eax),%edi
40dafb:	8b 02                	mov    (%edx),%eax
40dafd:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40db00:	89 45 fc             	mov    %eax,-0x4(%ebp)
40db03:	85 c9                	test   %ecx,%ecx
40db05:	74 19                	je     0x40db20
40db07:	66 8b 00             	mov    (%eax),%ax
40db0a:	66 3b 07             	cmp    (%edi),%ax
40db0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40db10:	75 76                	jne    0x40db88
40db12:	83 c0 02             	add    $0x2,%eax
40db15:	83 c7 02             	add    $0x2,%edi
40db18:	ff 4d f0             	decl   -0x10(%ebp)
40db1b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40db1e:	75 e7                	jne    0x40db07
40db20:	3b cb                	cmp    %ebx,%ecx
40db22:	72 6c                	jb     0x40db90
40db24:	8b 06                	mov    (%esi),%eax
40db26:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40db29:	89 41 1c             	mov    %eax,0x1c(%ecx)
40db2c:	8b 06                	mov    (%esi),%eax
40db2e:	89 45 f8             	mov    %eax,-0x8(%ebp)
40db31:	8b 40 1c             	mov    0x1c(%eax),%eax
40db34:	89 06                	mov    %eax,(%esi)
40db36:	e9 ad fe ff ff       	jmp    0x40d9e8
40db3b:	8b 00                	mov    (%eax),%eax
40db3d:	8b 3a                	mov    (%edx),%edi
40db3f:	89 45 fc             	mov    %eax,-0x4(%ebp)
40db42:	85 c9                	test   %ecx,%ecx
40db44:	74 74                	je     0x40dbba
40db46:	66 8b 00             	mov    (%eax),%ax
40db49:	66 3b 07             	cmp    (%edi),%ax
40db4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
40db4f:	74 5d                	je     0x40dbae
40db51:	0f b7 00             	movzwl (%eax),%eax
40db54:	66 3b 07             	cmp    (%edi),%ax
40db57:	1b c0                	sbb    %eax,%eax
40db59:	83 e0 fe             	and    $0xfffffffe,%eax
40db5c:	40                   	inc    %eax
40db5d:	e9 d6 fe ff ff       	jmp    0x40da38
40db62:	83 c7 02             	add    $0x2,%edi
40db65:	83 c1 02             	add    $0x2,%ecx
40db68:	ff 4d fc             	decl   -0x4(%ebp)
40db6b:	0f 85 3f ff ff ff    	jne    0x40dab0
40db71:	3b 5a 04             	cmp    0x4(%edx),%ebx
40db74:	0f 83 5d ff ff ff    	jae    0x40dad7
40db7a:	e9 3f ff ff ff       	jmp    0x40dabe
40db7f:	32 c0                	xor    %al,%al
40db81:	5e                   	pop    %esi
40db82:	8b e5                	mov    %ebp,%esp
40db84:	5d                   	pop    %ebp
40db85:	c2 08 00             	ret    $0x8
40db88:	66 8b 00             	mov    (%eax),%ax
40db8b:	66 3b 07             	cmp    (%edi),%ax
40db8e:	73 94                	jae    0x40db24
40db90:	8b 0e                	mov    (%esi),%ecx
40db92:	8b 42 18             	mov    0x18(%edx),%eax
40db95:	89 41 1c             	mov    %eax,0x1c(%ecx)
40db98:	8b 06                	mov    (%esi),%eax
40db9a:	89 42 18             	mov    %eax,0x18(%edx)
40db9d:	89 16                	mov    %edx,(%esi)
40db9f:	83 7a 1c 00          	cmpl   $0x0,0x1c(%edx)
40dba3:	0f 84 a3 fe ff ff    	je     0x40da4c
40dba9:	e9 76 ff ff ff       	jmp    0x40db24
40dbae:	83 c0 02             	add    $0x2,%eax
40dbb1:	83 c7 02             	add    $0x2,%edi
40dbb4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dbb7:	49                   	dec    %ecx
40dbb8:	75 8c                	jne    0x40db46
40dbba:	33 c0                	xor    %eax,%eax
40dbbc:	e9 77 fe ff ff       	jmp    0x40da38
40dbc1:	8b d9                	mov    %ecx,%ebx
40dbc3:	e9 d7 fe ff ff       	jmp    0x40da9f
40dbc8:	8b cb                	mov    %ebx,%ecx
40dbca:	e9 2a ff ff ff       	jmp    0x40daf9
40dbcf:	83 c8 01             	or     $0x1,%eax
40dbd2:	b9 f4 21 4c 00       	mov    $0x4c21f4,%ecx
40dbd7:	a3 f0 21 4c 00       	mov    %eax,0x4c21f0
40dbdc:	e8 16 fc ff ff       	call   0x40d7f7
40dbe1:	68 a5 1a 47 00       	push   $0x471aa5
40dbe6:	e8 1f 33 01 00       	call   0x420f0a
40dbeb:	83 c4 04             	add    $0x4,%esp
40dbee:	e9 d1 fd ff ff       	jmp    0x40d9c4
40dbf3:	55                   	push   %ebp
40dbf4:	8b ec                	mov    %esp,%ebp
40dbf6:	83 ec 14             	sub    $0x14,%esp
40dbf9:	53                   	push   %ebx
40dbfa:	56                   	push   %esi
40dbfb:	57                   	push   %edi
40dbfc:	8b f9                	mov    %ecx,%edi
40dbfe:	83 bf ec 00 00 00 01 	cmpl   $0x1,0xec(%edi)
40dc05:	0f 84 7b a9 06 00    	je     0x478586
40dc0b:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40dc0e:	8b 55 08             	mov    0x8(%ebp),%edx
40dc11:	ff 03                	incl   (%ebx)
40dc13:	8b 0b                	mov    (%ebx),%ecx
40dc15:	8b 42 04             	mov    0x4(%edx),%eax
40dc18:	6a 7f                	push   $0x7f
40dc1a:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40dc1d:	59                   	pop    %ecx
40dc1e:	66 39 48 08          	cmp    %cx,0x8(%eax)
40dc22:	74 57                	je     0x40dc7b
40dc24:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
40dc28:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40dc2c:	6a ff                	push   $0xffffffff
40dc2e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40dc31:	50                   	push   %eax
40dc32:	53                   	push   %ebx
40dc33:	52                   	push   %edx
40dc34:	8b cf                	mov    %edi,%ecx
40dc36:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40dc3d:	e8 ee 21 00 00       	call   0x40fe30
40dc42:	85 c0                	test   %eax,%eax