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
40bdc6:	75 04                	jne    0x40bdcc
40bdc8:	6a 02                	push   $0x2
40bdca:	eb 2c                	jmp    0x40bdf8
40bdcc:	68 08 43 40 00       	push   $0x404308
40bdd1:	ff 36                	push   (%esi)
40bdd3:	ff 15 28 f1 40 00    	call   *0x40f128
40bdd9:	59                   	pop    %ecx
40bdda:	59                   	pop    %ecx
40bddb:	85 c0                	test   %eax,%eax
40bddd:	75 04                	jne    0x40bde3
40bddf:	6a 03                	push   $0x3
40bde1:	eb 15                	jmp    0x40bdf8
40bde3:	68 18 43 40 00       	push   $0x404318
40bde8:	ff 36                	push   (%esi)
40bdea:	ff 15 28 f1 40 00    	call   *0x40f128
40bdf0:	59                   	pop    %ecx
40bdf1:	59                   	pop    %ecx
40bdf2:	85 c0                	test   %eax,%eax
40bdf4:	75 05                	jne    0x40bdfb
40bdf6:	6a 04                	push   $0x4
40bdf8:	59                   	pop    %ecx
40bdf9:	eb 41                	jmp    0x40be3c
40bdfb:	68 2c 43 40 00       	push   $0x40432c
40be00:	ff 36                	push   (%esi)
40be02:	ff 15 28 f1 40 00    	call   *0x40f128
40be08:	59                   	pop    %ecx
40be09:	59                   	pop    %ecx
40be0a:	85 c0                	test   %eax,%eax
40be0c:	75 12                	jne    0x40be20
40be0e:	6a 02                	push   $0x2
40be10:	59                   	pop    %ecx
40be11:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40be14:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
40be1b:	e9 f0 fe ff ff       	jmp    0x40bd10
40be20:	68 94 3b 40 00       	push   $0x403b94
40be25:	ff 36                	push   (%esi)
40be27:	ff 15 28 f1 40 00    	call   *0x40f128
40be2d:	59                   	pop    %ecx
40be2e:	59                   	pop    %ecx
40be2f:	85 c0                	test   %eax,%eax
40be31:	0f 85 79 02 00 00    	jne    0x40c0b0
40be37:	b9 11 49 03 d0       	mov    $0xd0034911,%ecx
40be3c:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40be3f:	e9 cc fe ff ff       	jmp    0x40bd10
40be44:	68 48 43 40 00       	push   $0x404348
40be49:	ff 76 fc             	push   -0x4(%esi)
40be4c:	ff 15 28 f1 40 00    	call   *0x40f128
40be52:	59                   	pop    %ecx
40be53:	59                   	pop    %ecx
40be54:	85 c0                	test   %eax,%eax
40be56:	0f 85 a7 00 00 00    	jne    0x40bf03
40be5c:	8b 45 0c             	mov    0xc(%ebp),%eax
40be5f:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40be62:	0f 83 9b 00 00 00    	jae    0x40bf03
40be68:	68 58 43 40 00       	push   $0x404358
40be6d:	ff 36                	push   (%esi)
40be6f:	ff 15 28 f1 40 00    	call   *0x40f128
40be75:	59                   	pop    %ecx
40be76:	59                   	pop    %ecx
40be77:	85 c0                	test   %eax,%eax
40be79:	75 0c                	jne    0x40be87
40be7b:	c7 45 d0 01 00 00 00 	movl   $0x1,-0x30(%ebp)
40be82:	e9 86 fe ff ff       	jmp    0x40bd0d
40be87:	68 68 43 40 00       	push   $0x404368
40be8c:	ff 36                	push   (%esi)
40be8e:	ff 15 28 f1 40 00    	call   *0x40f128
40be94:	59                   	pop    %ecx
40be95:	59                   	pop    %ecx
40be96:	85 c0                	test   %eax,%eax
40be98:	75 0c                	jne    0x40bea6
40be9a:	c7 45 d0 02 00 00 00 	movl   $0x2,-0x30(%ebp)
40bea1:	e9 67 fe ff ff       	jmp    0x40bd0d
40bea6:	68 78 43 40 00       	push   $0x404378
40beab:	ff 36                	push   (%esi)
40bead:	ff 15 28 f1 40 00    	call   *0x40f128
40beb3:	59                   	pop    %ecx
40beb4:	59                   	pop    %ecx
40beb5:	85 c0                	test   %eax,%eax
40beb7:	75 08                	jne    0x40bec1
40beb9:	89 7d d0             	mov    %edi,-0x30(%ebp)
40bebc:	e9 4c fe ff ff       	jmp    0x40bd0d
40bec1:	68 88 43 40 00       	push   $0x404388
40bec6:	ff 36                	push   (%esi)
40bec8:	ff 15 28 f1 40 00    	call   *0x40f128
40bece:	59                   	pop    %ecx
40becf:	59                   	pop    %ecx
40bed0:	85 c0                	test   %eax,%eax
40bed2:	75 0c                	jne    0x40bee0
40bed4:	c7 45 d0 03 00 00 00 	movl   $0x3,-0x30(%ebp)
40bedb:	e9 2d fe ff ff       	jmp    0x40bd0d
40bee0:	68 94 3b 40 00       	push   $0x403b94
40bee5:	ff 36                	push   (%esi)
40bee7:	ff 15 28 f1 40 00    	call   *0x40f128
40beed:	59                   	pop    %ecx
40beee:	59                   	pop    %ecx
40beef:	85 c0                	test   %eax,%eax
40bef1:	0f 85 cb 01 00 00    	jne    0x40c0c2
40bef7:	c7 45 d0 50 45 d7 00 	movl   $0xd74550,-0x30(%ebp)
40befe:	e9 0a fe ff ff       	jmp    0x40bd0d
40bf03:	68 9c 43 40 00       	push   $0x40439c
40bf08:	ff 76 fc             	push   -0x4(%esi)
40bf0b:	ff 15 28 f1 40 00    	call   *0x40f128
40bf11:	59                   	pop    %ecx
40bf12:	59                   	pop    %ecx
40bf13:	85 c0                	test   %eax,%eax
40bf15:	75 12                	jne    0x40bf29
40bf17:	8b 45 0c             	mov    0xc(%ebp),%eax
40bf1a:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bf1d:	73 0a                	jae    0x40bf29
40bf1f:	8b 06                	mov    (%esi),%eax
40bf21:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40bf24:	e9 e4 fd ff ff       	jmp    0x40bd0d
40bf29:	68 94 11 40 00       	push   $0x401194
40bf2e:	ff 76 fc             	push   -0x4(%esi)
40bf31:	ff 15 28 f1 40 00    	call   *0x40f128
40bf37:	59                   	pop    %ecx
40bf38:	59                   	pop    %ecx
40bf39:	85 c0                	test   %eax,%eax
40bf3b:	75 12                	jne    0x40bf4f
40bf3d:	8b 45 0c             	mov    0xc(%ebp),%eax
40bf40:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bf43:	73 0a                	jae    0x40bf4f
40bf45:	8b 06                	mov    (%esi),%eax
40bf47:	89 45 a8             	mov    %eax,-0x58(%ebp)
40bf4a:	e9 be fd ff ff       	jmp    0x40bd0d
40bf4f:	68 b0 43 40 00       	push   $0x4043b0
40bf54:	ff 76 fc             	push   -0x4(%esi)
40bf57:	ff 15 28 f1 40 00    	call   *0x40f128
40bf5d:	59                   	pop    %ecx
40bf5e:	59                   	pop    %ecx
40bf5f:	85 c0                	test   %eax,%eax
40bf61:	75 2a                	jne    0x40bf8d
40bf63:	8b 45 0c             	mov    0xc(%ebp),%eax
40bf66:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bf69:	73 22                	jae    0x40bf8d
40bf6b:	68 bc 43 40 00       	push   $0x4043bc
40bf70:	ff 36                	push   (%esi)
40bf72:	ff 15 28 f1 40 00    	call   *0x40f128
40bf78:	59                   	pop    %ecx
40bf79:	59                   	pop    %ecx
40bf7a:	85 c0                	test   %eax,%eax
40bf7c:	0f 85 8b fd ff ff    	jne    0x40bd0d
40bf82:	8d 45 9c             	lea    -0x64(%ebp),%eax
40bf85:	89 45 b8             	mov    %eax,-0x48(%ebp)
40bf88:	e9 80 fd ff ff       	jmp    0x40bd0d
40bf8d:	68 c4 43 40 00       	push   $0x4043c4
40bf92:	ff 76 fc             	push   -0x4(%esi)
40bf95:	ff 15 28 f1 40 00    	call   *0x40f128
40bf9b:	59                   	pop    %ecx
40bf9c:	59                   	pop    %ecx
40bf9d:	85 c0                	test   %eax,%eax
40bf9f:	75 78                	jne    0x40c019
40bfa1:	8b 45 0c             	mov    0xc(%ebp),%eax
40bfa4:	39 45 dc             	cmp    %eax,-0x24(%ebp)
40bfa7:	73 70                	jae    0x40c019
40bfa9:	8b 06                	mov    (%esi),%eax
40bfab:	8b c8                	mov    %eax,%ecx
40bfad:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40bfb0:	8d 51 02             	lea    0x2(%ecx),%edx
40bfb3:	66 8b 01             	mov    (%ecx),%ax
40bfb6:	83 c1 02             	add    $0x2,%ecx
40bfb9:	66 3b c7             	cmp    %di,%ax
40bfbc:	75 f5                	jne    0x40bfb3
40bfbe:	2b ca                	sub    %edx,%ecx
40bfc0:	d1 f9                	sar    $1,%ecx
40bfc2:	8d 1c 4d 04 00 00 00 	lea    0x4(,%ecx,2),%ebx
40bfc9:	53                   	push   %ebx
40bfca:	6a 40                	push   $0x40
40bfcc:	ff 15 64 f0 40 00    	call   *0x40f064
40bfd2:	89 45 bc             	mov    %eax,-0x44(%ebp)
40bfd5:	85 c0                	test   %eax,%eax
40bfd7:	0f 84 f7 00 00 00    	je     0x40c0d4
40bfdd:	ff 75 d4             	push   -0x2c(%ebp)
40bfe0:	8b d3                	mov    %ebx,%edx
40bfe2:	8b c8                	mov    %eax,%ecx