40ba1f:	75 26                	jne    0x40ba47
40ba21:	8b cf                	mov    %edi,%ecx
40ba23:	e8 84 12 00 00       	call   0x40ccac
40ba28:	85 c0                	test   %eax,%eax
40ba2a:	75 0d                	jne    0x40ba39
40ba2c:	ff 15 40 f0 40 00    	call   *0x40f040
40ba32:	b9 2c 49 40 00       	mov    $0x40492c,%ecx
40ba37:	eb ae                	jmp    0x40b9e7
40ba39:	c7 45 fc 2c 49 40 00 	movl   $0x40492c,-0x4(%ebp)
40ba40:	8d 55 fc             	lea    -0x4(%ebp),%edx
40ba43:	6a 64                	push   $0x64
40ba45:	eb 04                	jmp    0x40ba4b
40ba47:	33 d2                	xor    %edx,%edx
40ba49:	6a 2e                	push   $0x2e
40ba4b:	59                   	pop    %ecx
40ba4c:	e8 5e eb ff ff       	call   0x40a5af
40ba51:	33 c0                	xor    %eax,%eax
40ba53:	5f                   	pop    %edi
40ba54:	5e                   	pop    %esi
40ba55:	c9                   	leave
40ba56:	c3                   	ret
40ba57:	8b ff                	mov    %edi,%edi
40ba59:	55                   	push   %ebp
40ba5a:	8b ec                	mov    %esp,%ebp
40ba5c:	51                   	push   %ecx
40ba5d:	57                   	push   %edi
40ba5e:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ba61:	8b f9                	mov    %ecx,%edi
40ba63:	e8 87 e8 ff ff       	call   0x40a2ef
40ba68:	85 c0                	test   %eax,%eax
40ba6a:	74 18                	je     0x40ba84
40ba6c:	6a 00                	push   $0x0
40ba6e:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ba71:	50                   	push   %eax
40ba72:	ff 75 fc             	push   -0x4(%ebp)
40ba75:	57                   	push   %edi
40ba76:	ff 35 c0 eb 40 00    	push   0x40ebc0
40ba7c:	ff 15 20 f0 40 00    	call   *0x40f020
40ba82:	eb 4f                	jmp    0x40bad3
40ba84:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ba87:	53                   	push   %ebx
40ba88:	56                   	push   %esi
40ba89:	03 c0                	add    %eax,%eax
40ba8b:	33 db                	xor    %ebx,%ebx
40ba8d:	50                   	push   %eax
40ba8e:	53                   	push   %ebx
40ba8f:	ff 15 64 f0 40 00    	call   *0x40f064
40ba95:	8b f0                	mov    %eax,%esi
40ba97:	85 f6                	test   %esi,%esi
40ba99:	74 36                	je     0x40bad1
40ba9b:	8b 55 fc             	mov    -0x4(%ebp),%edx
40ba9e:	53                   	push   %ebx
40ba9f:	53                   	push   %ebx
40baa0:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
40baa3:	51                   	push   %ecx
40baa4:	56                   	push   %esi
40baa5:	52                   	push   %edx
40baa6:	57                   	push   %edi
40baa7:	53                   	push   %ebx
40baa8:	6a 01                	push   $0x1
40baaa:	ff 15 a8 f0 40 00    	call   *0x40f0a8
40bab0:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bab3:	85 c0                	test   %eax,%eax
40bab5:	74 13                	je     0x40baca
40bab7:	53                   	push   %ebx
40bab8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40babb:	51                   	push   %ecx
40babc:	50                   	push   %eax
40babd:	56                   	push   %esi
40babe:	ff 35 c0 eb 40 00    	push   0x40ebc0
40bac4:	ff 15 54 f0 40 00    	call   *0x40f054
40baca:	56                   	push   %esi
40bacb:	ff 15 68 f0 40 00    	call   *0x40f068
40bad1:	5e                   	pop    %esi
40bad2:	5b                   	pop    %ebx
40bad3:	5f                   	pop    %edi
40bad4:	c9                   	leave
40bad5:	c3                   	ret
40bad6:	8b ff                	mov    %edi,%edi
40bad8:	55                   	push   %ebp
40bad9:	8b ec                	mov    %esp,%ebp
40badb:	83 ec 0c             	sub    $0xc,%esp
40bade:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40bae2:	53                   	push   %ebx
40bae3:	8b 5d 10             	mov    0x10(%ebp),%ebx
40bae6:	56                   	push   %esi
40bae7:	8b f2                	mov    %edx,%esi
40bae9:	8b 55 0c             	mov    0xc(%ebp),%edx
40baec:	57                   	push   %edi
40baed:	8b f9                	mov    %ecx,%edi
40baef:	89 75 f8             	mov    %esi,-0x8(%ebp)
40baf2:	89 7d f4             	mov    %edi,-0xc(%ebp)
40baf5:	8b 02                	mov    (%edx),%eax
40baf7:	8b 55 08             	mov    0x8(%ebp),%edx
40bafa:	8b 0a                	mov    (%edx),%ecx
40bafc:	eb 06                	jmp    0x40bb04
40bafe:	8b 75 f8             	mov    -0x8(%ebp),%esi
40bb01:	8b 7d f4             	mov    -0xc(%ebp),%edi
40bb04:	53                   	push   %ebx
40bb05:	50                   	push   %eax
40bb06:	51                   	push   %ecx
40bb07:	85 f6                	test   %esi,%esi
40bb09:	74 0a                	je     0x40bb15
40bb0b:	56                   	push   %esi
40bb0c:	57                   	push   %edi
40bb0d:	ff 15 54 00 41 00    	call   *0x410054
40bb13:	eb 07                	jmp    0x40bb1c
40bb15:	57                   	push   %edi
40bb16:	ff 15 60 00 41 00    	call   *0x410060
40bb1c:	8b f8                	mov    %eax,%edi
40bb1e:	33 f6                	xor    %esi,%esi
40bb20:	83 ff 01             	cmp    $0x1,%edi
40bb23:	74 49                	je     0x40bb6e
40bb25:	8b 45 0c             	mov    0xc(%ebp),%eax
40bb28:	39 30                	cmp    %esi,(%eax)
40bb2a:	75 42                	jne    0x40bb6e
40bb2c:	8b 45 08             	mov    0x8(%ebp),%eax
40bb2f:	39 30                	cmp    %esi,(%eax)
40bb31:	75 3b                	jne    0x40bb6e
40bb33:	ff 15 40 f0 40 00    	call   *0x40f040
40bb39:	83 f8 7a             	cmp    $0x7a,%eax
40bb3c:	75 30                	jne    0x40bb6e
40bb3e:	39 33                	cmp    %esi,(%ebx)
40bb40:	74 2c                	je     0x40bb6e
40bb42:	ff 33                	push   (%ebx)
40bb44:	56                   	push   %esi
40bb45:	ff 15 64 f0 40 00    	call   *0x40f064
40bb4b:	8b f0                	mov    %eax,%esi
40bb4d:	8b ce                	mov    %esi,%ecx
40bb4f:	85 f6                	test   %esi,%esi
40bb51:	74 1b                	je     0x40bb6e
40bb53:	8b 55 0c             	mov    0xc(%ebp),%edx
40bb56:	8b 03                	mov    (%ebx),%eax
40bb58:	89 02                	mov    %eax,(%edx)
40bb5a:	8b 55 08             	mov    0x8(%ebp),%edx
40bb5d:	89 32                	mov    %esi,(%edx)
40bb5f:	33 f6                	xor    %esi,%esi
40bb61:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bb64:	42                   	inc    %edx
40bb65:	89 55 fc             	mov    %edx,-0x4(%ebp)
40bb68:	66 83 fa 02          	cmp    $0x2,%dx
40bb6c:	72 90                	jb     0x40bafe
40bb6e:	56                   	push   %esi
40bb6f:	ff 15 68 f0 40 00    	call   *0x40f068
40bb75:	8b c7                	mov    %edi,%eax
40bb77:	5f                   	pop    %edi
40bb78:	5e                   	pop    %esi
40bb79:	5b                   	pop    %ebx
40bb7a:	c9                   	leave
40bb7b:	c2 0c 00             	ret    $0xc
40bb7e:	8b ff                	mov    %edi,%edi
40bb80:	55                   	push   %ebp
40bb81:	8b ec                	mov    %esp,%ebp
40bb83:	83 ec 64             	sub    $0x64,%esp
40bb86:	a1 04 e0 40 00       	mov    0x40e004,%eax
40bb8b:	33 c5                	xor    %ebp,%eax
40bb8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40bb90:	83 4d d0 ff          	orl    $0xffffffff,-0x30(%ebp)
40bb94:	8b 45 10             	mov    0x10(%ebp),%eax
40bb97:	53                   	push   %ebx
40bb98:	56                   	push   %esi
40bb99:	8b 75 08             	mov    0x8(%ebp),%esi
40bb9c:	83 cb ff             	or     $0xffffffff,%ebx
40bb9f:	57                   	push   %edi
40bba0:	33 ff                	xor    %edi,%edi
40bba2:	89 4d cc             	mov    %ecx,-0x34(%ebp)
40bba5:	83 c9 ff             	or     $0xffffffff,%ecx
40bba8:	89 55 a0             	mov    %edx,-0x60(%ebp)
40bbab:	89 45 c0             	mov    %eax,-0x40(%ebp)
40bbae:	89 5d c8             	mov    %ebx,-0x38(%ebp)
40bbb1:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40bbb4:	89 7d a4             	mov    %edi,-0x5c(%ebp)
40bbb7:	89 7d a8             	mov    %edi,-0x58(%ebp)
40bbba:	89 7d bc             	mov    %edi,-0x44(%ebp)
40bbbd:	89 7d ac             	mov    %edi,-0x54(%ebp)
40bbc0:	89 7d b0             	mov    %edi,-0x50(%ebp)
40bbc3:	89 7d b4             	mov    %edi,-0x4c(%ebp)
40bbc6:	89 7d b8             	mov    %edi,-0x48(%ebp)
40bbc9:	89 7d c4             	mov    %edi,-0x3c(%ebp)
40bbcc:	89 7d d8             	mov    %edi,-0x28(%ebp)
40bbcf:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40bbd2:	0f 86 51 01 00 00    	jbe    0x40bd29
40bbd8:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
40bbdf:	83 c6 04             	add    $0x4,%esi
40bbe2:	68 b4 11 40 00       	push   $0x4011b4
40bbe7:	ff 76 fc             	push   -0x4(%esi)
40bbea:	ff 15 28 f1 40 00    	call   *0x40f128
40bbf0:	59                   	pop    %ecx
40bbf1:	59                   	pop    %ecx
40bbf2:	85 c0                	test   %eax,%eax
40bbf4:	0f 85 62 01 00 00    	jne    0x40bd5c
40bbfa:	8b 45 0c             	mov    0xc(%ebp),%eax
40bbfd:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bc00:	0f 83 56 01 00 00    	jae    0x40bd5c
40bc06:	43                   	inc    %ebx
40bc07:	f7 db                	neg    %ebx
40bc09:	68 dc 3b 40 00       	push   $0x403bdc
40bc0e:	ff 36                	push   (%esi)
40bc10:	1b db                	sbb    %ebx,%ebx
40bc12:	23 5d c8             	and    -0x38(%ebp),%ebx
40bc15:	ff 15 28 f1 40 00    	call   *0x40f128
40bc1b:	59                   	pop    %ecx
40bc1c:	59                   	pop    %ecx
40bc1d:	85 c0                	test   %eax,%eax
40bc1f:	75 07                	jne    0x40bc28
40bc21:	6a 10                	push   $0x10
40bc23:	e9 be 00 00 00       	jmp    0x40bce6
40bc28:	68 e4 3b 40 00       	push   $0x403be4
40bc2d:	ff 36                	push   (%esi)
40bc2f:	ff 15 28 f1 40 00    	call   *0x40f128
40bc35:	59                   	pop    %ecx
40bc36:	59                   	pop    %ecx
40bc37:	85 c0                	test   %eax,%eax
40bc39:	75 07                	jne    0x40bc42
40bc3b:	6a 20                	push   $0x20
40bc3d:	e9 a4 00 00 00       	jmp    0x40bce6
40bc42:	68 a4 42 40 00       	push   $0x4042a4
40bc47:	ff 36                	push   (%esi)
40bc49:	ff 15 28 f1 40 00    	call   *0x40f128
40bc4f:	59                   	pop    %ecx
40bc50:	59                   	pop    %ecx
40bc51:	85 c0                	test   %eax,%eax
40bc53:	75 07                	jne    0x40bc5c
40bc55:	6a 50                	push   $0x50
40bc57:	e9 8a 00 00 00       	jmp    0x40bce6
40bc5c:	68 b4 42 40 00       	push   $0x4042b4
40bc61:	ff 36                	push   (%esi)
40bc63:	ff 15 28 f1 40 00    	call   *0x40f128
40bc69:	59                   	pop    %ecx
40bc6a:	59                   	pop    %ecx
40bc6b:	85 c0                	test   %eax,%eax
40bc6d:	75 04                	jne    0x40bc73
40bc6f:	6a 60                	push   $0x60
40bc71:	eb 73                	jmp    0x40bce6
40bc73:	68 80 3b 40 00       	push   $0x403b80
40bc78:	ff 36                	push   (%esi)
40bc7a:	ff 15 28 f1 40 00    	call   *0x40f128
40bc80:	59                   	pop    %ecx
40bc81:	59                   	pop    %ecx
40bc82:	85 c0                	test   %eax,%eax
40bc84:	75 07                	jne    0x40bc8d
40bc86:	b8 00 01 00 00       	mov    $0x100,%eax
40bc8b:	eb 78                	jmp    0x40bd05
40bc8d:	68 ac 3b 40 00       	push   $0x403bac
40bc92:	ff 36                	push   (%esi)
40bc94:	ff 15 28 f1 40 00    	call   *0x40f128
40bc9a:	59                   	pop    %ecx
40bc9b:	59                   	pop    %ecx
40bc9c:	85 c0                	test   %eax,%eax
40bc9e:	75 03                	jne    0x40bca3
40bca0:	40                   	inc    %eax
40bca1:	eb 62                	jmp    0x40bd05
40bca3:	68 bc 3b 40 00       	push   $0x403bbc
40bca8:	ff 36                	push   (%esi)
40bcaa:	ff 15 28 f1 40 00    	call   *0x40f128
40bcb0:	59                   	pop    %ecx
40bcb1:	59                   	pop    %ecx
40bcb2:	85 c0                	test   %eax,%eax
40bcb4:	75 04                	jne    0x40bcba
40bcb6:	6a 02                	push   $0x2
40bcb8:	eb 2c                	jmp    0x40bce6
40bcba:	68 c8 42 40 00       	push   $0x4042c8
40bcbf:	ff 36                	push   (%esi)
40bcc1:	ff 15 28 f1 40 00    	call   *0x40f128
40bcc7:	59                   	pop    %ecx
40bcc8:	59                   	pop    %ecx
40bcc9:	85 c0                	test   %eax,%eax
40bccb:	75 04                	jne    0x40bcd1
40bccd:	6a 08                	push   $0x8
40bccf:	eb 15                	jmp    0x40bce6
40bcd1:	68 d0 42 40 00       	push   $0x4042d0
40bcd6:	ff 36                	push   (%esi)
40bcd8:	ff 15 28 f1 40 00    	call   *0x40f128
40bcde:	59                   	pop    %ecx
40bcdf:	59                   	pop    %ecx
40bce0:	85 c0                	test   %eax,%eax
40bce2:	75 05                	jne    0x40bce9
40bce4:	6a 04                	push   $0x4
40bce6:	58                   	pop    %eax
40bce7:	eb 1c                	jmp    0x40bd05
40bce9:	68 94 3b 40 00       	push   $0x403b94
40bcee:	ff 36                	push   (%esi)
40bcf0:	ff 15 28 f1 40 00    	call   *0x40f128
40bcf6:	59                   	pop    %ecx
40bcf7:	59                   	pop    %ecx
40bcf8:	85 c0                	test   %eax,%eax
40bcfa:	0f 85 8b 03 00 00    	jne    0x40c08b
40bd00:	b8 20 9a 30 2f       	mov    $0x2f309a20,%eax
40bd05:	0b c3                	or     %ebx,%eax
40bd07:	89 45 c8             	mov    %eax,-0x38(%ebp)
40bd0a:	8b 5d c8             	mov    -0x38(%ebp),%ebx
40bd0d:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40bd10:	8b 45 dc             	mov    -0x24(%ebp),%eax
40bd13:	83 c6 08             	add    $0x8,%esi
40bd16:	83 c0 02             	add    $0x2,%eax
40bd19:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bd1c:	48                   	dec    %eax
40bd1d:	3b 45 0c             	cmp    0xc(%ebp),%eax
40bd20:	0f 82 bc fe ff ff    	jb     0x40bbe2
40bd26:	8b 55 a0             	mov    -0x60(%ebp),%edx
40bd29:	33 c0                	xor    %eax,%eax
40bd2b:	83 f9 ff             	cmp    $0xffffffff,%ecx
40bd2e:	0f 95 c0             	setne  %al
40bd31:	83 c0 02             	add    $0x2,%eax
40bd34:	50                   	push   %eax
40bd35:	52                   	push   %edx
40bd36:	ff 75 cc             	push   -0x34(%ebp)
40bd39:	ff 15 3c 00 41 00    	call   *0x41003c
40bd3f:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40bd42:	89 01                	mov    %eax,(%ecx)
40bd44:	85 c0                	test   %eax,%eax
40bd46:	0f 85 9f 03 00 00    	jne    0x40c0eb
40bd4c:	ff 15 40 f0 40 00    	call   *0x40f040
40bd52:	b9 88 14 40 00       	mov    $0x401488,%ecx
40bd57:	e9 83 03 00 00       	jmp    0x40c0df
40bd5c:	68 dc 42 40 00       	push   $0x4042dc
40bd61:	ff 76 fc             	push   -0x4(%esi)
40bd64:	ff 15 28 f1 40 00    	call   *0x40f128
40bd6a:	59                   	pop    %ecx
40bd6b:	59                   	pop    %ecx
40bd6c:	85 c0                	test   %eax,%eax
40bd6e:	0f 85 d0 00 00 00    	jne    0x40be44
40bd74:	8b 45 0c             	mov    0xc(%ebp),%eax
40bd77:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bd7a:	0f 83 c4 00 00 00    	jae    0x40be44
40bd80:	68 a0 40 40 00       	push   $0x4040a0
40bd85:	ff 36                	push   (%esi)
40bd87:	ff 15 28 f1 40 00    	call   *0x40f128
40bd8d:	59                   	pop    %ecx
40bd8e:	59                   	pop    %ecx
40bd8f:	85 c0                	test   %eax,%eax
40bd91:	75 07                	jne    0x40bd9a
40bd93:	8b cf                	mov    %edi,%ecx
40bd95:	e9 a2 00 00 00       	jmp    0x40be3c
40bd9a:	68 ec 42 40 00       	push   $0x4042ec
40bd9f:	ff 36                	push   (%esi)
40bda1:	ff 15 28 f1 40 00    	call   *0x40f128
40bda7:	59                   	pop    %ecx
40bda8:	59                   	pop    %ecx
40bda9:	85 c0                	test   %eax,%eax
40bdab:	75 08                	jne    0x40bdb5
40bdad:	33 c9                	xor    %ecx,%ecx
40bdaf:	41                   	inc    %ecx
40bdb0:	e9 87 00 00 00       	jmp    0x40be3c
40bdb5:	68 fc 42 40 00       	push   $0x4042fc
40bdba:	ff 36                	push   (%esi)
40bdbc:	ff 15 28 f1 40 00    	call   *0x40f128
40bdc2:	59                   	pop    %ecx
40bdc3:	59                   	pop    %ecx
40bdc4:	85 c0                	test   %eax,%eax