437970:	2b c7                	sub    %edi,%eax
437972:	33 c9                	xor    %ecx,%ecx
437974:	8b d0                	mov    %eax,%edx
437976:	89 4d f0             	mov    %ecx,-0x10(%ebp)
437979:	c1 fa 02             	sar    $0x2,%edx
43797c:	83 c0 03             	add    $0x3,%eax
43797f:	42                   	inc    %edx
437980:	c1 e8 02             	shr    $0x2,%eax
437983:	3b df                	cmp    %edi,%ebx
437985:	89 55 e8             	mov    %edx,-0x18(%ebp)
437988:	1b f6                	sbb    %esi,%esi
43798a:	f7 d6                	not    %esi
43798c:	23 f0                	and    %eax,%esi
43798e:	74 38                	je     0x4379c8
437990:	8b 5d ec             	mov    -0x14(%ebp),%ebx
437993:	8b d7                	mov    %edi,%edx
437995:	8b 0a                	mov    (%edx),%ecx
437997:	8d 41 02             	lea    0x2(%ecx),%eax
43799a:	89 45 ec             	mov    %eax,-0x14(%ebp)
43799d:	66 8b 01             	mov    (%ecx),%ax
4379a0:	83 c1 02             	add    $0x2,%ecx
4379a3:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
4379a7:	75 f4                	jne    0x43799d
4379a9:	2b 4d ec             	sub    -0x14(%ebp),%ecx
4379ac:	43                   	inc    %ebx
4379ad:	8b 45 f0             	mov    -0x10(%ebp),%eax
4379b0:	83 c2 04             	add    $0x4,%edx
4379b3:	d1 f9                	sar    $1,%ecx
4379b5:	03 d9                	add    %ecx,%ebx
4379b7:	40                   	inc    %eax
4379b8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4379bb:	3b c6                	cmp    %esi,%eax
4379bd:	75 d6                	jne    0x437995
4379bf:	8b 55 e8             	mov    -0x18(%ebp),%edx
4379c2:	89 5d ec             	mov    %ebx,-0x14(%ebp)
4379c5:	8b 5d dc             	mov    -0x24(%ebp),%ebx
4379c8:	6a 02                	push   $0x2
4379ca:	ff 75 ec             	push   -0x14(%ebp)
4379cd:	52                   	push   %edx
4379ce:	e8 7e c9 ff ff       	call   0x434351
4379d3:	8b f0                	mov    %eax,%esi
4379d5:	83 c4 0c             	add    $0xc,%esp
4379d8:	85 f6                	test   %esi,%esi
4379da:	75 05                	jne    0x4379e1
4379dc:	83 cf ff             	or     $0xffffffff,%edi
4379df:	eb 77                	jmp    0x437a58
4379e1:	8b 45 e8             	mov    -0x18(%ebp),%eax
4379e4:	8d 04 86             	lea    (%esi,%eax,4),%eax
4379e7:	89 45 d0             	mov    %eax,-0x30(%ebp)
4379ea:	8b d0                	mov    %eax,%edx
4379ec:	89 55 e8             	mov    %edx,-0x18(%ebp)
4379ef:	3b fb                	cmp    %ebx,%edi
4379f1:	74 5c                	je     0x437a4f
4379f3:	8b c6                	mov    %esi,%eax
4379f5:	2b c7                	sub    %edi,%eax
4379f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4379fa:	8b 0f                	mov    (%edi),%ecx
4379fc:	8d 41 02             	lea    0x2(%ecx),%eax
4379ff:	89 45 f0             	mov    %eax,-0x10(%ebp)
437a02:	66 8b 01             	mov    (%ecx),%ax
437a05:	83 c1 02             	add    $0x2,%ecx
437a08:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
437a0c:	75 f4                	jne    0x437a02
437a0e:	2b 4d f0             	sub    -0x10(%ebp),%ecx
437a11:	d1 f9                	sar    $1,%ecx
437a13:	8d 41 01             	lea    0x1(%ecx),%eax
437a16:	8b ca                	mov    %edx,%ecx
437a18:	2b 4d d0             	sub    -0x30(%ebp),%ecx
437a1b:	50                   	push   %eax
437a1c:	ff 37                	push   (%edi)
437a1e:	89 45 f0             	mov    %eax,-0x10(%ebp)
437a21:	8b 45 ec             	mov    -0x14(%ebp),%eax
437a24:	d1 f9                	sar    $1,%ecx
437a26:	2b c1                	sub    %ecx,%eax
437a28:	50                   	push   %eax
437a29:	52                   	push   %edx
437a2a:	e8 68 fe ff ff       	call   0x437897
437a2f:	83 c4 10             	add    $0x10,%esp
437a32:	85 c0                	test   %eax,%eax
437a34:	75 44                	jne    0x437a7a
437a36:	8b 45 f4             	mov    -0xc(%ebp),%eax
437a39:	8b 55 e8             	mov    -0x18(%ebp),%edx
437a3c:	89 14 38             	mov    %edx,(%eax,%edi,1)
437a3f:	83 c7 04             	add    $0x4,%edi
437a42:	8b 45 f0             	mov    -0x10(%ebp),%eax
437a45:	8d 14 42             	lea    (%edx,%eax,2),%edx
437a48:	89 55 e8             	mov    %edx,-0x18(%ebp)
437a4b:	3b fb                	cmp    %ebx,%edi
437a4d:	75 ab                	jne    0x4379fa
437a4f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
437a52:	89 30                	mov    %esi,(%eax)
437a54:	33 c0                	xor    %eax,%eax
437a56:	8b f8                	mov    %eax,%edi
437a58:	50                   	push   %eax
437a59:	e8 bc d6 ff ff       	call   0x43511a
437a5e:	59                   	pop    %ecx
437a5f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
437a62:	e8 74 02 00 00       	call   0x437cdb
437a67:	8b c7                	mov    %edi,%eax
437a69:	5f                   	pop    %edi
437a6a:	5b                   	pop    %ebx
437a6b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
437a6e:	33 cd                	xor    %ebp,%ecx
437a70:	5e                   	pop    %esi
437a71:	e8 c0 63 ff ff       	call   0x42de36
437a76:	8b e5                	mov    %ebp,%esp
437a78:	5d                   	pop    %ebp
437a79:	c3                   	ret
437a7a:	33 c0                	xor    %eax,%eax
437a7c:	50                   	push   %eax
437a7d:	50                   	push   %eax
437a7e:	50                   	push   %eax
437a7f:	50                   	push   %eax
437a80:	50                   	push   %eax
437a81:	e8 04 c3 ff ff       	call   0x433d8a
437a86:	cc                   	int3
437a87:	8b ff                	mov    %edi,%edi
437a89:	55                   	push   %ebp
437a8a:	8b ec                	mov    %esp,%ebp
437a8c:	51                   	push   %ecx
437a8d:	8b 4d 08             	mov    0x8(%ebp),%ecx
437a90:	53                   	push   %ebx
437a91:	57                   	push   %edi
437a92:	33 db                	xor    %ebx,%ebx
437a94:	8d 51 02             	lea    0x2(%ecx),%edx
437a97:	66 8b 01             	mov    (%ecx),%ax
437a9a:	83 c1 02             	add    $0x2,%ecx
437a9d:	66 3b c3             	cmp    %bx,%ax
437aa0:	75 f5                	jne    0x437a97
437aa2:	8b 7d 10             	mov    0x10(%ebp),%edi
437aa5:	2b ca                	sub    %edx,%ecx
437aa7:	d1 f9                	sar    $1,%ecx
437aa9:	83 c8 ff             	or     $0xffffffff,%eax
437aac:	41                   	inc    %ecx
437aad:	2b c7                	sub    %edi,%eax
437aaf:	89 4d fc             	mov    %ecx,-0x4(%ebp)
437ab2:	3b c8                	cmp    %eax,%ecx
437ab4:	76 05                	jbe    0x437abb
437ab6:	6a 0c                	push   $0xc
437ab8:	58                   	pop    %eax
437ab9:	eb 57                	jmp    0x437b12
437abb:	56                   	push   %esi
437abc:	8d 5f 01             	lea    0x1(%edi),%ebx
437abf:	03 d9                	add    %ecx,%ebx
437ac1:	6a 02                	push   $0x2
437ac3:	53                   	push   %ebx
437ac4:	e8 76 d7 ff ff       	call   0x43523f
437ac9:	8b f0                	mov    %eax,%esi
437acb:	59                   	pop    %ecx
437acc:	59                   	pop    %ecx
437acd:	85 ff                	test   %edi,%edi
437acf:	74 12                	je     0x437ae3
437ad1:	57                   	push   %edi
437ad2:	ff 75 0c             	push   0xc(%ebp)
437ad5:	53                   	push   %ebx
437ad6:	56                   	push   %esi
437ad7:	e8 bb fd ff ff       	call   0x437897
437adc:	83 c4 10             	add    $0x10,%esp
437adf:	85 c0                	test   %eax,%eax
437ae1:	75 35                	jne    0x437b18
437ae3:	ff 75 fc             	push   -0x4(%ebp)
437ae6:	2b df                	sub    %edi,%ebx
437ae8:	8d 04 7e             	lea    (%esi,%edi,2),%eax
437aeb:	ff 75 08             	push   0x8(%ebp)
437aee:	53                   	push   %ebx
437aef:	50                   	push   %eax
437af0:	e8 a2 fd ff ff       	call   0x437897
437af5:	83 c4 10             	add    $0x10,%esp
437af8:	85 c0                	test   %eax,%eax
437afa:	75 1c                	jne    0x437b18
437afc:	8b 4d 14             	mov    0x14(%ebp),%ecx
437aff:	56                   	push   %esi
437b00:	e8 fb 01 00 00       	call   0x437d00
437b05:	6a 00                	push   $0x0
437b07:	8b f0                	mov    %eax,%esi
437b09:	e8 0c d6 ff ff       	call   0x43511a
437b0e:	59                   	pop    %ecx
437b0f:	8b c6                	mov    %esi,%eax
437b11:	5e                   	pop    %esi
437b12:	5f                   	pop    %edi
437b13:	5b                   	pop    %ebx
437b14:	8b e5                	mov    %ebp,%esp
437b16:	5d                   	pop    %ebp
437b17:	c3                   	ret
437b18:	33 c0                	xor    %eax,%eax
437b1a:	50                   	push   %eax
437b1b:	50                   	push   %eax
437b1c:	50                   	push   %eax
437b1d:	50                   	push   %eax
437b1e:	50                   	push   %eax
437b1f:	e8 66 c2 ff ff       	call   0x433d8a
437b24:	cc                   	int3
437b25:	8b ff                	mov    %edi,%edi
437b27:	55                   	push   %ebp
437b28:	8b ec                	mov    %esp,%ebp
437b2a:	81 ec 60 02 00 00    	sub    $0x260,%esp
437b30:	a1 08 a0 46 00       	mov    0x46a008,%eax
437b35:	33 c5                	xor    %ebp,%eax
437b37:	89 45 fc             	mov    %eax,-0x4(%ebp)
437b3a:	8b 55 10             	mov    0x10(%ebp),%edx
437b3d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
437b40:	53                   	push   %ebx
437b41:	8b 5d 08             	mov    0x8(%ebp),%ebx
437b44:	56                   	push   %esi
437b45:	57                   	push   %edi
437b46:	6a 5c                	push   $0x5c
437b48:	5e                   	pop    %esi
437b49:	6a 3a                	push   $0x3a
437b4b:	89 95 a8 fd ff ff    	mov    %edx,-0x258(%ebp)
437b51:	c7 85 a4 fd ff ff 2f 	movl   $0x2f,-0x25c(%ebp)
437b58:	00 00 00
437b5b:	5f                   	pop    %edi
437b5c:	eb 19                	jmp    0x437b77
437b5e:	0f b7 01             	movzwl (%ecx),%eax
437b61:	66 3b 85 a4 fd ff ff 	cmp    -0x25c(%ebp),%ax
437b68:	74 11                	je     0x437b7b
437b6a:	66 3b c6             	cmp    %si,%ax
437b6d:	74 0c                	je     0x437b7b
437b6f:	66 3b c7             	cmp    %di,%ax
437b72:	74 07                	je     0x437b7b
437b74:	83 e9 02             	sub    $0x2,%ecx
437b77:	3b cb                	cmp    %ebx,%ecx
437b79:	75 e3                	jne    0x437b5e
437b7b:	0f b7 31             	movzwl (%ecx),%esi
437b7e:	66 3b f7             	cmp    %di,%si
437b81:	75 1a                	jne    0x437b9d
437b83:	8d 43 02             	lea    0x2(%ebx),%eax
437b86:	3b c8                	cmp    %eax,%ecx
437b88:	74 13                	je     0x437b9d
437b8a:	52                   	push   %edx
437b8b:	33 ff                	xor    %edi,%edi
437b8d:	57                   	push   %edi
437b8e:	57                   	push   %edi
437b8f:	53                   	push   %ebx
437b90:	e8 f2 fe ff ff       	call   0x437a87
437b95:	83 c4 10             	add    $0x10,%esp
437b98:	e9 87 00 00 00       	jmp    0x437c24
437b9d:	6a 2f                	push   $0x2f
437b9f:	8b c6                	mov    %esi,%eax
437ba1:	33 ff                	xor    %edi,%edi
437ba3:	5a                   	pop    %edx
437ba4:	66 3b c2             	cmp    %dx,%ax
437ba7:	74 14                	je     0x437bbd
437ba9:	6a 5c                	push   $0x5c
437bab:	5a                   	pop    %edx
437bac:	66 3b c2             	cmp    %dx,%ax
437baf:	74 0c                	je     0x437bbd
437bb1:	6a 3a                	push   $0x3a
437bb3:	5a                   	pop    %edx
437bb4:	66 3b c2             	cmp    %dx,%ax
437bb7:	74 04                	je     0x437bbd
437bb9:	8b c7                	mov    %edi,%eax
437bbb:	eb 03                	jmp    0x437bc0
437bbd:	33 c0                	xor    %eax,%eax
437bbf:	40                   	inc    %eax
437bc0:	2b cb                	sub    %ebx,%ecx
437bc2:	0f b6 c0             	movzbl %al,%eax
437bc5:	d1 f9                	sar    $1,%ecx
437bc7:	41                   	inc    %ecx
437bc8:	f7 d8                	neg    %eax
437bca:	68 50 02 00 00       	push   $0x250
437bcf:	1b c0                	sbb    %eax,%eax
437bd1:	23 c1                	and    %ecx,%eax
437bd3:	89 85 a4 fd ff ff    	mov    %eax,-0x25c(%ebp)
437bd9:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
437bdf:	57                   	push   %edi
437be0:	50                   	push   %eax
437be1:	e8 8a 7a ff ff       	call   0x42f670
437be6:	83 c4 0c             	add    $0xc,%esp
437be9:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
437bef:	57                   	push   %edi
437bf0:	57                   	push   %edi
437bf1:	57                   	push   %edi
437bf2:	50                   	push   %eax
437bf3:	57                   	push   %edi
437bf4:	53                   	push   %ebx
437bf5:	ff 15 cc b2 44 00    	call   *0x44b2cc
437bfb:	8b f0                	mov    %eax,%esi
437bfd:	83 fe ff             	cmp    $0xffffffff,%esi
437c00:	75 33                	jne    0x437c35
437c02:	8b 85 a8 fd ff ff    	mov    -0x258(%ebp),%eax
437c08:	50                   	push   %eax
437c09:	57                   	push   %edi
437c0a:	57                   	push   %edi
437c0b:	53                   	push   %ebx
437c0c:	e8 76 fe ff ff       	call   0x437a87
437c11:	83 c4 10             	add    $0x10,%esp
437c14:	8b f8                	mov    %eax,%edi
437c16:	83 fe ff             	cmp    $0xffffffff,%esi
437c19:	74 07                	je     0x437c22
437c1b:	56                   	push   %esi
437c1c:	ff 15 58 b1 44 00    	call   *0x44b158
437c22:	8b c7                	mov    %edi,%eax
437c24:	8b 4d fc             	mov    -0x4(%ebp),%ecx
437c27:	5f                   	pop    %edi
437c28:	5e                   	pop    %esi
437c29:	33 cd                	xor    %ebp,%ecx
437c2b:	5b                   	pop    %ebx
437c2c:	e8 05 62 ff ff       	call   0x42de36
437c31:	8b e5                	mov    %ebp,%esp
437c33:	5d                   	pop    %ebp
437c34:	c3                   	ret
437c35:	8b 8d a8 fd ff ff    	mov    -0x258(%ebp),%ecx
437c3b:	6a 2e                	push   $0x2e
437c3d:	8b 41 04             	mov    0x4(%ecx),%eax
437c40:	2b 01                	sub    (%ecx),%eax
437c42:	c1 f8 02             	sar    $0x2,%eax
437c45:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
437c4b:	58                   	pop    %eax
437c4c:	66 39 85 d8 fd ff ff 	cmp    %ax,-0x228(%ebp)
437c53:	75 1b                	jne    0x437c70
437c55:	66 39 bd da fd ff ff 	cmp    %di,-0x226(%ebp)
437c5c:	74 2d                	je     0x437c8b
437c5e:	66 39 85 da fd ff ff 	cmp    %ax,-0x226(%ebp)
437c65:	75 09                	jne    0x437c70
437c67:	66 39 bd dc fd ff ff 	cmp    %di,-0x224(%ebp)
437c6e:	74 1b                	je     0x437c8b
437c70:	51                   	push   %ecx
437c71:	ff b5 a4 fd ff ff    	push   -0x25c(%ebp)
437c77:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
437c7d:	53                   	push   %ebx
437c7e:	50                   	push   %eax
437c7f:	e8 03 fe ff ff       	call   0x437a87
437c84:	83 c4 10             	add    $0x10,%esp
437c87:	85 c0                	test   %eax,%eax
437c89:	75 89                	jne    0x437c14
437c8b:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
437c91:	50                   	push   %eax
437c92:	56                   	push   %esi
437c93:	ff 15 78 b1 44 00    	call   *0x44b178
437c99:	8b 8d a8 fd ff ff    	mov    -0x258(%ebp),%ecx
437c9f:	85 c0                	test   %eax,%eax
437ca1:	6a 2e                	push   $0x2e
437ca3:	58                   	pop    %eax
437ca4:	75 a6                	jne    0x437c4c
437ca6:	8b c1                	mov    %ecx,%eax
437ca8:	8b 8d a0 fd ff ff    	mov    -0x260(%ebp),%ecx
437cae:	8b 10                	mov    (%eax),%edx
437cb0:	8b 40 04             	mov    0x4(%eax),%eax
437cb3:	2b c2                	sub    %edx,%eax
437cb5:	c1 f8 02             	sar    $0x2,%eax
437cb8:	3b c8                	cmp    %eax,%ecx
437cba:	0f 84 56 ff ff ff    	je     0x437c16
437cc0:	68 a2 78 43 00       	push   $0x4378a2
437cc5:	2b c1                	sub    %ecx,%eax
437cc7:	6a 04                	push   $0x4
437cc9:	50                   	push   %eax
437cca:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
437ccd:	50                   	push   %eax
437cce:	e8 0d 43 00 00       	call   0x43bfe0