40bc02:	66 39 08             	cmp    %cx,(%eax)
40bc05:	74 28                	je     0x40bc2f
40bc07:	39 4d 08             	cmp    %ecx,0x8(%ebp)
40bc0a:	74 11                	je     0x40bc1d
40bc0c:	ff 75 10             	push   0x10(%ebp)
40bc0f:	50                   	push   %eax
40bc10:	ff 75 08             	push   0x8(%ebp)
40bc13:	e8 7d ff ff ff       	call   0x40bb95
40bc18:	83 c4 0c             	add    $0xc,%esp
40bc1b:	5d                   	pop    %ebp
40bc1c:	c3                   	ret
40bc1d:	51                   	push   %ecx
40bc1e:	51                   	push   %ecx
40bc1f:	6a 01                	push   $0x1
40bc21:	ff 75 10             	push   0x10(%ebp)
40bc24:	50                   	push   %eax
40bc25:	e8 f5 fe ff ff       	call   0x40bb1f
40bc2a:	83 c4 14             	add    $0x14,%esp
40bc2d:	5d                   	pop    %ebp
40bc2e:	c3                   	ret
40bc2f:	8b 45 10             	mov    0x10(%ebp),%eax
40bc32:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
40bc37:	3b c1                	cmp    %ecx,%eax
40bc39:	72 02                	jb     0x40bc3d
40bc3b:	8b c1                	mov    %ecx,%eax
40bc3d:	50                   	push   %eax
40bc3e:	ff 75 08             	push   0x8(%ebp)
40bc41:	e8 c0 7a 00 00       	call   0x413706
40bc46:	59                   	pop    %ecx
40bc47:	59                   	pop    %ecx
40bc48:	5d                   	pop    %ebp
40bc49:	c3                   	ret
40bc4a:	8b ff                	mov    %edi,%edi
40bc4c:	55                   	push   %ebp
40bc4d:	8b ec                	mov    %esp,%ebp
40bc4f:	8b 45 08             	mov    0x8(%ebp),%eax
40bc52:	33 c9                	xor    %ecx,%ecx
40bc54:	53                   	push   %ebx
40bc55:	56                   	push   %esi
40bc56:	57                   	push   %edi
40bc57:	66 39 08             	cmp    %cx,(%eax)
40bc5a:	74 2c                	je     0x40bc88
40bc5c:	8b 75 0c             	mov    0xc(%ebp),%esi
40bc5f:	0f b7 3e             	movzwl (%esi),%edi
40bc62:	8b ce                	mov    %esi,%ecx
40bc64:	66 85 ff             	test   %di,%di
40bc67:	74 15                	je     0x40bc7e
40bc69:	0f b7 18             	movzwl (%eax),%ebx
40bc6c:	8b d7                	mov    %edi,%edx
40bc6e:	66 3b d3             	cmp    %bx,%dx
40bc71:	74 17                	je     0x40bc8a
40bc73:	83 c1 02             	add    $0x2,%ecx
40bc76:	0f b7 11             	movzwl (%ecx),%edx
40bc79:	66 85 d2             	test   %dx,%dx
40bc7c:	75 f0                	jne    0x40bc6e
40bc7e:	83 c0 02             	add    $0x2,%eax
40bc81:	33 c9                	xor    %ecx,%ecx
40bc83:	66 39 08             	cmp    %cx,(%eax)
40bc86:	75 da                	jne    0x40bc62
40bc88:	33 c0                	xor    %eax,%eax
40bc8a:	5f                   	pop    %edi
40bc8b:	5e                   	pop    %esi
40bc8c:	5b                   	pop    %ebx
40bc8d:	5d                   	pop    %ebp
40bc8e:	c3                   	ret
40bc8f:	68 90 c9 41 00       	push   $0x41c990
40bc94:	68 88 c9 41 00       	push   $0x41c988
40bc99:	68 90 c9 41 00       	push   $0x41c990
40bc9e:	6a 01                	push   $0x1
40bca0:	e8 04 00 00 00       	call   0x40bca9
40bca5:	83 c4 10             	add    $0x10,%esp
40bca8:	c3                   	ret
40bca9:	8b ff                	mov    %edi,%edi
40bcab:	55                   	push   %ebp
40bcac:	8b ec                	mov    %esp,%ebp
40bcae:	8b 45 08             	mov    0x8(%ebp),%eax
40bcb1:	53                   	push   %ebx
40bcb2:	56                   	push   %esi
40bcb3:	57                   	push   %edi
40bcb4:	8d 1c 85 18 44 42 00 	lea    0x424418(,%eax,4),%ebx
40bcbb:	8b 03                	mov    (%ebx),%eax
40bcbd:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
40bcc3:	83 cf ff             	or     $0xffffffff,%edi
40bcc6:	8b ca                	mov    %edx,%ecx
40bcc8:	8b f2                	mov    %edx,%esi
40bcca:	83 e1 1f             	and    $0x1f,%ecx
40bccd:	33 f0                	xor    %eax,%esi
40bccf:	d3 ce                	ror    %cl,%esi
40bcd1:	3b f7                	cmp    %edi,%esi
40bcd3:	74 69                	je     0x40bd3e
40bcd5:	85 f6                	test   %esi,%esi
40bcd7:	74 04                	je     0x40bcdd
40bcd9:	8b c6                	mov    %esi,%eax
40bcdb:	eb 63                	jmp    0x40bd40
40bcdd:	8b 75 10             	mov    0x10(%ebp),%esi
40bce0:	3b 75 14             	cmp    0x14(%ebp),%esi
40bce3:	74 1a                	je     0x40bcff
40bce5:	ff 36                	push   (%esi)
40bce7:	e8 59 00 00 00       	call   0x40bd45
40bcec:	59                   	pop    %ecx
40bced:	85 c0                	test   %eax,%eax
40bcef:	75 2f                	jne    0x40bd20
40bcf1:	83 c6 04             	add    $0x4,%esi
40bcf4:	3b 75 14             	cmp    0x14(%ebp),%esi
40bcf7:	75 ec                	jne    0x40bce5
40bcf9:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
40bcff:	33 c0                	xor    %eax,%eax
40bd01:	85 c0                	test   %eax,%eax
40bd03:	74 29                	je     0x40bd2e
40bd05:	ff 75 0c             	push   0xc(%ebp)
40bd08:	50                   	push   %eax
40bd09:	ff 15 68 b0 41 00    	call   *0x41b068
40bd0f:	8b f0                	mov    %eax,%esi
40bd11:	85 f6                	test   %esi,%esi
40bd13:	74 13                	je     0x40bd28
40bd15:	56                   	push   %esi
40bd16:	e8 aa 75 ff ff       	call   0x4032c5
40bd1b:	59                   	pop    %ecx
40bd1c:	87 03                	xchg   %eax,(%ebx)
40bd1e:	eb b9                	jmp    0x40bcd9
40bd20:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
40bd26:	eb d9                	jmp    0x40bd01
40bd28:	8b 15 0c 30 42 00    	mov    0x42300c,%edx
40bd2e:	8b c2                	mov    %edx,%eax
40bd30:	6a 20                	push   $0x20
40bd32:	83 e0 1f             	and    $0x1f,%eax
40bd35:	59                   	pop    %ecx
40bd36:	2b c8                	sub    %eax,%ecx
40bd38:	d3 cf                	ror    %cl,%edi
40bd3a:	33 fa                	xor    %edx,%edi
40bd3c:	87 3b                	xchg   %edi,(%ebx)
40bd3e:	33 c0                	xor    %eax,%eax
40bd40:	5f                   	pop    %edi
40bd41:	5e                   	pop    %esi
40bd42:	5b                   	pop    %ebx
40bd43:	5d                   	pop    %ebp
40bd44:	c3                   	ret
40bd45:	8b ff                	mov    %edi,%edi
40bd47:	55                   	push   %ebp
40bd48:	8b ec                	mov    %esp,%ebp
40bd4a:	8b 45 08             	mov    0x8(%ebp),%eax
40bd4d:	57                   	push   %edi
40bd4e:	8d 3c 85 c8 43 42 00 	lea    0x4243c8(,%eax,4),%edi
40bd55:	8b 0f                	mov    (%edi),%ecx
40bd57:	85 c9                	test   %ecx,%ecx
40bd59:	74 0b                	je     0x40bd66
40bd5b:	8d 41 01             	lea    0x1(%ecx),%eax
40bd5e:	f7 d8                	neg    %eax
40bd60:	1b c0                	sbb    %eax,%eax
40bd62:	23 c1                	and    %ecx,%eax
40bd64:	eb 57                	jmp    0x40bdbd
40bd66:	53                   	push   %ebx
40bd67:	8b 1c 85 e8 c4 41 00 	mov    0x41c4e8(,%eax,4),%ebx
40bd6e:	56                   	push   %esi
40bd6f:	68 00 08 00 00       	push   $0x800
40bd74:	6a 00                	push   $0x0
40bd76:	53                   	push   %ebx
40bd77:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40bd7d:	8b f0                	mov    %eax,%esi
40bd7f:	85 f6                	test   %esi,%esi
40bd81:	75 27                	jne    0x40bdaa
40bd83:	ff 15 48 b0 41 00    	call   *0x41b048
40bd89:	83 f8 57             	cmp    $0x57,%eax
40bd8c:	75 0d                	jne    0x40bd9b
40bd8e:	56                   	push   %esi
40bd8f:	56                   	push   %esi
40bd90:	53                   	push   %ebx
40bd91:	ff 15 a0 b0 41 00    	call   *0x41b0a0
40bd97:	8b f0                	mov    %eax,%esi
40bd99:	eb 02                	jmp    0x40bd9d
40bd9b:	33 f6                	xor    %esi,%esi
40bd9d:	85 f6                	test   %esi,%esi
40bd9f:	75 09                	jne    0x40bdaa
40bda1:	83 c8 ff             	or     $0xffffffff,%eax
40bda4:	87 07                	xchg   %eax,(%edi)
40bda6:	33 c0                	xor    %eax,%eax
40bda8:	eb 11                	jmp    0x40bdbb
40bdaa:	8b c6                	mov    %esi,%eax
40bdac:	87 07                	xchg   %eax,(%edi)
40bdae:	85 c0                	test   %eax,%eax
40bdb0:	74 07                	je     0x40bdb9
40bdb2:	56                   	push   %esi
40bdb3:	ff 15 04 b1 41 00    	call   *0x41b104
40bdb9:	8b c6                	mov    %esi,%eax
40bdbb:	5e                   	pop    %esi
40bdbc:	5b                   	pop    %ebx
40bdbd:	5f                   	pop    %edi
40bdbe:	5d                   	pop    %ebp
40bdbf:	c3                   	ret
40bdc0:	8b ff                	mov    %edi,%edi
40bdc2:	55                   	push   %ebp
40bdc3:	8b ec                	mov    %esp,%ebp
40bdc5:	51                   	push   %ecx
40bdc6:	a1 0c 30 42 00       	mov    0x42300c,%eax
40bdcb:	33 c5                	xor    %ebp,%eax
40bdcd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bdd0:	56                   	push   %esi
40bdd1:	e8 b9 fe ff ff       	call   0x40bc8f
40bdd6:	8b f0                	mov    %eax,%esi
40bdd8:	85 f6                	test   %esi,%esi
40bdda:	74 27                	je     0x40be03
40bddc:	ff 75 28             	push   0x28(%ebp)
40bddf:	8b ce                	mov    %esi,%ecx
40bde1:	ff 75 24             	push   0x24(%ebp)
40bde4:	ff 75 20             	push   0x20(%ebp)
40bde7:	ff 75 1c             	push   0x1c(%ebp)
40bdea:	ff 75 18             	push   0x18(%ebp)
40bded:	ff 75 14             	push   0x14(%ebp)
40bdf0:	ff 75 10             	push   0x10(%ebp)
40bdf3:	ff 75 0c             	push   0xc(%ebp)
40bdf6:	ff 75 08             	push   0x8(%ebp)
40bdf9:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40bdff:	ff d6                	call   *%esi
40be01:	eb 20                	jmp    0x40be23
40be03:	ff 75 1c             	push   0x1c(%ebp)
40be06:	ff 75 18             	push   0x18(%ebp)
40be09:	ff 75 14             	push   0x14(%ebp)
40be0c:	ff 75 10             	push   0x10(%ebp)
40be0f:	ff 75 0c             	push   0xc(%ebp)
40be12:	6a 00                	push   $0x0
40be14:	ff 75 08             	push   0x8(%ebp)
40be17:	e8 16 03 00 00       	call   0x40c132
40be1c:	50                   	push   %eax
40be1d:	ff 15 50 b1 41 00    	call   *0x41b150
40be23:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be26:	33 cd                	xor    %ebp,%ecx
40be28:	5e                   	pop    %esi
40be29:	e8 28 71 ff ff       	call   0x402f56
40be2e:	8b e5                	mov    %ebp,%esp
40be30:	5d                   	pop    %ebp
40be31:	c2 24 00             	ret    $0x24
40be34:	8b ff                	mov    %edi,%edi
40be36:	55                   	push   %ebp
40be37:	8b ec                	mov    %esp,%ebp
40be39:	51                   	push   %ecx
40be3a:	a1 0c 30 42 00       	mov    0x42300c,%eax
40be3f:	33 c5                	xor    %ebp,%eax
40be41:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be44:	56                   	push   %esi
40be45:	68 a8 c9 41 00       	push   $0x41c9a8
40be4a:	68 a0 c9 41 00       	push   $0x41c9a0
40be4f:	68 5c b4 41 00       	push   $0x41b45c
40be54:	6a 03                	push   $0x3
40be56:	e8 4e fe ff ff       	call   0x40bca9
40be5b:	8b f0                	mov    %eax,%esi
40be5d:	83 c4 10             	add    $0x10,%esp
40be60:	85 f6                	test   %esi,%esi
40be62:	74 0f                	je     0x40be73
40be64:	ff 75 08             	push   0x8(%ebp)
40be67:	8b ce                	mov    %esi,%ecx
40be69:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40be6f:	ff d6                	call   *%esi
40be71:	eb 06                	jmp    0x40be79
40be73:	ff 15 f4 b0 41 00    	call   *0x41b0f4
40be79:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be7c:	33 cd                	xor    %ebp,%ecx
40be7e:	5e                   	pop    %esi
40be7f:	e8 d2 70 ff ff       	call   0x402f56
40be84:	8b e5                	mov    %ebp,%esp
40be86:	5d                   	pop    %ebp
40be87:	c2 04 00             	ret    $0x4
40be8a:	8b ff                	mov    %edi,%edi
40be8c:	55                   	push   %ebp
40be8d:	8b ec                	mov    %esp,%ebp
40be8f:	51                   	push   %ecx
40be90:	a1 0c 30 42 00       	mov    0x42300c,%eax
40be95:	33 c5                	xor    %ebp,%eax
40be97:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be9a:	56                   	push   %esi
40be9b:	68 b0 c9 41 00       	push   $0x41c9b0
40bea0:	68 a8 c9 41 00       	push   $0x41c9a8
40bea5:	68 70 b4 41 00       	push   $0x41b470
40beaa:	6a 04                	push   $0x4
40beac:	e8 f8 fd ff ff       	call   0x40bca9
40beb1:	83 c4 10             	add    $0x10,%esp
40beb4:	8b f0                	mov    %eax,%esi
40beb6:	ff 75 08             	push   0x8(%ebp)
40beb9:	85 f6                	test   %esi,%esi
40bebb:	74 0c                	je     0x40bec9
40bebd:	8b ce                	mov    %esi,%ecx
40bebf:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40bec5:	ff d6                	call   *%esi
40bec7:	eb 06                	jmp    0x40becf
40bec9:	ff 15 00 b1 41 00    	call   *0x41b100
40becf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bed2:	33 cd                	xor    %ebp,%ecx
40bed4:	5e                   	pop    %esi
40bed5:	e8 7c 70 ff ff       	call   0x402f56
40beda:	8b e5                	mov    %ebp,%esp
40bedc:	5d                   	pop    %ebp
40bedd:	c2 04 00             	ret    $0x4
40bee0:	8b ff                	mov    %edi,%edi
40bee2:	55                   	push   %ebp
40bee3:	8b ec                	mov    %esp,%ebp
40bee5:	51                   	push   %ecx
40bee6:	a1 0c 30 42 00       	mov    0x42300c,%eax
40beeb:	33 c5                	xor    %ebp,%eax
40beed:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bef0:	56                   	push   %esi
40bef1:	68 b8 c9 41 00       	push   $0x41c9b8
40bef6:	68 b0 c9 41 00       	push   $0x41c9b0
40befb:	68 80 b4 41 00       	push   $0x41b480
40bf00:	6a 05                	push   $0x5
40bf02:	e8 a2 fd ff ff       	call   0x40bca9
40bf07:	83 c4 10             	add    $0x10,%esp
40bf0a:	8b f0                	mov    %eax,%esi
40bf0c:	ff 75 08             	push   0x8(%ebp)
40bf0f:	85 f6                	test   %esi,%esi
40bf11:	74 0c                	je     0x40bf1f
40bf13:	8b ce                	mov    %esi,%ecx
40bf15:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40bf1b:	ff d6                	call   *%esi
40bf1d:	eb 06                	jmp    0x40bf25
40bf1f:	ff 15 f8 b0 41 00    	call   *0x41b0f8
40bf25:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bf28:	33 cd                	xor    %ebp,%ecx
40bf2a:	5e                   	pop    %esi
40bf2b:	e8 26 70 ff ff       	call   0x402f56
40bf30:	8b e5                	mov    %ebp,%esp
40bf32:	5d                   	pop    %ebp
40bf33:	c2 04 00             	ret    $0x4
40bf36:	8b ff                	mov    %edi,%edi
40bf38:	55                   	push   %ebp
40bf39:	8b ec                	mov    %esp,%ebp
40bf3b:	51                   	push   %ecx
40bf3c:	a1 0c 30 42 00       	mov    0x42300c,%eax
40bf41:	33 c5                	xor    %ebp,%eax
40bf43:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bf46:	56                   	push   %esi
40bf47:	68 c0 c9 41 00       	push   $0x41c9c0
40bf4c:	68 b8 c9 41 00       	push   $0x41c9b8
40bf51:	68 94 b4 41 00       	push   $0x41b494
40bf56:	6a 06                	push   $0x6
40bf58:	e8 4c fd ff ff       	call   0x40bca9
40bf5d:	83 c4 10             	add    $0x10,%esp
40bf60:	8b f0                	mov    %eax,%esi
40bf62:	ff 75 0c             	push   0xc(%ebp)
40bf65:	ff 75 08             	push   0x8(%ebp)
40bf68:	85 f6                	test   %esi,%esi
40bf6a:	74 0c                	je     0x40bf78
40bf6c:	8b ce                	mov    %esi,%ecx
40bf6e:	ff 15 a8 b1 41 00    	call   *0x41b1a8
40bf74:	ff d6                	call   *%esi
40bf76:	eb 06                	jmp    0x40bf7e
40bf78:	ff 15 fc b0 41 00    	call   *0x41b0fc
40bf7e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40bf81:	33 cd                	xor    %ebp,%ecx
40bf83:	5e                   	pop    %esi
40bf84:	e8 cd 6f ff ff       	call   0x402f56
40bf89:	8b e5                	mov    %ebp,%esp