40c80f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40c812:	89 08                	mov    %ecx,(%eax)
40c814:	33 c0                	xor    %eax,%eax
40c816:	40                   	inc    %eax
40c817:	5e                   	pop    %esi
40c818:	c9                   	leave
40c819:	c2 10 00             	ret    $0x10
40c81c:	8b ff                	mov    %edi,%edi
40c81e:	55                   	push   %ebp
40c81f:	8b ec                	mov    %esp,%ebp
40c821:	81 ec bc 00 00 00    	sub    $0xbc,%esp
40c827:	a1 64 10 41 00       	mov    0x411064,%eax
40c82c:	33 c5                	xor    %ebp,%eax
40c82e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c831:	a1 70 26 43 00       	mov    0x432670,%eax
40c836:	89 8d 58 ff ff ff    	mov    %ecx,-0xa8(%ebp)
40c83c:	53                   	push   %ebx
40c83d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c840:	56                   	push   %esi
40c841:	8b f2                	mov    %edx,%esi
40c843:	89 b5 4c ff ff ff    	mov    %esi,-0xb4(%ebp)
40c849:	57                   	push   %edi
40c84a:	85 c0                	test   %eax,%eax
40c84c:	74 0f                	je     0x40c85d
40c84e:	3b 46 5c             	cmp    0x5c(%esi),%eax
40c851:	75 0a                	jne    0x40c85d
40c853:	c7 05 68 26 43 00 01 	movl   $0x1,0x432668
40c85a:	00 00 00
40c85d:	8d 7e 5c             	lea    0x5c(%esi),%edi
40c860:	83 3f 00             	cmpl   $0x0,(%edi)
40c863:	74 0c                	je     0x40c871
40c865:	3b 07                	cmp    (%edi),%eax
40c867:	74 08                	je     0x40c871
40c869:	ff 37                	push   (%edi)
40c86b:	ff 15 b4 30 43 00    	call   *0x4330b4
40c871:	83 7e 58 00          	cmpl   $0x0,0x58(%esi)
40c875:	74 09                	je     0x40c880
40c877:	ff 76 58             	push   0x58(%esi)
40c87a:	ff 15 b4 30 43 00    	call   *0x4330b4
40c880:	ff 15 f8 31 43 00    	call   *0x4331f8
40c886:	8b 0d b4 16 41 00    	mov    0x4116b4,%ecx
40c88c:	6a ff                	push   $0xffffffff
40c88e:	69 db 14 02 00 00    	imul   $0x214,%ebx,%ebx
40c894:	68 e8 13 40 00       	push   $0x4013e8
40c899:	6a ff                	push   $0xffffffff
40c89b:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
40c8a1:	33 c0                	xor    %eax,%eax
40c8a3:	89 45 a8             	mov    %eax,-0x58(%ebp)
40c8a6:	03 cb                	add    %ebx,%ecx
40c8a8:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40c8ab:	51                   	push   %ecx
40c8ac:	89 45 a0             	mov    %eax,-0x60(%ebp)
40c8af:	89 45 9c             	mov    %eax,-0x64(%ebp)
40c8b2:	89 45 b0             	mov    %eax,-0x50(%ebp)
40c8b5:	66 89 45 ad          	mov    %ax,-0x53(%ebp)
40c8b9:	88 45 ac             	mov    %al,-0x54(%ebp)
40c8bc:	8a 81 00 02 00 00    	mov    0x200(%ecx),%al
40c8c2:	6a 01                	push   $0x1
40c8c4:	6a 7f                	push   $0x7f
40c8c6:	88 45 af             	mov    %al,-0x51(%ebp)
40c8c9:	ff 15 c0 31 43 00    	call   *0x4331c0
40c8cf:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
40c8d2:	83 f8 02             	cmp    $0x2,%eax
40c8d5:	75 07                	jne    0x40c8de
40c8d7:	68 b8 14 40 00       	push   $0x4014b8
40c8dc:	eb 08                	jmp    0x40c8e6
40c8de:	a1 b4 16 41 00       	mov    0x4116b4,%eax
40c8e3:	03 c3                	add    %ebx,%eax
40c8e5:	50                   	push   %eax
40c8e6:	6a 20                	push   $0x20
40c8e8:	5a                   	pop    %edx
40c8e9:	e8 71 71 ff ff       	call   0x403a5f
40c8ee:	85 c0                	test   %eax,%eax
40c8f0:	0f 88 22 02 00 00    	js     0x40cb18
40c8f6:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
40c8fc:	6a 00                	push   $0x0
40c8fe:	6a 00                	push   $0x0
40c900:	68 47 01 00 00       	push   $0x147
40c905:	68 ca 00 00 00       	push   $0xca
40c90a:	53                   	push   %ebx
40c90b:	ff 15 18 33 43 00    	call   *0x433318
40c911:	33 d2                	xor    %edx,%edx
40c913:	8b cb                	mov    %ebx,%ecx
40c915:	42                   	inc    %edx
40c916:	e8 2c 0d 00 00       	call   0x40d647
40c91b:	8b 46 1c             	mov    0x1c(%esi),%eax
40c91e:	83 e8 05             	sub    $0x5,%eax
40c921:	89 45 98             	mov    %eax,-0x68(%ebp)
40c924:	8d 45 98             	lea    -0x68(%ebp),%eax
40c927:	50                   	push   %eax
40c928:	ff 15 b0 30 43 00    	call   *0x4330b0
40c92e:	89 46 58             	mov    %eax,0x58(%esi)
40c931:	ff 15 d4 30 43 00    	call   *0x4330d4
40c937:	6a 04                	push   $0x4
40c939:	25 ff 03 00 00       	and    $0x3ff,%eax
40c93e:	59                   	pop    %ecx
40c93f:	66 3b c1             	cmp    %cx,%ax
40c942:	75 09                	jne    0x40c94d
40c944:	c7 45 98 10 00 00 00 	movl   $0x10,-0x68(%ebp)
40c94b:	eb 09                	jmp    0x40c956
40c94d:	8b 46 04             	mov    0x4(%esi),%eax
40c950:	83 e8 06             	sub    $0x6,%eax
40c953:	89 45 98             	mov    %eax,-0x68(%ebp)
40c956:	ff 35 14 19 43 00    	push   0x431914
40c95c:	ff 15 f0 32 43 00    	call   *0x4332f0
40c962:	8b d8                	mov    %eax,%ebx
40c964:	89 9d 58 ff ff ff    	mov    %ebx,-0xa8(%ebp)
40c96a:	85 ff                	test   %edi,%edi
40c96c:	74 20                	je     0x40c98e
40c96e:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
40c974:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40c97a:	50                   	push   %eax
40c97b:	57                   	push   %edi
40c97c:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
40c982:	8b cb                	mov    %ebx,%ecx
40c984:	50                   	push   %eax
40c985:	8d 45 98             	lea    -0x68(%ebp),%eax
40c988:	50                   	push   %eax
40c989:	e8 bf fd ff ff       	call   0x40c74d
40c98e:	83 bd 60 ff ff ff 00 	cmpl   $0x0,-0xa0(%ebp)
40c995:	74 4e                	je     0x40c9e5
40c997:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
40c99d:	6a 0a                	push   $0xa
40c99f:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
40c9a5:	ff 15 80 31 43 00    	call   *0x433180
40c9ab:	83 f8 04             	cmp    $0x4,%eax
40c9ae:	7e 35                	jle    0x40c9e5
40c9b0:	ff 37                	push   (%edi)
40c9b2:	ff 15 b4 30 43 00    	call   *0x4330b4
40c9b8:	f7 5d 98             	negl   -0x68(%ebp)
40c9bb:	85 ff                	test   %edi,%edi
40c9bd:	74 1b                	je     0x40c9da
40c9bf:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
40c9c5:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40c9cb:	50                   	push   %eax
40c9cc:	57                   	push   %edi
40c9cd:	6a 00                	push   $0x0
40c9cf:	8d 45 98             	lea    -0x68(%ebp),%eax
40c9d2:	8b cb                	mov    %ebx,%ecx
40c9d4:	50                   	push   %eax
40c9d5:	e8 73 fd ff ff       	call   0x40c74d
40c9da:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
40c9e0:	89 45 98             	mov    %eax,-0x68(%ebp)
40c9e3:	eb 06                	jmp    0x40c9eb
40c9e5:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
40c9eb:	ff 76 04             	push   0x4(%esi)
40c9ee:	ff 36                	push   (%esi)
40c9f0:	50                   	push   %eax
40c9f1:	ff 15 80 31 43 00    	call   *0x433180
40c9f7:	80 7d 94 02          	cmpb   $0x2,-0x6c(%ebp)
40c9fb:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40ca01:	89 8d 50 ff ff ff    	mov    %ecx,-0xb0(%ebp)
40ca07:	8d 58 fe             	lea    -0x2(%eax),%ebx
40ca0a:	74 21                	je     0x40ca2d
40ca0c:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
40ca12:	3b 85 74 ff ff ff    	cmp    -0x8c(%ebp),%eax
40ca18:	74 13                	je     0x40ca2d
40ca1a:	6a 64                	push   $0x64
40ca1c:	6a 46                	push   $0x46
40ca1e:	53                   	push   %ebx
40ca1f:	ff 15 80 31 43 00    	call   *0x433180
40ca25:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40ca2b:	8b d8                	mov    %eax,%ebx
40ca2d:	39 9d 70 ff ff ff    	cmp    %ebx,-0x90(%ebp)
40ca33:	7e 52                	jle    0x40ca87
40ca35:	8b b5 58 ff ff ff    	mov    -0xa8(%ebp),%esi
40ca3b:	ff 37                	push   (%edi)
40ca3d:	ff 15 b4 30 43 00    	call   *0x4330b4
40ca43:	ff 4d 98             	decl   -0x68(%ebp)
40ca46:	85 ff                	test   %edi,%edi
40ca48:	74 1b                	je     0x40ca65
40ca4a:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
40ca50:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
40ca56:	50                   	push   %eax
40ca57:	57                   	push   %edi
40ca58:	6a 00                	push   $0x0
40ca5a:	8d 45 98             	lea    -0x68(%ebp),%eax
40ca5d:	8b ce                	mov    %esi,%ecx
40ca5f:	50                   	push   %eax
40ca60:	e8 e8 fc ff ff       	call   0x40c74d
40ca65:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
40ca6b:	3b 8d 50 ff ff ff    	cmp    -0xb0(%ebp),%ecx
40ca71:	74 0e                	je     0x40ca81
40ca73:	89 8d 50 ff ff ff    	mov    %ecx,-0xb0(%ebp)
40ca79:	39 9d 70 ff ff ff    	cmp    %ebx,-0x90(%ebp)
40ca7f:	7f ba                	jg     0x40ca3b
40ca81:	8b b5 4c ff ff ff    	mov    -0xb4(%ebp),%esi
40ca87:	8b 46 04             	mov    0x4(%esi),%eax
40ca8a:	8d 7e 68             	lea    0x68(%esi),%edi
40ca8d:	8b 9d 58 ff ff ff    	mov    -0xa8(%ebp),%ebx
40ca93:	2b c1                	sub    %ecx,%eax
40ca95:	40                   	inc    %eax
40ca96:	c7 46 10 02 00 00 00 	movl   $0x2,0x10(%esi)
40ca9d:	99                   	cltd
40ca9e:	2b c2                	sub    %edx,%eax
40caa0:	0f b7 15 80 26 43 00 	movzwl 0x432680,%edx
40caa7:	d1 f8                	sar    $1,%eax
40caa9:	51                   	push   %ecx
40caaa:	89 46 14             	mov    %eax,0x14(%esi)
40caad:	8b cb                	mov    %ebx,%ecx
40caaf:	0f b7 05 3c 13 41 00 	movzwl 0x41133c,%eax
40cab6:	57                   	push   %edi
40cab7:	50                   	push   %eax
40cab8:	e8 2e 81 ff ff       	call   0x404beb
40cabd:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
40cac3:	53                   	push   %ebx
40cac4:	ff 15 ac 30 43 00    	call   *0x4330ac
40caca:	0f b7 0d 3c 13 41 00 	movzwl 0x41133c,%ecx
40cad1:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40cad8:	3b c1                	cmp    %ecx,%eax
40cada:	77 16                	ja     0x40caf2
40cadc:	2b c8                	sub    %eax,%ecx
40cade:	41                   	inc    %ecx
40cadf:	8b 06                	mov    (%esi),%eax
40cae1:	2b 07                	sub    (%edi),%eax
40cae3:	99                   	cltd
40cae4:	2b c2                	sub    %edx,%eax
40cae6:	d1 f8                	sar    $1,%eax
40cae8:	89 07                	mov    %eax,(%edi)
40caea:	8d 7f 04             	lea    0x4(%edi),%edi
40caed:	83 e9 01             	sub    $0x1,%ecx
40caf0:	75 ed                	jne    0x40cadf
40caf2:	53                   	push   %ebx
40caf3:	ff 35 14 19 43 00    	push   0x431914
40caf9:	ff 15 08 33 43 00    	call   *0x433308
40caff:	83 66 20 00          	andl   $0x0,0x20(%esi)
40cb03:	e8 1b 1e 00 00       	call   0x40e923
40cb08:	6a 01                	push   $0x1
40cb0a:	6a 00                	push   $0x0
40cb0c:	ff 35 14 19 43 00    	push   0x431914
40cb12:	ff 15 fc 31 43 00    	call   *0x4331fc
40cb18:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cb1b:	5f                   	pop    %edi
40cb1c:	5e                   	pop    %esi
40cb1d:	33 cd                	xor    %ebp,%ecx
40cb1f:	5b                   	pop    %ebx
40cb20:	e8 0b 39 00 00       	call   0x410430
40cb25:	c9                   	leave
40cb26:	c2 08 00             	ret    $0x8
40cb29:	8b ff                	mov    %edi,%edi
40cb2b:	55                   	push   %ebp
40cb2c:	8b ec                	mov    %esp,%ebp
40cb2e:	83 ec 14             	sub    $0x14,%esp
40cb31:	53                   	push   %ebx
40cb32:	8b d9                	mov    %ecx,%ebx
40cb34:	56                   	push   %esi
40cb35:	57                   	push   %edi
40cb36:	6a 06                	push   $0x6
40cb38:	8b 03                	mov    (%ebx),%eax
40cb3a:	8b f2                	mov    %edx,%esi
40cb3c:	89 45 f0             	mov    %eax,-0x10(%ebp)
40cb3f:	8b 43 04             	mov    0x4(%ebx),%eax
40cb42:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40cb45:	89 45 f8             	mov    %eax,-0x8(%ebp)
40cb48:	ff 15 0c 32 43 00    	call   *0x43320c
40cb4e:	50                   	push   %eax
40cb4f:	6a 01                	push   $0x1
40cb51:	6a 00                	push   $0x0
40cb53:	ff 15 7c 30 43 00    	call   *0x43307c
40cb59:	50                   	push   %eax
40cb5a:	56                   	push   %esi
40cb5b:	ff 15 ac 30 43 00    	call   *0x4330ac
40cb61:	89 45 ec             	mov    %eax,-0x14(%ebp)
40cb64:	33 ff                	xor    %edi,%edi
40cb66:	8b 43 08             	mov    0x8(%ebx),%eax
40cb69:	40                   	inc    %eax
40cb6a:	47                   	inc    %edi
40cb6b:	6a 0b                	push   $0xb
40cb6d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cb70:	5b                   	pop    %ebx
40cb71:	6a 00                	push   $0x0
40cb73:	57                   	push   %edi
40cb74:	6a 01                	push   $0x1
40cb76:	56                   	push   %esi
40cb77:	ff 15 88 30 43 00    	call   *0x433088
40cb7d:	57                   	push   %edi
40cb7e:	ff 75 fc             	push   -0x4(%ebp)
40cb81:	56                   	push   %esi
40cb82:	ff 15 84 30 43 00    	call   *0x433084
40cb88:	03 7d f8             	add    -0x8(%ebp),%edi
40cb8b:	83 eb 01             	sub    $0x1,%ebx
40cb8e:	75 e1                	jne    0x40cb71
40cb90:	8b 45 f4             	mov    -0xc(%ebp),%eax
40cb93:	33 ff                	xor    %edi,%edi
40cb95:	8b 1d b0 10 41 00    	mov    0x4110b0,%ebx
40cb9b:	47                   	inc    %edi
40cb9c:	8b 40 0c             	mov    0xc(%eax),%eax
40cb9f:	89 45 f4             	mov    %eax,-0xc(%ebp)
40cba2:	03 df                	add    %edi,%ebx
40cba4:	74 1f                	je     0x40cbc5
40cba6:	6a 00                	push   $0x0
40cba8:	6a 01                	push   $0x1
40cbaa:	57                   	push   %edi
40cbab:	56                   	push   %esi
40cbac:	ff 15 88 30 43 00    	call   *0x433088
40cbb2:	ff 75 f4             	push   -0xc(%ebp)
40cbb5:	57                   	push   %edi
40cbb6:	56                   	push   %esi
40cbb7:	ff 15 84 30 43 00    	call   *0x433084
40cbbd:	03 7d f0             	add    -0x10(%ebp),%edi
40cbc0:	83 eb 01             	sub    $0x1,%ebx
40cbc3:	75 e1                	jne    0x40cba6
40cbc5:	ff 75 ec             	push   -0x14(%ebp)
40cbc8:	56                   	push   %esi
40cbc9:	ff 15 ac 30 43 00    	call   *0x4330ac
40cbcf:	50                   	push   %eax
40cbd0:	ff 15 b4 30 43 00    	call   *0x4330b4
40cbd6:	5f                   	pop    %edi
40cbd7:	5e                   	pop    %esi
40cbd8:	5b                   	pop    %ebx
40cbd9:	c9                   	leave
40cbda:	c3                   	ret
40cbdb:	8b ff                	mov    %edi,%edi
40cbdd:	55                   	push   %ebp
40cbde:	8b ec                	mov    %esp,%ebp
40cbe0:	83 ec 34             	sub    $0x34,%esp
40cbe3:	a1 64 10 41 00       	mov    0x411064,%eax
40cbe8:	33 c5                	xor    %ebp,%eax
40cbea:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cbed:	53                   	push   %ebx
40cbee:	56                   	push   %esi
40cbef:	8b f1                	mov    %ecx,%esi
40cbf1:	57                   	push   %edi
40cbf2:	8b fa                	mov    %edx,%edi
40cbf4:	8b 06                	mov    (%esi),%eax
40cbf6:	8b 5e 04             	mov    0x4(%esi),%ebx
40cbf9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40cbfc:	a1 48 26 43 00       	mov    0x432648,%eax
40cc01:	85 c0                	test   %eax,%eax
40cc03:	0f 84 21 01 00 00    	je     0x40cd2a
40cc09:	33 c9                	xor    %ecx,%ecx
40cc0b:	66 39 08             	cmp    %cx,(%eax)
40cc0e:	0f 84 16 01 00 00    	je     0x40cd2a
40cc14:	ff 76 5c             	push   0x5c(%esi)
40cc17:	57                   	push   %edi
40cc18:	ff 15 ac 30 43 00    	call   *0x4330ac
40cc1e:	6a 08                	push   $0x8
40cc20:	89 45 cc             	mov    %eax,-0x34(%ebp)
40cc23:	ff 15 0c 32 43 00    	call   *0x43320c
40cc29:	50                   	push   %eax
40cc2a:	57                   	push   %edi
40cc2b:	ff 15 80 30 43 00    	call   *0x433080
40cc31:	6a 05                	push   $0x5
40cc33:	ff 15 0c 32 43 00    	call   *0x43320c
40cc39:	50                   	push   %eax
40cc3a:	57                   	push   %edi
40cc3b:	ff 15 94 30 43 00    	call   *0x433094
40cc41:	6a 02                	push   $0x2
40cc43:	57                   	push   %edi
40cc44:	ff 15 6c 30 43 00    	call   *0x43306c