40cd2e:	e8 3c 00 00 00       	call   0x40cd6f
40cd33:	8b 43 04             	mov    0x4(%ebx),%eax
40cd36:	8d 04 78             	lea    (%eax,%edi,2),%eax
40cd39:	89 43 04             	mov    %eax,0x4(%ebx)
40cd3c:	5e                   	pop    %esi
40cd3d:	5f                   	pop    %edi
40cd3e:	5b                   	pop    %ebx
40cd3f:	c9                   	leave
40cd40:	c2 10 00             	ret    $0x10
40cd43:	e8 02 a0 ff ff       	call   0x406d4a
40cd48:	cc                   	int3
40cd49:	8b ff                	mov    %edi,%edi
40cd4b:	55                   	push   %ebp
40cd4c:	8b ec                	mov    %esp,%ebp
40cd4e:	8b 45 08             	mov    0x8(%ebp),%eax
40cd51:	8b d1                	mov    %ecx,%edx
40cd53:	eb 0f                	jmp    0x40cd64
40cd55:	66 8b 08             	mov    (%eax),%cx
40cd58:	66 89 0a             	mov    %cx,(%edx)
40cd5b:	83 c2 02             	add    $0x2,%edx
40cd5e:	83 c0 02             	add    $0x2,%eax
40cd61:	89 45 08             	mov    %eax,0x8(%ebp)
40cd64:	3b 45 0c             	cmp    0xc(%ebp),%eax
40cd67:	75 ec                	jne    0x40cd55
40cd69:	8b c2                	mov    %edx,%eax
40cd6b:	5d                   	pop    %ebp
40cd6c:	c2 0c 00             	ret    $0xc
40cd6f:	8b ff                	mov    %edi,%edi
40cd71:	55                   	push   %ebp
40cd72:	8b ec                	mov    %esp,%ebp
40cd74:	83 ec 10             	sub    $0x10,%esp
40cd77:	53                   	push   %ebx
40cd78:	8b d9                	mov    %ecx,%ebx
40cd7a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40cd7d:	56                   	push   %esi
40cd7e:	57                   	push   %edi
40cd7f:	8b fa                	mov    %edx,%edi
40cd81:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40cd84:	2b cb                	sub    %ebx,%ecx
40cd86:	2b fb                	sub    %ebx,%edi
40cd88:	d1 f9                	sar    $1,%ecx
40cd8a:	d1 ff                	sar    $1,%edi
40cd8c:	8b f1                	mov    %ecx,%esi
40cd8e:	74 78                	je     0x40ce08
40cd90:	8b df                	mov    %edi,%ebx
40cd92:	8b c6                	mov    %esi,%eax
40cd94:	8b f3                	mov    %ebx,%esi
40cd96:	99                   	cltd
40cd97:	f7 fb                	idiv   %ebx
40cd99:	8b da                	mov    %edx,%ebx
40cd9b:	85 d2                	test   %edx,%edx
40cd9d:	75 f3                	jne    0x40cd92
40cd9f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40cda2:	89 75 f4             	mov    %esi,-0xc(%ebp)
40cda5:	3b f1                	cmp    %ecx,%esi
40cda7:	7d 5f                	jge    0x40ce08
40cda9:	85 f6                	test   %esi,%esi
40cdab:	7e 5b                	jle    0x40ce08
40cdad:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40cdb0:	8d 14 73             	lea    (%ebx,%esi,2),%edx
40cdb3:	8d 0c 02             	lea    (%edx,%eax,1),%ecx
40cdb6:	89 55 f8             	mov    %edx,-0x8(%ebp)
40cdb9:	3b 4d 08             	cmp    0x8(%ebp),%ecx
40cdbc:	75 03                	jne    0x40cdc1
40cdbe:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40cdc1:	0f b7 1a             	movzwl (%edx),%ebx
40cdc4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40cdc7:	8b 75 f8             	mov    -0x8(%ebp),%esi
40cdca:	66 8b 01             	mov    (%ecx),%ax
40cdcd:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40cdd0:	66 89 06             	mov    %ax,(%esi)
40cdd3:	8b 75 fc             	mov    -0x4(%ebp),%esi
40cdd6:	66 89 19             	mov    %bx,(%ecx)
40cdd9:	8b 5d 08             	mov    0x8(%ebp),%ebx
40cddc:	2b d9                	sub    %ecx,%ebx
40cdde:	d1 fb                	sar    $1,%ebx
40cde0:	3b fb                	cmp    %ebx,%edi
40cde2:	7d 05                	jge    0x40cde9
40cde4:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
40cde7:	eb 07                	jmp    0x40cdf0
40cde9:	8b c7                	mov    %edi,%eax
40cdeb:	2b c3                	sub    %ebx,%eax
40cded:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40cdf0:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40cdf3:	8d 04 3f             	lea    (%edi,%edi,1),%eax
40cdf6:	3b ca                	cmp    %edx,%ecx
40cdf8:	75 cd                	jne    0x40cdc7
40cdfa:	8b 75 f4             	mov    -0xc(%ebp),%esi
40cdfd:	83 ea 02             	sub    $0x2,%edx
40ce00:	4e                   	dec    %esi
40ce01:	89 75 f4             	mov    %esi,-0xc(%ebp)
40ce04:	85 f6                	test   %esi,%esi
40ce06:	7f ab                	jg     0x40cdb3
40ce08:	5f                   	pop    %edi
40ce09:	5e                   	pop    %esi
40ce0a:	5b                   	pop    %ebx
40ce0b:	c9                   	leave
40ce0c:	c2 0c 00             	ret    $0xc
40ce0f:	cc                   	int3
40ce10:	6a 29                	push   $0x29
40ce12:	e8 25 97 ff ff       	call   0x40653c
40ce17:	c3                   	ret
40ce18:	cc                   	int3
40ce19:	cc                   	int3
40ce1a:	cc                   	int3
40ce1b:	cc                   	int3
40ce1c:	cc                   	int3
40ce1d:	cc                   	int3
40ce1e:	cc                   	int3
40ce1f:	cc                   	int3
40ce20:	8b ff                	mov    %edi,%edi
40ce22:	56                   	push   %esi
40ce23:	8b f1                	mov    %ecx,%esi
40ce25:	6a 02                	push   $0x2
40ce27:	6a 02                	push   $0x2
40ce29:	8b 4e 08             	mov    0x8(%esi),%ecx
40ce2c:	e8 90 9d ff ff       	call   0x406bc1
40ce31:	8b 4e 08             	mov    0x8(%esi),%ecx
40ce34:	68 40 11 41 00       	push   $0x411140
40ce39:	e8 52 9c ff ff       	call   0x406a90
40ce3e:	8b 4e 08             	mov    0x8(%esi),%ecx
40ce41:	6a 01                	push   $0x1
40ce43:	e8 08 9c ff ff       	call   0x406a50
40ce48:	50                   	push   %eax
40ce49:	8d 4e 30             	lea    0x30(%esi),%ecx
40ce4c:	e8 50 96 ff ff       	call   0x4064a1
40ce51:	5e                   	pop    %esi
40ce52:	c3                   	ret
40ce53:	cc                   	int3
40ce54:	cc                   	int3
40ce55:	cc                   	int3
40ce56:	cc                   	int3
40ce57:	cc                   	int3
40ce58:	cc                   	int3
40ce59:	cc                   	int3
40ce5a:	cc                   	int3
40ce5b:	cc                   	int3
40ce5c:	cc                   	int3
40ce5d:	cc                   	int3
40ce5e:	cc                   	int3
40ce5f:	cc                   	int3
40ce60:	6a 2c                	push   $0x2c
40ce62:	b8 aa f4 40 00       	mov    $0x40f4aa,%eax
40ce67:	e8 e2 17 00 00       	call   0x40e64e
40ce6c:	8b d9                	mov    %ecx,%ebx
40ce6e:	6a 00                	push   $0x0
40ce70:	ff 15 1c 40 41 00    	call   *0x41401c
40ce76:	85 c0                	test   %eax,%eax
40ce78:	0f 88 55 02 00 00    	js     0x40d0d3
40ce7e:	a1 44 20 41 00       	mov    0x412044,%eax
40ce83:	33 c9                	xor    %ecx,%ecx
40ce85:	88 4d e0             	mov    %cl,-0x20(%ebp)
40ce88:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ce8b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40ce8e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40ce91:	8d 43 30             	lea    0x30(%ebx),%eax
40ce94:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40ce98:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40ce9c:	72 02                	jb     0x40cea0
40ce9e:	8b 00                	mov    (%eax),%eax
40cea0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40cea3:	51                   	push   %ecx
40cea4:	50                   	push   %eax
40cea5:	e8 bf de ff ff       	call   0x40ad69
40ceaa:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40ceae:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ceb1:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40ceb5:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40ceb8:	50                   	push   %eax
40ceb9:	e8 1d ad ff ff       	call   0x407bdb
40cebe:	85 c0                	test   %eax,%eax
40cec0:	79 07                	jns    0x40cec9
40cec2:	6a 07                	push   $0x7
40cec4:	e9 0c 02 00 00       	jmp    0x40d0d5
40cec9:	0f 85 fa 01 00 00    	jne    0x40d0c9
40cecf:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40ced3:	0f 84 f0 01 00 00    	je     0x40d0c9
40ced9:	ff 75 ec             	push   -0x14(%ebp)
40cedc:	ff 15 04 40 41 00    	call   *0x414004
40cee2:	85 c0                	test   %eax,%eax
40cee4:	0f 84 df 01 00 00    	je     0x40d0c9
40ceea:	ff 75 ec             	push   -0x14(%ebp)
40ceed:	8d 7b 18             	lea    0x18(%ebx),%edi
40cef0:	8b cf                	mov    %edi,%ecx
40cef2:	e8 aa 95 ff ff       	call   0x4064a1
40cef7:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
40cefb:	72 04                	jb     0x40cf01
40cefd:	8b 07                	mov    (%edi),%eax
40ceff:	eb 02                	jmp    0x40cf03
40cf01:	8b c7                	mov    %edi,%eax
40cf03:	6a 01                	push   $0x1
40cf05:	6a 03                	push   $0x3
40cf07:	50                   	push   %eax
40cf08:	ff 15 28 20 41 00    	call   *0x412028
40cf0e:	8b f0                	mov    %eax,%esi
40cf10:	85 f6                	test   %esi,%esi
40cf12:	75 1c                	jne    0x40cf30
40cf14:	ff 15 70 20 41 00    	call   *0x412070
40cf1a:	83 f8 50             	cmp    $0x50,%eax
40cf1d:	0f 84 ba 01 00 00    	je     0x40d0dd
40cf23:	ff 15 70 20 41 00    	call   *0x412070
40cf29:	6a 08                	push   $0x8
40cf2b:	e9 a5 01 00 00       	jmp    0x40d0d5
40cf30:	a1 30 20 41 00       	mov    0x412030,%eax
40cf35:	c6 45 c8 00          	movb   $0x0,-0x38(%ebp)
40cf39:	89 45 cc             	mov    %eax,-0x34(%ebp)
40cf3c:	89 75 d0             	mov    %esi,-0x30(%ebp)
40cf3f:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40cf43:	8b cb                	mov    %ebx,%ecx
40cf45:	ff 75 e8             	push   -0x18(%ebp)
40cf48:	56                   	push   %esi
40cf49:	e8 83 ef ff ff       	call   0x40bed1
40cf4e:	33 db                	xor    %ebx,%ebx
40cf50:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40cf53:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40cf56:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40cf59:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cf5c:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40cf60:	50                   	push   %eax
40cf61:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40cf64:	50                   	push   %eax
40cf65:	51                   	push   %ecx
40cf66:	6a 1b                	push   $0x1b
40cf68:	5a                   	pop    %edx
40cf69:	8b ce                	mov    %esi,%ecx
40cf6b:	e8 f5 b0 ff ff       	call   0x408065
40cf70:	85 c0                	test   %eax,%eax
40cf72:	74 0c                	je     0x40cf80
40cf74:	68 f8 26 40 00       	push   $0x4026f8
40cf79:	6a 0e                	push   $0xe
40cf7b:	e9 6d 01 00 00       	jmp    0x40d0ed
40cf80:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40cf83:	8b 41 0c             	mov    0xc(%ecx),%eax
40cf86:	85 c0                	test   %eax,%eax
40cf88:	0f 84 d3 00 00 00    	je     0x40d061
40cf8e:	83 f8 02             	cmp    $0x2,%eax
40cf91:	74 0e                	je     0x40cfa1
40cf93:	68 f8 26 40 00       	push   $0x4026f8
40cf98:	6a 0e                	push   $0xe
40cf9a:	6a 0d                	push   $0xd
40cf9c:	e9 4d 01 00 00       	jmp    0x40d0ee
40cfa1:	85 c0                	test   %eax,%eax
40cfa3:	0f 84 b8 00 00 00    	je     0x40d061
40cfa9:	83 39 00             	cmpl   $0x0,(%ecx)
40cfac:	0f 85 af 00 00 00    	jne    0x40d061
40cfb2:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cfb5:	50                   	push   %eax
40cfb6:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40cfb9:	50                   	push   %eax
40cfba:	51                   	push   %ecx
40cfbb:	6a 1c                	push   $0x1c
40cfbd:	5a                   	pop    %edx
40cfbe:	8b ce                	mov    %esi,%ecx
40cfc0:	e8 a0 b0 ff ff       	call   0x408065
40cfc5:	85 c0                	test   %eax,%eax
40cfc7:	0f 85 94 00 00 00    	jne    0x40d061
40cfcd:	8b 45 f0             	mov    -0x10(%ebp),%eax
40cfd0:	39 58 0c             	cmp    %ebx,0xc(%eax)
40cfd3:	0f 85 88 00 00 00    	jne    0x40d061
40cfd9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cfdc:	50                   	push   %eax
40cfdd:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40cfe0:	50                   	push   %eax
40cfe1:	51                   	push   %ecx
40cfe2:	6a 1d                	push   $0x1d
40cfe4:	5a                   	pop    %edx
40cfe5:	8b ce                	mov    %esi,%ecx
40cfe7:	e8 79 b0 ff ff       	call   0x408065
40cfec:	85 c0                	test   %eax,%eax
40cfee:	75 71                	jne    0x40d061
40cff0:	8b 45 f0             	mov    -0x10(%ebp),%eax
40cff3:	39 58 0c             	cmp    %ebx,0xc(%eax)
40cff6:	75 69                	jne    0x40d061
40cff8:	8d 45 f0             	lea    -0x10(%ebp),%eax
40cffb:	50                   	push   %eax
40cffc:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40cfff:	50                   	push   %eax
40d000:	51                   	push   %ecx
40d001:	6a 1e                	push   $0x1e
40d003:	5a                   	pop    %edx
40d004:	8b ce                	mov    %esi,%ecx
40d006:	e8 5a b0 ff ff       	call   0x408065
40d00b:	85 c0                	test   %eax,%eax
40d00d:	75 52                	jne    0x40d061
40d00f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d012:	39 58 0c             	cmp    %ebx,0xc(%eax)
40d015:	75 4a                	jne    0x40d061
40d017:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d01a:	50                   	push   %eax
40d01b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40d01e:	50                   	push   %eax
40d01f:	51                   	push   %ecx
40d020:	6a 1f                	push   $0x1f
40d022:	5a                   	pop    %edx
40d023:	8b ce                	mov    %esi,%ecx
40d025:	e8 3b b0 ff ff       	call   0x408065
40d02a:	85 c0                	test   %eax,%eax
40d02c:	75 33                	jne    0x40d061
40d02e:	8b 45 f0             	mov    -0x10(%ebp),%eax
40d031:	39 58 0c             	cmp    %ebx,0xc(%eax)
40d034:	75 2b                	jne    0x40d061
40d036:	50                   	push   %eax
40d037:	53                   	push   %ebx
40d038:	89 58 08             	mov    %ebx,0x8(%eax)
40d03b:	6a 1f                	push   $0x1f
40d03d:	c7 00 10 46 40 00    	movl   $0x404610,(%eax)
40d043:	56                   	push   %esi
40d044:	c7 40 0c 04 00 00 00 	movl   $0x4,0xc(%eax)
40d04b:	ff 15 18 20 41 00    	call   *0x412018
40d051:	85 c0                	test   %eax,%eax
40d053:	75 0c                	jne    0x40d061
40d055:	68 cc 2d 40 00       	push   $0x402dcc
40d05a:	6a 0f                	push   $0xf
40d05c:	e9 86 00 00 00       	jmp    0x40d0e7
40d061:	53                   	push   %ebx
40d062:	56                   	push   %esi
40d063:	ff 15 08 20 41 00    	call   *0x412008
40d069:	85 c0                	test   %eax,%eax
40d06b:	75 18                	jne    0x40d085
40d06d:	ff 15 70 20 41 00    	call   *0x412070
40d073:	b9 e8 3a 00 00       	mov    $0x3ae8,%ecx
40d078:	3b c1                	cmp    %ecx,%eax
40d07a:	75 05                	jne    0x40d081
40d07c:	6a 0a                	push   $0xa
40d07e:	5a                   	pop    %edx
40d07f:	eb 57                	jmp    0x40d0d8
40d081:	6a 09                	push   $0x9
40d083:	eb 50                	jmp    0x40d0d5
40d085:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40d088:	e8 8a 8e ff ff       	call   0x405f17
40d08d:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40d090:	e8 ce 8d ff ff       	call   0x405e63
40d095:	ff 75 ec             	push   -0x14(%ebp)
40d098:	ff 15 0c 40 41 00    	call   *0x41400c
40d09e:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40d0a2:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d0a5:	85 c0                	test   %eax,%eax
40d0a7:	74 10                	je     0x40d0b9
40d0a9:	8b 08                	mov    (%eax),%ecx
40d0ab:	50                   	push   %eax
40d0ac:	8b 71 08             	mov    0x8(%ecx),%esi
40d0af:	8b ce                	mov    %esi,%ecx
40d0b1:	ff 15 10 22 41 00    	call   *0x412210
40d0b7:	ff d6                	call   *%esi
40d0b9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40d0bd:	ff 15 44 20 41 00    	call   *0x412044
40d0c3:	e8 54 15 00 00       	call   0x40e61c
40d0c8:	c3                   	ret
40d0c9:	6a 07                	push   $0x7
40d0cb:	5a                   	pop    %edx