58a90e:	84 c0                	test   %al,%al
58a910:	0f 84 b0 03 00 00    	je     0x58acc6
58a916:	3b b5 b8 00 00 00    	cmp    0xb8(%ebp),%esi
58a91c:	0f 84 e8 02 00 00    	je     0x58ac0a
58a922:	8b b5 a4 00 00 00    	mov    0xa4(%ebp),%esi
58a928:	8d 8d 90 00 00 00    	lea    0x90(%ebp),%ecx
58a92e:	8b 95 90 00 00 00    	mov    0x90(%ebp),%edx
58a934:	8d bd 90 00 00 00    	lea    0x90(%ebp),%edi
58a93a:	8b 85 a0 00 00 00    	mov    0xa0(%ebp),%eax
58a940:	83 fe 08             	cmp    $0x8,%esi
58a943:	0f 43 ca             	cmovae %edx,%ecx
58a946:	0f 43 fa             	cmovae %edx,%edi
58a949:	8d 04 41             	lea    (%ecx,%eax,2),%eax
58a94c:	8d 8d 90 00 00 00    	lea    0x90(%ebp),%ecx
58a952:	0f 43 ca             	cmovae %edx,%ecx
58a955:	2b c7                	sub    %edi,%eax
58a957:	8b d7                	mov    %edi,%edx
58a959:	d1 f8                	sar    $1,%eax
58a95b:	2b d1                	sub    %ecx,%edx
58a95d:	8d 8d 90 00 00 00    	lea    0x90(%ebp),%ecx
58a963:	d1 fa                	sar    $1,%edx
58a965:	50                   	push   %eax
58a966:	52                   	push   %edx
58a967:	e8 ef db e9 ff       	call   0x42855b
58a96c:	6a 14                	push   $0x14
58a96e:	e8 0a 00 ea ff       	call   0x42a97d
58a973:	83 c4 04             	add    $0x4,%esp
58a976:	89 45 b4             	mov    %eax,-0x4c(%ebp)
58a979:	c6 45 fc 0a          	movb   $0xa,-0x4(%ebp)
58a97d:	85 c0                	test   %eax,%eax
58a97f:	74 2b                	je     0x58a9ac
58a981:	8b 4d d8             	mov    -0x28(%ebp),%ecx
58a984:	41                   	inc    %ecx
58a985:	6a 01                	push   $0x1
58a987:	51                   	push   %ecx
58a988:	8b c8                	mov    %eax,%ecx
58a98a:	e8 ea 13 e9 ff       	call   0x41bd79
58a98f:	8b c8                	mov    %eax,%ecx
58a991:	eb 1b                	jmp    0x58a9ae
58a993:	e8 f5 2f eb ff       	call   0x43d98d
58a998:	8d 45 18             	lea    0x18(%ebp),%eax
58a99b:	89 45 e8             	mov    %eax,-0x18(%ebp)
58a99e:	e8 8e 05 ea ff       	call   0x42af31
58a9a3:	c6 45 ee 01          	movb   $0x1,-0x12(%ebp)
58a9a7:	e9 62 ff ff ff       	jmp    0x58a90e
58a9ac:	33 c9                	xor    %ecx,%ecx
58a9ae:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
58a9b2:	85 c9                	test   %ecx,%ecx
58a9b4:	75 04                	jne    0x58a9ba
58a9b6:	33 f6                	xor    %esi,%esi
58a9b8:	eb 10                	jmp    0x58a9ca
58a9ba:	8b 01                	mov    (%ecx),%eax
58a9bc:	8b 70 04             	mov    0x4(%eax),%esi
58a9bf:	03 f1                	add    %ecx,%esi
58a9c1:	74 07                	je     0x58a9ca
58a9c3:	8b 06                	mov    (%esi),%eax
58a9c5:	8b ce                	mov    %esi,%ecx
58a9c7:	ff 50 08             	call   *0x8(%eax)
58a9ca:	8d 45 e4             	lea    -0x1c(%ebp),%eax
58a9cd:	56                   	push   %esi
58a9ce:	50                   	push   %eax
58a9cf:	e8 af 82 e8 ff       	call   0x412c83
58a9d4:	83 c4 08             	add    $0x8,%esp
58a9d7:	85 c0                	test   %eax,%eax
58a9d9:	74 07                	je     0x58a9e2
58a9db:	8b 10                	mov    (%eax),%edx
58a9dd:	8b c8                	mov    %eax,%ecx
58a9df:	ff 52 0c             	call   *0xc(%edx)
58a9e2:	8b 7d b8             	mov    -0x48(%ebp),%edi
58a9e5:	8d 85 90 00 00 00    	lea    0x90(%ebp),%eax
58a9eb:	8b 4d c0             	mov    -0x40(%ebp),%ecx
58a9ee:	57                   	push   %edi
58a9ef:	50                   	push   %eax
58a9f0:	8d 45 e0             	lea    -0x20(%ebp),%eax
58a9f3:	50                   	push   %eax
58a9f4:	e8 af 2f e9 ff       	call   0x41d9a8
58a9f9:	33 c0                	xor    %eax,%eax
58a9fb:	c7 45 44 07 00 00 00 	movl   $0x7,0x44(%ebp)
58aa02:	6a ff                	push   $0xffffffff
58aa04:	50                   	push   %eax
58aa05:	66 89 45 30          	mov    %ax,0x30(%ebp)
58aa09:	8d 4d 30             	lea    0x30(%ebp),%ecx
58aa0c:	8d 85 90 00 00 00    	lea    0x90(%ebp),%eax
58aa12:	c7 45 40 00 00 00 00 	movl   $0x0,0x40(%ebp)
58aa19:	50                   	push   %eax
58aa1a:	e8 05 72 e9 ff       	call   0x421c24
58aa1f:	33 c0                	xor    %eax,%eax
58aa21:	c6 45 fc 0b          	movb   $0xb,-0x4(%ebp)
58aa25:	6a ff                	push   $0xffffffff
58aa27:	50                   	push   %eax
58aa28:	66 89 45 60          	mov    %ax,0x60(%ebp)
58aa2c:	8d 4d 60             	lea    0x60(%ebp),%ecx
58aa2f:	8d 45 30             	lea    0x30(%ebp),%eax
58aa32:	c7 45 74 07 00 00 00 	movl   $0x7,0x74(%ebp)
58aa39:	50                   	push   %eax
58aa3a:	c7 45 70 00 00 00 00 	movl   $0x0,0x70(%ebp)
58aa41:	e8 de 71 e9 ff       	call   0x421c24
58aa46:	80 7d ee 00          	cmpb   $0x0,-0x12(%ebp)
58aa4a:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
58aa4e:	74 69                	je     0x58aab9
58aa50:	8b 45 40             	mov    0x40(%ebp),%eax
58aa53:	8d 4d 30             	lea    0x30(%ebp),%ecx
58aa56:	2b 45 dc             	sub    -0x24(%ebp),%eax
58aa59:	50                   	push   %eax
58aa5a:	6a 00                	push   $0x0
58aa5c:	8d 45 48             	lea    0x48(%ebp),%eax
58aa5f:	50                   	push   %eax
58aa60:	e8 98 9f e7 ff       	call   0x4049fd
58aa65:	8b f0                	mov    %eax,%esi
58aa67:	8d 45 60             	lea    0x60(%ebp),%eax
58aa6a:	3b c6                	cmp    %esi,%eax
58aa6c:	74 32                	je     0x58aaa0
58aa6e:	8b 45 74             	mov    0x74(%ebp),%eax
58aa71:	83 f8 08             	cmp    $0x8,%eax
58aa74:	72 0d                	jb     0x58aa83
58aa76:	40                   	inc    %eax
58aa77:	8d 4d 60             	lea    0x60(%ebp),%ecx
58aa7a:	50                   	push   %eax
58aa7b:	ff 75 60             	push   0x60(%ebp)
58aa7e:	e8 c4 71 e9 ff       	call   0x421c47
58aa83:	33 c0                	xor    %eax,%eax
58aa85:	c7 45 74 07 00 00 00 	movl   $0x7,0x74(%ebp)
58aa8c:	56                   	push   %esi
58aa8d:	8d 4d 60             	lea    0x60(%ebp),%ecx
58aa90:	c7 45 70 00 00 00 00 	movl   $0x0,0x70(%ebp)
58aa97:	66 89 45 60          	mov    %ax,0x60(%ebp)
58aa9b:	e8 27 83 e9 ff       	call   0x422dc7
58aaa0:	8b 45 5c             	mov    0x5c(%ebp),%eax
58aaa3:	c6 45 fc 0c          	movb   $0xc,-0x4(%ebp)
58aaa7:	83 f8 08             	cmp    $0x8,%eax
58aaaa:	72 0d                	jb     0x58aab9
58aaac:	40                   	inc    %eax
58aaad:	8d 4d 48             	lea    0x48(%ebp),%ecx
58aab0:	50                   	push   %eax
58aab1:	ff 75 48             	push   0x48(%ebp)
58aab4:	e8 8e 71 e9 ff       	call   0x421c47
58aab9:	6a 5c                	push   $0x5c
58aabb:	e8 bd fe e9 ff       	call   0x42a97d
58aac0:	8b f0                	mov    %eax,%esi
58aac2:	83 c4 04             	add    $0x4,%esp
58aac5:	89 75 b0             	mov    %esi,-0x50(%ebp)
58aac8:	c6 45 fc 0e          	movb   $0xe,-0x4(%ebp)
58aacc:	85 f6                	test   %esi,%esi
58aace:	74 30                	je     0x58ab00
58aad0:	8d 4d 48             	lea    0x48(%ebp),%ecx
58aad3:	e8 01 c0 ea ff       	call   0x436ad9
58aad8:	6a 01                	push   $0x1
58aada:	6a 01                	push   $0x1
58aadc:	8d 4d 60             	lea    0x60(%ebp),%ecx
58aadf:	c6 45 fc 0f          	movb   $0xf,-0x4(%ebp)
58aae3:	51                   	push   %ecx
58aae4:	83 cb 01             	or     $0x1,%ebx
58aae7:	8b c8                	mov    %eax,%ecx
58aae9:	89 5d bc             	mov    %ebx,-0x44(%ebp)
58aaec:	e8 80 7d ea ff       	call   0x432871
58aaf1:	50                   	push   %eax
58aaf2:	ff 75 e8             	push   -0x18(%ebp)
58aaf5:	8b ce                	mov    %esi,%ecx
58aaf7:	e8 c2 eb e8 ff       	call   0x4196be
58aafc:	8b f0                	mov    %eax,%esi
58aafe:	eb 02                	jmp    0x58ab02
58ab00:	33 f6                	xor    %esi,%esi
58ab02:	8d 4d d0             	lea    -0x30(%ebp),%ecx
58ab05:	c7 45 fc 10 00 00 00 	movl   $0x10,-0x4(%ebp)
58ab0c:	e8 05 1f ea ff       	call   0x42ca16
58ab11:	c7 45 fc 11 00 00 00 	movl   $0x11,-0x4(%ebp)
58ab18:	c7 45 d0 d4 21 be 00 	movl   $0xbe21d4,-0x30(%ebp)
58ab1f:	89 75 d4             	mov    %esi,-0x2c(%ebp)
58ab22:	85 f6                	test   %esi,%esi
58ab24:	74 10                	je     0x58ab36
58ab26:	8b 46 04             	mov    0x4(%esi),%eax
58ab29:	8b 48 04             	mov    0x4(%eax),%ecx
58ab2c:	83 c1 04             	add    $0x4,%ecx
58ab2f:	03 ce                	add    %esi,%ecx
58ab31:	8b 01                	mov    (%ecx),%eax
58ab33:	ff 50 08             	call   *0x8(%eax)
58ab36:	8d 45 d0             	lea    -0x30(%ebp),%eax
58ab39:	c7 45 fc 12 00 00 00 	movl   $0x12,-0x4(%ebp)
58ab40:	50                   	push   %eax
58ab41:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
58ab44:	e8 cf 53 ea ff       	call   0x42ff18
58ab49:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
58ab4c:	c7 45 fc 13 00 00 00 	movl   $0x13,-0x4(%ebp)
58ab53:	c7 45 d0 d4 21 be 00 	movl   $0xbe21d4,-0x30(%ebp)
58ab5a:	85 c9                	test   %ecx,%ecx
58ab5c:	74 10                	je     0x58ab6e
58ab5e:	8b 41 04             	mov    0x4(%ecx),%eax
58ab61:	83 c1 04             	add    $0x4,%ecx
58ab64:	8b 40 04             	mov    0x4(%eax),%eax
58ab67:	03 c8                	add    %eax,%ecx
58ab69:	8b 01                	mov    (%ecx),%eax
58ab6b:	ff 50 0c             	call   *0xc(%eax)
58ab6e:	8d 4d d0             	lea    -0x30(%ebp),%ecx
58ab71:	e8 79 4e eb ff       	call   0x43f9ef
58ab76:	c7 45 fc 0c 00 00 00 	movl   $0xc,-0x4(%ebp)
58ab7d:	f6 c3 01             	test   $0x1,%bl
58ab80:	74 0e                	je     0x58ab90
58ab82:	83 e3 fe             	and    $0xfffffffe,%ebx
58ab85:	8d 4d 48             	lea    0x48(%ebp),%ecx
58ab88:	89 5d bc             	mov    %ebx,-0x44(%ebp)
58ab8b:	e8 15 ea e9 ff       	call   0x4295a5
58ab90:	6a ff                	push   $0xffffffff
58ab92:	6a 00                	push   $0x0
58ab94:	8d 45 30             	lea    0x30(%ebp),%eax
58ab97:	50                   	push   %eax
58ab98:	8d 4d 78             	lea    0x78(%ebp),%ecx
58ab9b:	e8 84 70 e9 ff       	call   0x421c24
58aba0:	8b 45 74             	mov    0x74(%ebp),%eax
58aba3:	83 f8 08             	cmp    $0x8,%eax
58aba6:	72 0d                	jb     0x58abb5
58aba8:	40                   	inc    %eax
58aba9:	8d 4d 60             	lea    0x60(%ebp),%ecx
58abac:	50                   	push   %eax
58abad:	ff 75 60             	push   0x60(%ebp)
58abb0:	e8 92 70 e9 ff       	call   0x421c47
58abb5:	33 c0                	xor    %eax,%eax
58abb7:	c7 45 74 07 00 00 00 	movl   $0x7,0x74(%ebp)
58abbe:	66 89 45 60          	mov    %ax,0x60(%ebp)
58abc2:	8b 45 44             	mov    0x44(%ebp),%eax
58abc5:	c7 45 70 00 00 00 00 	movl   $0x0,0x70(%ebp)
58abcc:	83 f8 08             	cmp    $0x8,%eax
58abcf:	72 0d                	jb     0x58abde
58abd1:	40                   	inc    %eax
58abd2:	8d 4d 30             	lea    0x30(%ebp),%ecx
58abd5:	50                   	push   %eax
58abd6:	ff 75 30             	push   0x30(%ebp)
58abd9:	e8 69 70 e9 ff       	call   0x421c47
58abde:	8d 4d 18             	lea    0x18(%ebp),%ecx
58abe1:	e8 bf e9 e9 ff       	call   0x4295a5
58abe6:	8d 4d 00             	lea    0x0(%ebp),%ecx
58abe9:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
58abed:	e8 b3 e9 e9 ff       	call   0x4295a5
58abf2:	8b 75 d8             	mov    -0x28(%ebp),%esi
58abf5:	46                   	inc    %esi
58abf6:	89 75 d8             	mov    %esi,-0x28(%ebp)
58abf9:	3b b5 b8 00 00 00    	cmp    0xb8(%ebp),%esi
58abff:	0f 8e 2d fc ff ff    	jle    0x58a832
58ac05:	e9 cc 00 00 00       	jmp    0x58acd6
58ac0a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
58ac0d:	57                   	push   %edi
58ac0e:	e8 b9 21 ea ff       	call   0x42cdcc
58ac13:	8d 4d 18             	lea    0x18(%ebp),%ecx
58ac16:	84 c0                	test   %al,%al
58ac18:	0f 85 ab 00 00 00    	jne    0x58acc9
58ac1e:	e8 82 e9 e9 ff       	call   0x4295a5
58ac23:	8d 4d 00             	lea    0x0(%ebp),%ecx
58ac26:	e8 7a e9 e9 ff       	call   0x4295a5
58ac2b:	8b 85 8c 00 00 00    	mov    0x8c(%ebp),%eax
58ac31:	83 f8 08             	cmp    $0x8,%eax
58ac34:	72 0d                	jb     0x58ac43
58ac36:	40                   	inc    %eax
58ac37:	8d 4d 78             	lea    0x78(%ebp),%ecx
58ac3a:	50                   	push   %eax
58ac3b:	ff 75 78             	push   0x78(%ebp)
58ac3e:	e8 04 70 e9 ff       	call   0x421c47
58ac43:	33 c0                	xor    %eax,%eax
58ac45:	c7 85 8c 00 00 00 07 	movl   $0x7,0x8c(%ebp)
58ac4c:	00 00 00
58ac4f:	c7 85 88 00 00 00 00 	movl   $0x0,0x88(%ebp)
58ac56:	00 00 00
58ac59:	66 89 45 78          	mov    %ax,0x78(%ebp)
58ac5d:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
58ac60:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
58ac64:	c7 45 e0 f8 e7 bd 00 	movl   $0xbde7f8,-0x20(%ebp)
58ac6b:	85 c9                	test   %ecx,%ecx
58ac6d:	74 05                	je     0x58ac74
58ac6f:	8b 01                	mov    (%ecx),%eax
58ac71:	ff 50 0c             	call   *0xc(%eax)
58ac74:	8d 4d e0             	lea    -0x20(%ebp),%ecx
58ac77:	e8 73 4d eb ff       	call   0x43f9ef
58ac7c:	8b 85 a4 00 00 00    	mov    0xa4(%ebp),%eax
58ac82:	83 f8 08             	cmp    $0x8,%eax
58ac85:	72 13                	jb     0x58ac9a
58ac87:	40                   	inc    %eax
58ac88:	8d 8d 90 00 00 00    	lea    0x90(%ebp),%ecx
58ac8e:	50                   	push   %eax
58ac8f:	ff b5 90 00 00 00    	push   0x90(%ebp)
58ac95:	e8 ad 6f e9 ff       	call   0x421c47
58ac9a:	33 c0                	xor    %eax,%eax
58ac9c:	c7 85 a4 00 00 00 07 	movl   $0x7,0xa4(%ebp)
58aca3:	00 00 00
58aca6:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
58aca9:	c7 85 a0 00 00 00 00 	movl   $0x0,0xa0(%ebp)
58acb0:	00 00 00
58acb3:	66 89 85 90 00 00 00 	mov    %ax,0x90(%ebp)
58acba:	e8 bd d5 e9 ff       	call   0x42827c
58acbf:	32 c0                	xor    %al,%al
58acc1:	e9 ce 01 00 00       	jmp    0x58ae94
58acc6:	8d 4d 18             	lea    0x18(%ebp),%ecx
58acc9:	e8 d7 e8 e9 ff       	call   0x4295a5
58acce:	8d 4d 00             	lea    0x0(%ebp),%ecx
58acd1:	e8 cf e8 e9 ff       	call   0x4295a5
58acd6:	8b 75 c8             	mov    -0x38(%ebp),%esi
58acd9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
58ace0:	3b 75 c4             	cmp    -0x3c(%ebp),%esi
58ace3:	0f 84 15 01 00 00    	je     0x58adfe
58ace9:	8b 4e fc             	mov    -0x4(%esi),%ecx
58acec:	57                   	push   %edi
58aced:	c6 45 fc 14          	movb   $0x14,-0x4(%ebp)
58acf1:	8b 01                	mov    (%ecx),%eax
58acf3:	8b 00                	mov    (%eax),%eax
58acf5:	ff d0                	call   *%eax
58acf7:	84 c0                	test   %al,%al
58acf9:	0f 85 9b 00 00 00    	jne    0x58ad9a
58acff:	8b 85 8c 00 00 00    	mov    0x8c(%ebp),%eax
58ad05:	83 f8 08             	cmp    $0x8,%eax
58ad08:	72 0d                	jb     0x58ad17
58ad0a:	40                   	inc    %eax
58ad0b:	8d 4d 78             	lea    0x78(%ebp),%ecx
58ad0e:	50                   	push   %eax
58ad0f:	ff 75 78             	push   0x78(%ebp)
58ad12:	e8 30 6f e9 ff       	call   0x421c47
58ad17:	33 c0                	xor    %eax,%eax
58ad19:	c7 85 8c 00 00 00 07 	movl   $0x7,0x8c(%ebp)
58ad20:	00 00 00
58ad23:	c7 85 88 00 00 00 00 	movl   $0x0,0x88(%ebp)
58ad2a:	00 00 00
58ad2d:	66 89 45 78          	mov    %ax,0x78(%ebp)
58ad31:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
58ad34:	c6 45 fc 15          	movb   $0x15,-0x4(%ebp)
58ad38:	c7 45 e0 f8 e7 bd 00 	movl   $0xbde7f8,-0x20(%ebp)
58ad3f:	85 c9                	test   %ecx,%ecx
58ad41:	74 05                	je     0x58ad48
58ad43:	8b 01                	mov    (%ecx),%eax
58ad45:	ff 50 0c             	call   *0xc(%eax)
58ad48:	8d 4d e0             	lea    -0x20(%ebp),%ecx
58ad4b:	e8 9f 4c eb ff       	call   0x43f9ef
58ad50:	8b 85 a4 00 00 00    	mov    0xa4(%ebp),%eax
58ad56:	83 f8 08             	cmp    $0x8,%eax
58ad59:	72 13                	jb     0x58ad6e
58ad5b:	40                   	inc    %eax
58ad5c:	8d 8d 90 00 00 00    	lea    0x90(%ebp),%ecx
58ad62:	50                   	push   %eax
58ad63:	ff b5 90 00 00 00    	push   0x90(%ebp)
58ad69:	e8 d9 6e e9 ff       	call   0x421c47
58ad6e:	33 c0                	xor    %eax,%eax
58ad70:	c7 85 a4 00 00 00 07 	movl   $0x7,0xa4(%ebp)
58ad77:	00 00 00
58ad7a:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
58ad7d:	c7 85 a0 00 00 00 00 	movl   $0x0,0xa0(%ebp)
58ad84:	00 00 00
58ad87:	66 89 85 90 00 00 00 	mov    %ax,0x90(%ebp)
58ad8e:	e8 e9 d4 e9 ff       	call   0x42827c
58ad93:	32 c0                	xor    %al,%al
58ad95:	e9 fa 00 00 00       	jmp    0x58ae94
58ad9a:	c7 45 fc 05 00 00 00 	movl   $0x5,-0x4(%ebp)
58ada1:	83 ee 08             	sub    $0x8,%esi
58ada4:	e9 37 ff ff ff       	jmp    0x58ace0
58ada9:	68 f8 21 be 00       	push   $0xbe21f8
58adae:	8d 4d 48             	lea    0x48(%ebp),%ecx