405e17:	68 c8 00 00 00       	push   $0xc8
405e1c:	50                   	push   %eax
405e1d:	ff 76 14             	push   0x14(%esi)
405e20:	ff 15 04 81 40 00    	call   *0x408104
405e26:	85 c0                	test   %eax,%eax
405e28:	75 57                	jne    0x405e81
405e2a:	ff b5 58 fc ff ff    	push   -0x3a8(%ebp)
405e30:	50                   	push   %eax
405e31:	ff 76 14             	push   0x14(%esi)
405e34:	8d 85 14 fc ff ff    	lea    -0x3ec(%ebp),%eax
405e3a:	50                   	push   %eax
405e3b:	8d 85 1c fc ff ff    	lea    -0x3e4(%ebp),%eax
405e41:	50                   	push   %eax
405e42:	ff 15 30 81 40 00    	call   *0x408130
405e48:	85 c0                	test   %eax,%eax
405e4a:	75 35                	jne    0x405e81
405e4c:	f6 85 1c fc ff ff 01 	testb  $0x1,-0x3e4(%ebp)
405e53:	75 3f                	jne    0x405e94
405e55:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
405e5b:	50                   	push   %eax
405e5c:	68 10 14 40 00       	push   $0x401410
405e61:	ff 15 bc 81 40 00    	call   *0x4081bc
405e67:	59                   	pop    %ecx
405e68:	59                   	pop    %ecx
405e69:	68 a5 f0 00 00       	push   $0xf0a5
405e6e:	6a 01                	push   $0x1
405e70:	e8 04 10 00 00       	call   0x406e79
405e75:	59                   	pop    %ecx
405e76:	50                   	push   %eax
405e77:	e8 61 bb ff ff       	call   0x4019dd
405e7c:	ff 43 0c             	incl   0xc(%ebx)
405e7f:	59                   	pop    %ecx
405e80:	59                   	pop    %ecx
405e81:	33 c0                	xor    %eax,%eax
405e83:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405e86:	5f                   	pop    %edi
405e87:	5e                   	pop    %esi
405e88:	33 cd                	xor    %ebp,%ecx
405e8a:	5b                   	pop    %ebx
405e8b:	e8 50 0a 00 00       	call   0x4068e0
405e90:	c9                   	leave
405e91:	c2 10 00             	ret    $0x10
405e94:	ff 73 08             	push   0x8(%ebx)
405e97:	8b 8d 20 fc ff ff    	mov    -0x3e0(%ebp),%ecx
405e9d:	8b d6                	mov    %esi,%edx
405e9f:	e8 0a bf ff ff       	call   0x401dae
405ea4:	8b f0                	mov    %eax,%esi
405ea6:	85 f6                	test   %esi,%esi
405ea8:	75 11                	jne    0x405ebb
405eaa:	33 c9                	xor    %ecx,%ecx
405eac:	e8 f9 bd ff ff       	call   0x401caa
405eb1:	8b f0                	mov    %eax,%esi
405eb3:	85 f6                	test   %esi,%esi
405eb5:	75 04                	jne    0x405ebb
405eb7:	8b c7                	mov    %edi,%eax
405eb9:	eb c8                	jmp    0x405e83
405ebb:	33 c0                	xor    %eax,%eax
405ebd:	83 c9 ff             	or     $0xffffffff,%ecx
405ec0:	8b d0                	mov    %eax,%edx
405ec2:	89 8d 40 fc ff ff    	mov    %ecx,-0x3c0(%ebp)
405ec8:	89 95 24 fc ff ff    	mov    %edx,-0x3dc(%ebp)
405ece:	39 03                	cmp    %eax,(%ebx)
405ed0:	0f 8e 60 02 00 00    	jle    0x406136
405ed6:	eb 02                	jmp    0x405eda
405ed8:	8b d8                	mov    %eax,%ebx
405eda:	8b 43 04             	mov    0x4(%ebx),%eax
405edd:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
405ee0:	0f b7 03             	movzwl (%ebx),%eax
405ee3:	83 f8 3d             	cmp    $0x3d,%eax
405ee6:	75 06                	jne    0x405eee
405ee8:	33 c9                	xor    %ecx,%ecx
405eea:	89 0e                	mov    %ecx,(%esi)
405eec:	eb 1b                	jmp    0x405f09
405eee:	83 f8 2b             	cmp    $0x2b,%eax
405ef1:	75 04                	jne    0x405ef7
405ef3:	33 c9                	xor    %ecx,%ecx
405ef5:	eb 12                	jmp    0x405f09
405ef7:	83 f8 2d             	cmp    $0x2d,%eax
405efa:	75 05                	jne    0x405f01
405efc:	83 c9 ff             	or     $0xffffffff,%ecx
405eff:	eb 08                	jmp    0x405f09
405f01:	83 f8 21             	cmp    $0x21,%eax
405f04:	75 0b                	jne    0x405f11
405f06:	6a fe                	push   $0xfffffffe
405f08:	59                   	pop    %ecx
405f09:	03 df                	add    %edi,%ebx
405f0b:	89 8d 40 fc ff ff    	mov    %ecx,-0x3c0(%ebp)
405f11:	33 d2                	xor    %edx,%edx
405f13:	66 39 13             	cmp    %dx,(%ebx)
405f16:	0f 84 0d 02 00 00    	je     0x406129
405f1c:	8b c2                	mov    %edx,%eax
405f1e:	89 95 2c fc ff ff    	mov    %edx,-0x3d4(%ebp)
405f24:	39 16                	cmp    %edx,(%esi)
405f26:	74 0c                	je     0x405f34
405f28:	40                   	inc    %eax
405f29:	39 14 86             	cmp    %edx,(%esi,%eax,4)
405f2c:	75 fa                	jne    0x405f28
405f2e:	89 85 2c fc ff ff    	mov    %eax,-0x3d4(%ebp)
405f34:	83 f9 ff             	cmp    $0xffffffff,%ecx
405f37:	74 04                	je     0x405f3d
405f39:	3b c8                	cmp    %eax,%ecx
405f3b:	7e 06                	jle    0x405f43
405f3d:	89 85 40 fc ff ff    	mov    %eax,-0x3c0(%ebp)
405f43:	33 c9                	xor    %ecx,%ecx
405f45:	83 c0 02             	add    $0x2,%eax
405f48:	6a 04                	push   $0x4
405f4a:	5a                   	pop    %edx
405f4b:	f7 e2                	mul    %edx
405f4d:	0f 90 c1             	seto   %cl
405f50:	f7 d9                	neg    %ecx
405f52:	0b c8                	or     %eax,%ecx
405f54:	51                   	push   %ecx
405f55:	e8 64 06 00 00       	call   0x4065be
405f5a:	89 85 34 fc ff ff    	mov    %eax,-0x3cc(%ebp)
405f60:	59                   	pop    %ecx
405f61:	85 c0                	test   %eax,%eax
405f63:	0f 84 37 02 00 00    	je     0x4061a0
405f69:	33 c0                	xor    %eax,%eax
405f6b:	8b c8                	mov    %eax,%ecx
405f6d:	89 85 38 fc ff ff    	mov    %eax,-0x3c8(%ebp)
405f73:	8b 85 40 fc ff ff    	mov    -0x3c0(%ebp),%eax
405f79:	89 8d 3c fc ff ff    	mov    %ecx,-0x3c4(%ebp)
405f7f:	85 c0                	test   %eax,%eax
405f81:	7e 47                	jle    0x405fca
405f83:	8b f8                	mov    %eax,%edi
405f85:	53                   	push   %ebx
405f86:	ff 34 8e             	push   (%esi,%ecx,4)
405f89:	ff 15 dc 81 40 00    	call   *0x4081dc
405f8f:	8b 95 38 fc ff ff    	mov    -0x3c8(%ebp),%edx
405f95:	59                   	pop    %ecx
405f96:	59                   	pop    %ecx
405f97:	8b 8d 3c fc ff ff    	mov    -0x3c4(%ebp),%ecx
405f9d:	85 c0                	test   %eax,%eax
405f9f:	74 19                	je     0x405fba
405fa1:	8b bd 34 fc ff ff    	mov    -0x3cc(%ebp),%edi
405fa7:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
405faa:	89 04 97             	mov    %eax,(%edi,%edx,4)
405fad:	42                   	inc    %edx
405fae:	8b bd 40 fc ff ff    	mov    -0x3c0(%ebp),%edi
405fb4:	89 95 38 fc ff ff    	mov    %edx,-0x3c8(%ebp)
405fba:	41                   	inc    %ecx
405fbb:	89 8d 3c fc ff ff    	mov    %ecx,-0x3c4(%ebp)
405fc1:	3b cf                	cmp    %edi,%ecx
405fc3:	7c c0                	jl     0x405f85
405fc5:	6a 02                	push   $0x2
405fc7:	5f                   	pop    %edi
405fc8:	eb 14                	jmp    0x405fde
405fca:	33 c9                	xor    %ecx,%ecx
405fcc:	89 8d 38 fc ff ff    	mov    %ecx,-0x3c8(%ebp)
405fd2:	8b d1                	mov    %ecx,%edx
405fd4:	89 8d 3c fc ff ff    	mov    %ecx,-0x3c4(%ebp)
405fda:	85 c0                	test   %eax,%eax
405fdc:	78 10                	js     0x405fee
405fde:	8b 85 34 fc ff ff    	mov    -0x3cc(%ebp),%eax
405fe4:	89 1c 90             	mov    %ebx,(%eax,%edx,4)
405fe7:	42                   	inc    %edx
405fe8:	89 95 38 fc ff ff    	mov    %edx,-0x3c8(%ebp)
405fee:	3b 8d 2c fc ff ff    	cmp    -0x3d4(%ebp),%ecx
405ff4:	7d 49                	jge    0x40603f
405ff6:	8b bd 2c fc ff ff    	mov    -0x3d4(%ebp),%edi
405ffc:	53                   	push   %ebx
405ffd:	ff 34 8e             	push   (%esi,%ecx,4)
406000:	ff 15 dc 81 40 00    	call   *0x4081dc
406006:	8b 95 38 fc ff ff    	mov    -0x3c8(%ebp),%edx
40600c:	59                   	pop    %ecx
40600d:	59                   	pop    %ecx
40600e:	8b 8d 3c fc ff ff    	mov    -0x3c4(%ebp),%ecx
406014:	85 c0                	test   %eax,%eax
406016:	74 19                	je     0x406031
406018:	8b bd 34 fc ff ff    	mov    -0x3cc(%ebp),%edi
40601e:	8b 04 8e             	mov    (%esi,%ecx,4),%eax
406021:	89 04 97             	mov    %eax,(%edi,%edx,4)
406024:	42                   	inc    %edx
406025:	8b bd 2c fc ff ff    	mov    -0x3d4(%ebp),%edi
40602b:	89 95 38 fc ff ff    	mov    %edx,-0x3c8(%ebp)
406031:	41                   	inc    %ecx
406032:	89 8d 3c fc ff ff    	mov    %ecx,-0x3c4(%ebp)
406038:	3b cf                	cmp    %edi,%ecx
40603a:	7c c0                	jl     0x405ffc
40603c:	6a 02                	push   $0x2
40603e:	5f                   	pop    %edi
40603f:	8b 9d 34 fc ff ff    	mov    -0x3cc(%ebp),%ebx
406045:	33 c0                	xor    %eax,%eax
406047:	8b cb                	mov    %ebx,%ecx
406049:	89 04 93             	mov    %eax,(%ebx,%edx,4)
40604c:	e8 59 bc ff ff       	call   0x401caa
406051:	53                   	push   %ebx
406052:	89 85 34 fc ff ff    	mov    %eax,-0x3cc(%ebp)
406058:	e8 90 05 00 00       	call   0x4065ed
40605d:	8b 9d 34 fc ff ff    	mov    -0x3cc(%ebp),%ebx
406063:	59                   	pop    %ecx
406064:	85 db                	test   %ebx,%ebx
406066:	0f 84 34 01 00 00    	je     0x4061a0
40606c:	8b ce                	mov    %esi,%ecx
40606e:	e8 13 bd ff ff       	call   0x401d86
406073:	8b 8d 40 fc ff ff    	mov    -0x3c0(%ebp),%ecx
406079:	8b f3                	mov    %ebx,%esi
40607b:	8b 95 24 fc ff ff    	mov    -0x3dc(%ebp),%edx
406081:	41                   	inc    %ecx
406082:	8b 85 28 fc ff ff    	mov    -0x3d8(%ebp),%eax
406088:	42                   	inc    %edx
406089:	89 8d 40 fc ff ff    	mov    %ecx,-0x3c0(%ebp)
40608f:	89 95 24 fc ff ff    	mov    %edx,-0x3dc(%ebp)
406095:	3b 10                	cmp    (%eax),%edx
406097:	0f 8c 3b fe ff ff    	jl     0x405ed8
40609d:	33 d2                	xor    %edx,%edx
40609f:	39 13                	cmp    %edx,(%ebx)
4060a1:	74 67                	je     0x40610a
4060a3:	8b 43 fc             	mov    -0x4(%ebx),%eax
4060a6:	8b c8                	mov    %eax,%ecx
4060a8:	89 85 24 fc ff ff    	mov    %eax,-0x3dc(%ebp)
4060ae:	66 39 10             	cmp    %dx,(%eax)
4060b1:	74 2a                	je     0x4060dd
4060b3:	8b d1                	mov    %ecx,%edx
4060b5:	8d 5a 02             	lea    0x2(%edx),%ebx
4060b8:	66 8b 02             	mov    (%edx),%ax
4060bb:	03 d7                	add    %edi,%edx
4060bd:	66 3b 85 18 fc ff ff 	cmp    -0x3e8(%ebp),%ax
4060c4:	75 f2                	jne    0x4060b8
4060c6:	2b d3                	sub    %ebx,%edx
4060c8:	33 c0                	xor    %eax,%eax
4060ca:	d1 fa                	sar    $1,%edx
4060cc:	8d 0c 51             	lea    (%ecx,%edx,2),%ecx
4060cf:	83 c1 02             	add    $0x2,%ecx
4060d2:	66 39 01             	cmp    %ax,(%ecx)
4060d5:	75 dc                	jne    0x4060b3
4060d7:	8b 85 24 fc ff ff    	mov    -0x3dc(%ebp),%eax
4060dd:	8b 9d 28 fc ff ff    	mov    -0x3d8(%ebp),%ebx
4060e3:	2b c8                	sub    %eax,%ecx
4060e5:	03 cf                	add    %edi,%ecx
4060e7:	83 e1 fe             	and    $0xfffffffe,%ecx
4060ea:	51                   	push   %ecx
4060eb:	50                   	push   %eax
4060ec:	ff 73 08             	push   0x8(%ebx)
4060ef:	ff b5 30 fc ff ff    	push   -0x3d0(%ebp)
4060f5:	ff b5 20 fc ff ff    	push   -0x3e0(%ebp)
4060fb:	ff 15 c0 80 40 00    	call   *0x4080c0
406101:	85 c0                	test   %eax,%eax
406103:	75 2f                	jne    0x406134
406105:	e9 96 00 00 00       	jmp    0x4061a0
40610a:	52                   	push   %edx
40610b:	52                   	push   %edx
40610c:	ff 70 08             	push   0x8(%eax)
40610f:	8b f3                	mov    %ebx,%esi
406111:	ff b5 30 fc ff ff    	push   -0x3d0(%ebp)
406117:	ff b5 20 fc ff ff    	push   -0x3e0(%ebp)
40611d:	ff 15 c0 80 40 00    	call   *0x4080c0
406123:	85 c0                	test   %eax,%eax
406125:	75 07                	jne    0x40612e
406127:	eb 7f                	jmp    0x4061a8
406129:	6a 03                	push   $0x3
40612b:	5f                   	pop    %edi
40612c:	eb 72                	jmp    0x4061a0
40612e:	8b 9d 28 fc ff ff    	mov    -0x3d8(%ebp),%ebx
406134:	33 c0                	xor    %eax,%eax
406136:	ff 43 10             	incl   0x10(%ebx)
406139:	8b f8                	mov    %eax,%edi
40613b:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
406141:	50                   	push   %eax
406142:	68 10 14 40 00       	push   $0x401410
406147:	ff 15 bc 81 40 00    	call   *0x4081bc
40614d:	33 c0                	xor    %eax,%eax
40614f:	8b d8                	mov    %eax,%ebx
406151:	59                   	pop    %ecx
406152:	59                   	pop    %ecx
406153:	39 06                	cmp    %eax,(%esi)
406155:	74 3d                	je     0x406194
406157:	8b c6                	mov    %esi,%eax
406159:	89 b5 30 fc ff ff    	mov    %esi,-0x3d0(%ebp)
40615f:	85 db                	test   %ebx,%ebx
406161:	7e 12                	jle    0x406175
406163:	68 20 14 40 00       	push   $0x401420
406168:	ff 15 bc 81 40 00    	call   *0x4081bc
40616e:	8b 85 30 fc ff ff    	mov    -0x3d0(%ebp),%eax
406174:	59                   	pop    %ecx
406175:	ff 30                	push   (%eax)
406177:	68 24 14 40 00       	push   $0x401424
40617c:	ff 15 bc 81 40 00    	call   *0x4081bc
406182:	43                   	inc    %ebx
406183:	59                   	pop    %ecx
406184:	59                   	pop    %ecx
406185:	33 c9                	xor    %ecx,%ecx
406187:	8d 04 9e             	lea    (%esi,%ebx,4),%eax
40618a:	89 85 30 fc ff ff    	mov    %eax,-0x3d0(%ebp)
406190:	39 08                	cmp    %ecx,(%eax)
406192:	75 cb                	jne    0x40615f
406194:	68 2c 14 40 00       	push   $0x40142c
406199:	ff 15 bc 81 40 00    	call   *0x4081bc
40619f:	59                   	pop    %ecx
4061a0:	85 f6                	test   %esi,%esi
4061a2:	0f 84 0f fd ff ff    	je     0x405eb7
4061a8:	8b ce                	mov    %esi,%ecx
4061aa:	e8 d7 bb ff ff       	call   0x401d86
4061af:	e9 03 fd ff ff       	jmp    0x405eb7
4061b4:	cc                   	int3
4061b5:	cc                   	int3
4061b6:	cc                   	int3
4061b7:	cc                   	int3
4061b8:	cc                   	int3
4061b9:	cc                   	int3
4061ba:	cc                   	int3
4061bb:	cc                   	int3
4061bc:	cc                   	int3
4061bd:	cc                   	int3
4061be:	cc                   	int3
4061bf:	cc                   	int3
4061c0:	8b ff                	mov    %edi,%edi
4061c2:	55                   	push   %ebp
4061c3:	8b ec                	mov    %esp,%ebp
4061c5:	83 ec 14             	sub    $0x14,%esp
4061c8:	53                   	push   %ebx
4061c9:	56                   	push   %esi
4061ca:	57                   	push   %edi
4061cb:	8b 7d 14             	mov    0x14(%ebp),%edi
4061ce:	33 f6                	xor    %esi,%esi
4061d0:	85 ff                	test   %edi,%edi
4061d2:	7e 20                	jle    0x4061f4
4061d4:	8b 45 18             	mov    0x18(%ebp),%eax
4061d7:	68 b0 11 40 00       	push   $0x4011b0
4061dc:	ff 30                	push   (%eax)
4061de:	8d 58 04             	lea    0x4(%eax),%ebx
4061e1:	ff 15 dc 81 40 00    	call   *0x4081dc
4061e7:	59                   	pop    %ecx
4061e8:	59                   	pop    %ecx
4061e9:	85 c0                	test   %eax,%eax
4061eb:	74 11                	je     0x4061fe
4061ed:	46                   	inc    %esi
4061ee:	8b c3                	mov    %ebx,%eax
4061f0:	3b f7                	cmp    %edi,%esi
4061f2:	7c e3                	jl     0x4061d7
4061f4:	6a 03                	push   $0x3
4061f6:	58                   	pop    %eax
4061f7:	5f                   	pop    %edi
4061f8:	5e                   	pop    %esi
4061f9:	5b                   	pop    %ebx
4061fa:	c9                   	leave
4061fb:	c2 14 00             	ret    $0x14
4061fe:	2b fe                	sub    %esi,%edi
406200:	89 5d f0             	mov    %ebx,-0x10(%ebp)
406203:	4f                   	dec    %edi
406204:	89 7d ec             	mov    %edi,-0x14(%ebp)
406207:	85 f6                	test   %esi,%esi
406209:	74 e9                	je     0x4061f4
40620b:	85 ff                	test   %edi,%edi
40620d:	74 e5                	je     0x4061f4
40620f:	8b 55 0c             	mov    0xc(%ebp),%edx
406212:	8d 45 ec             	lea    -0x14(%ebp),%eax
406215:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
406219:	33 ff                	xor    %edi,%edi
40621b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)