40b9b5:	0f 85 1a fe ff ff    	jne    0x40b7d5
40b9bb:	b9 50 00 00 00       	mov    $0x50,%ecx
40b9c0:	e8 0b 23 00 00       	call   0x40dcd0
40b9c5:	8b f0                	mov    %eax,%esi
40b9c7:	85 f6                	test   %esi,%esi
40b9c9:	0f 84 34 15 01 00    	je     0x41cf03
40b9cf:	b9 60 22 40 00       	mov    $0x402260,%ecx
40b9d4:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
40b9da:	e8 d1 f2 ff ff       	call   0x40acb0
40b9df:	89 46 38             	mov    %eax,0x38(%esi)
40b9e2:	85 c0                	test   %eax,%eax
40b9e4:	0f 84 19 15 01 00    	je     0x41cf03
40b9ea:	8b 4c 24 18          	mov    0x18(%esp),%ecx
40b9ee:	8b 49 38             	mov    0x38(%ecx),%ecx
40b9f1:	e8 ba f2 ff ff       	call   0x40acb0
40b9f6:	89 46 3c             	mov    %eax,0x3c(%esi)
40b9f9:	85 c0                	test   %eax,%eax
40b9fb:	0f 84 02 15 01 00    	je     0x41cf03
40ba01:	b9 20 00 00 00       	mov    $0x20,%ecx
40ba06:	ba 01 00 00 00       	mov    $0x1,%edx
40ba0b:	66 89 08             	mov    %cx,(%eax)
40ba0e:	c7 46 40 00 00 00 00 	movl   $0x0,0x40(%esi)
40ba15:	89 54 24 1c          	mov    %edx,0x1c(%esp)
40ba19:	e9 49 fe ff ff       	jmp    0x40b867
40ba1e:	85 f6                	test   %esi,%esi
40ba20:	0f 84 49 fe ff ff    	je     0x40b86f
40ba26:	33 c0                	xor    %eax,%eax
40ba28:	89 44 24 14          	mov    %eax,0x14(%esp)
40ba2c:	e9 3e fe ff ff       	jmp    0x40b86f
40ba31:	33 c0                	xor    %eax,%eax
40ba33:	89 44 24 1c          	mov    %eax,0x1c(%esp)
40ba37:	8b c1                	mov    %ecx,%eax
40ba39:	e9 5b fe ff ff       	jmp    0x40b899
40ba3e:	8b 76 38             	mov    0x38(%esi),%esi
40ba41:	e9 5c fe ff ff       	jmp    0x40b8a2
40ba46:	8b 4e 38             	mov    0x38(%esi),%ecx
40ba49:	ba 2a 00 00 00       	mov    $0x2a,%edx
40ba4e:	e8 dc eb ff ff       	call   0x40a62f
40ba53:	85 c0                	test   %eax,%eax
40ba55:	0f 85 c6 fe ff ff    	jne    0x40b921
40ba5b:	8b 4e 38             	mov    0x38(%esi),%ecx
40ba5e:	8d 50 3f             	lea    0x3f(%eax),%edx
40ba61:	e8 c9 eb ff ff       	call   0x40a62f
40ba66:	85 c0                	test   %eax,%eax
40ba68:	0f 85 b3 fe ff ff    	jne    0x40b921
40ba6e:	8b 94 24 28 02 00 00 	mov    0x228(%esp),%edx
40ba75:	85 d2                	test   %edx,%edx
40ba77:	74 2c                	je     0x40baa5
40ba79:	ff b4 24 30 02 00 00 	push   0x230(%esp)
40ba80:	8b ce                	mov    %esi,%ecx
40ba82:	e8 89 39 00 00       	call   0x40f410
40ba87:	83 f8 02             	cmp    $0x2,%eax
40ba8a:	0f 85 91 fe ff ff    	jne    0x40b921
40ba90:	e9 fb 13 01 00       	jmp    0x41ce90
40ba95:	8b c1                	mov    %ecx,%eax
40ba97:	83 f9 3b             	cmp    $0x3b,%ecx
40ba9a:	0f 84 f9 fd ff ff    	je     0x40b899
40baa0:	e9 a5 13 01 00       	jmp    0x41ce4a
40baa5:	8d 54 24 20          	lea    0x20(%esp),%edx
40baa9:	eb ce                	jmp    0x40ba79
40baab:	cc                   	int3
40baac:	cc                   	int3
40baad:	cc                   	int3
40baae:	cc                   	int3
40baaf:	cc                   	int3
40bab0:	8b ff                	mov    %edi,%edi
40bab2:	55                   	push   %ebp
40bab3:	8b ec                	mov    %esp,%ebp
40bab5:	83 e4 f8             	and    $0xfffffff8,%esp
40bab8:	66 83 3d f0 4a 44 00 	cmpw   $0x3a,0x444af0
40babf:	3a
40bac0:	74 57                	je     0x40bb19
40bac2:	a1 f8 66 43 00       	mov    0x4366f8,%eax
40bac7:	80 b8 f7 65 43 00 33 	cmpb   $0x33,0x4365f7(%eax)
40bace:	74 2c                	je     0x40bafc
40bad0:	81 3d 00 67 43 00 00 	cmpl   $0x4000,0x436700
40bad7:	40 00 00
40bada:	75 17                	jne    0x40baf3
40badc:	68 38 23 40 00       	push   $0x402338
40bae1:	68 f0 4a 44 00       	push   $0x444af0
40bae6:	ff 15 40 a4 44 00    	call   *0x44a440
40baec:	83 c4 08             	add    $0x8,%esp
40baef:	85 c0                	test   %eax,%eax
40baf1:	74 75                	je     0x40bb68
40baf3:	83 3d 00 67 43 00 0a 	cmpl   $0xa,0x436700
40bafa:	74 5a                	je     0x40bb56
40bafc:	68 30 e2 40 00       	push   $0x40e230
40bb01:	68 b0 ba 40 00       	push   $0x40bab0
40bb06:	ba 2f 00 00 00       	mov    $0x2f,%edx
40bb0b:	b9 b0 22 40 00       	mov    $0x4022b0,%ecx
40bb10:	e8 bb 11 00 00       	call   0x40ccd0
40bb15:	8b e5                	mov    %ebp,%esp
40bb17:	5d                   	pop    %ebp
40bb18:	c3                   	ret
40bb19:	81 3d 00 67 43 00 00 	cmpl   $0x4000,0x436700
40bb20:	40 00 00
40bb23:	75 9d                	jne    0x40bac2
40bb25:	83 3d 70 e5 42 00 00 	cmpl   $0x0,0x42e570
40bb2c:	75 94                	jne    0x40bac2
40bb2e:	8b ff                	mov    %edi,%edi
40bb30:	33 c9                	xor    %ecx,%ecx
40bb32:	e8 39 11 00 00       	call   0x40cc70
40bb37:	66 a1 f0 4a 44 00    	mov    0x444af0,%ax
40bb3d:	66 85 c0             	test   %ax,%ax
40bb40:	74 06                	je     0x40bb48
40bb42:	66 83 f8 0a          	cmp    $0xa,%ax
40bb46:	75 e8                	jne    0x40bb30
40bb48:	a1 f8 66 43 00       	mov    0x4366f8,%eax
40bb4d:	80 b8 f7 65 43 00 33 	cmpb   $0x33,0x4365f7(%eax)
40bb54:	74 06                	je     0x40bb5c
40bb56:	33 c0                	xor    %eax,%eax
40bb58:	8b e5                	mov    %ebp,%esp
40bb5a:	5d                   	pop    %ebp
40bb5b:	c3                   	ret
40bb5c:	33 c9                	xor    %ecx,%ecx
40bb5e:	e8 0d 11 00 00       	call   0x40cc70
40bb63:	e9 5a ff ff ff       	jmp    0x40bac2
40bb68:	33 c9                	xor    %ecx,%ecx
40bb6a:	e8 01 11 00 00       	call   0x40cc70
40bb6f:	66 a1 f0 4a 44 00    	mov    0x444af0,%ax
40bb75:	66 85 c0             	test   %ax,%ax
40bb78:	0f 84 75 ff ff ff    	je     0x40baf3
40bb7e:	66 83 f8 0a          	cmp    $0xa,%ax
40bb82:	0f 84 6b ff ff ff    	je     0x40baf3
40bb88:	eb de                	jmp    0x40bb68
40bb8a:	cc                   	int3
40bb8b:	cc                   	int3
40bb8c:	cc                   	int3
40bb8d:	cc                   	int3
40bb8e:	cc                   	int3
40bb8f:	cc                   	int3
40bb90:	8b ff                	mov    %edi,%edi
40bb92:	53                   	push   %ebx
40bb93:	56                   	push   %esi
40bb94:	8b f1                	mov    %ecx,%esi
40bb96:	b9 50 00 00 00       	mov    $0x50,%ecx
40bb9b:	57                   	push   %edi
40bb9c:	e8 2f 21 00 00       	call   0x40dcd0
40bba1:	8b d8                	mov    %eax,%ebx
40bba3:	85 db                	test   %ebx,%ebx
40bba5:	0f 84 fc e0 00 00    	je     0x419ca7
40bbab:	8b 0d fc 66 43 00    	mov    0x4366fc,%ecx
40bbb1:	03 c9                	add    %ecx,%ecx
40bbb3:	89 33                	mov    %esi,(%ebx)
40bbb5:	c7 43 40 00 00 00 00 	movl   $0x0,0x40(%ebx)
40bbbc:	e8 0f 21 00 00       	call   0x40dcd0
40bbc1:	85 c0                	test   %eax,%eax
40bbc3:	0f 84 de e0 00 00    	je     0x419ca7
40bbc9:	8b 15 fc 66 43 00    	mov    0x4366fc,%edx
40bbcf:	89 43 38             	mov    %eax,0x38(%ebx)
40bbd2:	85 d2                	test   %edx,%edx
40bbd4:	74 43                	je     0x40bc19
40bbd6:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40bbdc:	77 41                	ja     0x40bc1f
40bbde:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
40bbe3:	bf f0 4a 44 00       	mov    $0x444af0,%edi
40bbe8:	2b f2                	sub    %edx,%esi
40bbea:	2b f8                	sub    %eax,%edi
40bbec:	8d 64 24 00          	lea    0x0(%esp),%esp
40bbf0:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
40bbf3:	85 c9                	test   %ecx,%ecx
40bbf5:	74 19                	je     0x40bc10
40bbf7:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40bbfb:	66 85 c9             	test   %cx,%cx
40bbfe:	74 10                	je     0x40bc10
40bc00:	66 89 08             	mov    %cx,(%eax)
40bc03:	83 c0 02             	add    $0x2,%eax
40bc06:	83 ea 01             	sub    $0x1,%edx
40bc09:	75 e5                	jne    0x40bbf0
40bc0b:	83 e8 02             	sub    $0x2,%eax
40bc0e:	eb 04                	jmp    0x40bc14
40bc10:	85 d2                	test   %edx,%edx
40bc12:	74 f7                	je     0x40bc0b
40bc14:	33 c9                	xor    %ecx,%ecx
40bc16:	66 89 08             	mov    %cx,(%eax)
40bc19:	5f                   	pop    %edi
40bc1a:	5e                   	pop    %esi
40bc1b:	8b c3                	mov    %ebx,%eax
40bc1d:	5b                   	pop    %ebx
40bc1e:	c3                   	ret
40bc1f:	85 d2                	test   %edx,%edx
40bc21:	74 f6                	je     0x40bc19
40bc23:	eb ef                	jmp    0x40bc14
40bc25:	cc                   	int3
40bc26:	cc                   	int3
40bc27:	cc                   	int3
40bc28:	cc                   	int3
40bc29:	cc                   	int3
40bc2a:	cc                   	int3
40bc2b:	cc                   	int3
40bc2c:	cc                   	int3
40bc2d:	cc                   	int3
40bc2e:	cc                   	int3
40bc2f:	cc                   	int3
40bc30:	8b ff                	mov    %edi,%edi
40bc32:	55                   	push   %ebp
40bc33:	8b ec                	mov    %esp,%ebp
40bc35:	81 ec e8 00 00 00    	sub    $0xe8,%esp
40bc3b:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40bc40:	33 c5                	xor    %ebp,%eax
40bc42:	89 45 f8             	mov    %eax,-0x8(%ebp)
40bc45:	53                   	push   %ebx
40bc46:	56                   	push   %esi
40bc47:	8b f1                	mov    %ecx,%esi
40bc49:	8b da                	mov    %edx,%ebx
40bc4b:	57                   	push   %edi
40bc4c:	85 f6                	test   %esi,%esi
40bc4e:	0f 84 ee 02 00 00    	je     0x40bf42
40bc54:	8d 51 02             	lea    0x2(%ecx),%edx
40bc57:	66 8b 01             	mov    (%ecx),%ax
40bc5a:	83 c1 02             	add    $0x2,%ecx
40bc5d:	66 85 c0             	test   %ax,%ax
40bc60:	75 f5                	jne    0x40bc57
40bc62:	2b ca                	sub    %edx,%ecx
40bc64:	d1 f9                	sar    $1,%ecx
40bc66:	8d 0c 8d 04 00 00 00 	lea    0x4(,%ecx,4),%ecx
40bc6d:	e8 5e 20 00 00       	call   0x40dcd0
40bc72:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
40bc78:	85 c0                	test   %eax,%eax
40bc7a:	0f 84 0f 13 01 00    	je     0x41cf8f
40bc80:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
40bc86:	bf d0 22 40 00       	mov    $0x4022d0,%edi
40bc8b:	33 c0                	xor    %eax,%eax
40bc8d:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
40bc93:	0f b7 0f             	movzwl (%edi),%ecx
40bc96:	89 8d 24 ff ff ff    	mov    %ecx,-0xdc(%ebp)
40bc9c:	66 85 c9             	test   %cx,%cx
40bc9f:	74 36                	je     0x40bcd7
40bca1:	85 db                	test   %ebx,%ebx
40bca3:	74 1b                	je     0x40bcc0
40bca5:	51                   	push   %ecx
40bca6:	53                   	push   %ebx
40bca7:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40bcad:	83 c4 08             	add    $0x8,%esp
40bcb0:	85 c0                	test   %eax,%eax
40bcb2:	8b 85 28 ff ff ff    	mov    -0xd8(%ebp),%eax
40bcb8:	75 15                	jne    0x40bccf
40bcba:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
40bcc0:	66 89 8c 45 2c ff ff 	mov    %cx,-0xd4(%ebp,%eax,2)
40bcc7:	ff
40bcc8:	40                   	inc    %eax
40bcc9:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
40bccf:	83 c7 02             	add    $0x2,%edi
40bcd2:	83 f8 63             	cmp    $0x63,%eax
40bcd5:	72 bc                	jb     0x40bc93
40bcd7:	8b bd 20 ff ff ff    	mov    -0xe0(%ebp),%edi
40bcdd:	03 c0                	add    %eax,%eax
40bcdf:	3d c8 00 00 00       	cmp    $0xc8,%eax
40bce4:	0f 83 73 02 00 00    	jae    0x40bf5d
40bcea:	33 c9                	xor    %ecx,%ecx
40bcec:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
40bcf3:	00 00 00
40bcf6:	66 89 8c 05 2c ff ff 	mov    %cx,-0xd4(%ebp,%eax,1)
40bcfd:	ff
40bcfe:	0f b7 06             	movzwl (%esi),%eax
40bd01:	c7 85 28 ff ff ff 01 	movl   $0x1,-0xd8(%ebp)
40bd08:	00 00 00
40bd0b:	66 85 c0             	test   %ax,%ax
40bd0e:	0f 84 89 00 00 00    	je     0x40bd9d
40bd14:	8b c8                	mov    %eax,%ecx
40bd16:	66 83 f9 22          	cmp    $0x22,%cx
40bd1a:	74 2e                	je     0x40bd4a
40bd1c:	51                   	push   %ecx
40bd1d:	ff 15 ac a3 44 00    	call   *0x44a3ac
40bd23:	83 c4 04             	add    $0x4,%esp
40bd26:	85 c0                	test   %eax,%eax
40bd28:	0f 85 a0 00 00 00    	jne    0x40bdce
40bd2e:	0f b7 06             	movzwl (%esi),%eax
40bd31:	50                   	push   %eax
40bd32:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
40bd38:	50                   	push   %eax
40bd39:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40bd3f:	83 c4 08             	add    $0x8,%esp
40bd42:	85 c0                	test   %eax,%eax
40bd44:	0f 85 84 00 00 00    	jne    0x40bdce
40bd4a:	c7 85 24 ff ff ff 00 	movl   $0x0,-0xdc(%ebp)
40bd51:	00 00 00
40bd54:	85 db                	test   %ebx,%ebx
40bd56:	74 16                	je     0x40bd6e
40bd58:	0f b7 06             	movzwl (%esi),%eax
40bd5b:	50                   	push   %eax
40bd5c:	53                   	push   %ebx
40bd5d:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40bd63:	83 c4 08             	add    $0x8,%esp
40bd66:	85 c0                	test   %eax,%eax
40bd68:	0f 85 4f 01 00 00    	jne    0x40bebd
40bd6e:	66 8b 06             	mov    (%esi),%ax
40bd71:	66 89 07             	mov    %ax,(%edi)
40bd74:	83 c7 02             	add    $0x2,%edi
40bd77:	66 83 3e 22          	cmpw   $0x22,(%esi)
40bd7b:	0f 84 5f 01 00 00    	je     0x40bee0
40bd81:	c7 85 28 ff ff ff 00 	movl   $0x0,-0xd8(%ebp)
40bd88:	00 00 00
40bd8b:	0f b7 46 02          	movzwl 0x2(%esi),%eax
40bd8f:	83 c6 02             	add    $0x2,%esi
40bd92:	8b c8                	mov    %eax,%ecx
40bd94:	66 85 c0             	test   %ax,%ax
40bd97:	0f 85 79 ff ff ff    	jne    0x40bd16
40bd9d:	8b 8d 18 ff ff ff    	mov    -0xe8(%ebp),%ecx
40bda3:	2b f9                	sub    %ecx,%edi
40bda5:	d1 ff                	sar    $1,%edi
40bda7:	8d 14 7d 04 00 00 00 	lea    0x4(,%edi,2),%edx
40bdae:	e8 6d 1f 00 00       	call   0x40dd20
40bdb3:	85 c0                	test   %eax,%eax
40bdb5:	0f 84 d4 11 01 00    	je     0x41cf8f
40bdbb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40bdbe:	5f                   	pop    %edi
40bdbf:	5e                   	pop    %esi
40bdc0:	33 cd                	xor    %ebp,%ecx
40bdc2:	5b                   	pop    %ebx
40bdc3:	e8 68 ad 00 00       	call   0x416b30
40bdc8:	8b e5                	mov    %ebp,%esp
40bdca:	5d                   	pop    %ebp
40bdcb:	c2 04 00             	ret    $0x4
40bdce:	8b 45 08             	mov    0x8(%ebp),%eax
40bdd1:	a8 01                	test   $0x1,%al
40bdd3:	0f 85 57 01 00 00    	jne    0x40bf30
40bdd9:	83 e0 02             	and    $0x2,%eax
40bddc:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
40bde2:	74 1a                	je     0x40bdfe
40bde4:	85 db                	test   %ebx,%ebx
40bde6:	74 16                	je     0x40bdfe
40bde8:	0f b7 06             	movzwl (%esi),%eax
40bdeb:	50                   	push   %eax
40bdec:	53                   	push   %ebx
40bded:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40bdf3:	83 c4 08             	add    $0x8,%esp
40bdf6:	85 c0                	test   %eax,%eax
40bdf8:	0f 85 4c ff ff ff    	jne    0x40bd4a
40bdfe:	8b 45 08             	mov    0x8(%ebp),%eax
40be01:	83 e0 04             	and    $0x4,%eax
40be04:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
40be0a:	0f 85 46 11 01 00    	jne    0x41cf56
40be10:	0f b7 06             	movzwl (%esi),%eax
40be13:	66 85 c0             	test   %ax,%ax
40be16:	74 85                	je     0x40bd9d
40be18:	8b c8                	mov    %eax,%ecx
40be1a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40be20:	66 83 f9 22          	cmp    $0x22,%cx
40be24:	74 26                	je     0x40be4c
40be26:	51                   	push   %ecx
40be27:	ff 15 ac a3 44 00    	call   *0x44a3ac
40be2d:	83 c4 04             	add    $0x4,%esp
40be30:	85 c0                	test   %eax,%eax
40be32:	75 46                	jne    0x40be7a
40be34:	0f b7 06             	movzwl (%esi),%eax
40be37:	50                   	push   %eax
40be38:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
40be3e:	50                   	push   %eax
40be3f:	ff 15 b0 a3 44 00    	call   *0x44a3b0