405c53:	e8 52 c0 ff ff       	call   0x401caa
405c58:	89 45 cc             	mov    %eax,-0x34(%ebp)
405c5b:	85 c0                	test   %eax,%eax
405c5d:	0f 84 08 01 00 00    	je     0x405d6b
405c63:	8b ce                	mov    %esi,%ecx
405c65:	e8 1c c1 ff ff       	call   0x401d86
405c6a:	8b 75 cc             	mov    -0x34(%ebp),%esi
405c6d:	33 c0                	xor    %eax,%eax
405c6f:	8b c8                	mov    %eax,%ecx
405c71:	c6 45 eb 01          	movb   $0x1,-0x15(%ebp)
405c75:	89 75 d0             	mov    %esi,-0x30(%ebp)
405c78:	8b 55 c4             	mov    -0x3c(%ebp),%edx
405c7b:	42                   	inc    %edx
405c7c:	89 55 c4             	mov    %edx,-0x3c(%ebp)
405c7f:	3b 55 14             	cmp    0x14(%ebp),%edx
405c82:	0f 8c c5 fd ff ff    	jl     0x405a4d
405c88:	eb 0b                	jmp    0x405c95
405c8a:	6a 03                	push   $0x3
405c8c:	5b                   	pop    %ebx
405c8d:	e9 d9 00 00 00       	jmp    0x405d6b
405c92:	6a 03                	push   $0x3
405c94:	5b                   	pop    %ebx
405c95:	80 7d eb 00          	cmpb   $0x0,-0x15(%ebp)
405c99:	0f 84 a9 00 00 00    	je     0x405d48
405c9f:	33 c0                	xor    %eax,%eax
405ca1:	39 06                	cmp    %eax,(%esi)
405ca3:	74 76                	je     0x405d1b
405ca5:	8b 7e fc             	mov    -0x4(%esi),%edi
405ca8:	8b cf                	mov    %edi,%ecx
405caa:	66 39 07             	cmp    %ax,(%edi)
405cad:	74 2a                	je     0x405cd9
405caf:	33 f6                	xor    %esi,%esi
405cb1:	8b d1                	mov    %ecx,%edx
405cb3:	8d 42 02             	lea    0x2(%edx),%eax
405cb6:	89 45 cc             	mov    %eax,-0x34(%ebp)
405cb9:	66 8b 02             	mov    (%edx),%ax
405cbc:	83 c2 02             	add    $0x2,%edx
405cbf:	66 3b c6             	cmp    %si,%ax
405cc2:	75 f5                	jne    0x405cb9
405cc4:	2b 55 cc             	sub    -0x34(%ebp),%edx
405cc7:	d1 fa                	sar    $1,%edx
405cc9:	8d 0c 51             	lea    (%ecx,%edx,2),%ecx
405ccc:	83 c1 02             	add    $0x2,%ecx
405ccf:	66 39 31             	cmp    %si,(%ecx)
405cd2:	75 dd                	jne    0x405cb1
405cd4:	8b 75 d0             	mov    -0x30(%ebp),%esi
405cd7:	33 c0                	xor    %eax,%eax
405cd9:	2b cf                	sub    %edi,%ecx
405cdb:	83 c1 02             	add    $0x2,%ecx
405cde:	83 e1 fe             	and    $0xfffffffe,%ecx
405ce1:	51                   	push   %ecx
405ce2:	57                   	push   %edi
405ce3:	8b 7d e4             	mov    -0x1c(%ebp),%edi
405ce6:	6a 07                	push   $0x7
405ce8:	50                   	push   %eax
405ce9:	ff 75 c0             	push   -0x40(%ebp)
405cec:	57                   	push   %edi
405ced:	ff 15 20 80 40 00    	call   *0x408020
405cf3:	85 c0                	test   %eax,%eax
405cf5:	75 77                	jne    0x405d6e
405cf7:	68 3e f0 00 00       	push   $0xf03e
405cfc:	6a 01                	push   $0x1
405cfe:	e8 76 11 00 00       	call   0x406e79
405d03:	59                   	pop    %ecx
405d04:	50                   	push   %eax
405d05:	e8 d3 bc ff ff       	call   0x4019dd
405d0a:	59                   	pop    %ecx
405d0b:	59                   	pop    %ecx
405d0c:	33 c9                	xor    %ecx,%ecx
405d0e:	8b d6                	mov    %esi,%edx
405d10:	41                   	inc    %ecx
405d11:	e8 23 d8 ff ff       	call   0x403539
405d16:	33 db                	xor    %ebx,%ebx
405d18:	43                   	inc    %ebx
405d19:	eb 53                	jmp    0x405d6e
405d1b:	ff 75 c0             	push   -0x40(%ebp)
405d1e:	8b 7d e4             	mov    -0x1c(%ebp),%edi
405d21:	57                   	push   %edi
405d22:	ff 15 1c 80 40 00    	call   *0x40801c
405d28:	85 c0                	test   %eax,%eax
405d2a:	74 05                	je     0x405d31
405d2c:	83 f8 02             	cmp    $0x2,%eax
405d2f:	75 3d                	jne    0x405d6e
405d31:	68 3e f0 00 00       	push   $0xf03e
405d36:	6a 01                	push   $0x1
405d38:	e8 3c 11 00 00       	call   0x406e79
405d3d:	59                   	pop    %ecx
405d3e:	50                   	push   %eax
405d3f:	e8 99 bc ff ff       	call   0x4019dd
405d44:	59                   	pop    %ecx
405d45:	59                   	pop    %ecx
405d46:	eb ce                	jmp    0x405d16
405d48:	68 3f f0 00 00       	push   $0xf03f
405d4d:	6a 01                	push   $0x1
405d4f:	e8 25 11 00 00       	call   0x406e79
405d54:	59                   	pop    %ecx
405d55:	50                   	push   %eax
405d56:	e8 82 bc ff ff       	call   0x4019dd
405d5b:	59                   	pop    %ecx
405d5c:	59                   	pop    %ecx
405d5d:	33 c9                	xor    %ecx,%ecx
405d5f:	8b d6                	mov    %esi,%edx
405d61:	41                   	inc    %ecx
405d62:	e8 d2 d7 ff ff       	call   0x403539
405d67:	33 c0                	xor    %eax,%eax
405d69:	8b d8                	mov    %eax,%ebx
405d6b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
405d6e:	85 f6                	test   %esi,%esi
405d70:	74 0c                	je     0x405d7e
405d72:	8b ce                	mov    %esi,%ecx
405d74:	e8 0d c0 ff ff       	call   0x401d86
405d79:	eb 03                	jmp    0x405d7e
405d7b:	8b 7d e4             	mov    -0x1c(%ebp),%edi
405d7e:	57                   	push   %edi
405d7f:	ff 15 14 80 40 00    	call   *0x408014
405d85:	eb 03                	jmp    0x405d8a
405d87:	6a 03                	push   $0x3
405d89:	5b                   	pop    %ebx
405d8a:	8b c3                	mov    %ebx,%eax
405d8c:	eb 03                	jmp    0x405d91
405d8e:	6a 03                	push   $0x3
405d90:	58                   	pop    %eax
405d91:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405d94:	5f                   	pop    %edi
405d95:	5e                   	pop    %esi
405d96:	33 cd                	xor    %ebp,%ecx
405d98:	5b                   	pop    %ebx
405d99:	e8 42 0b 00 00       	call   0x4068e0
405d9e:	c9                   	leave
405d9f:	c2 14 00             	ret    $0x14
405da2:	cc                   	int3
405da3:	cc                   	int3
405da4:	cc                   	int3
405da5:	cc                   	int3
405da6:	cc                   	int3
405da7:	cc                   	int3
405da8:	cc                   	int3
405da9:	cc                   	int3
405daa:	cc                   	int3
405dab:	cc                   	int3
405dac:	cc                   	int3
405dad:	cc                   	int3
405dae:	cc                   	int3
405daf:	cc                   	int3
405db0:	8b ff                	mov    %edi,%edi
405db2:	55                   	push   %ebp
405db3:	8b ec                	mov    %esp,%ebp
405db5:	81 ec ec 03 00 00    	sub    $0x3ec,%esp
405dbb:	a1 b4 71 40 00       	mov    0x4071b4,%eax
405dc0:	33 c5                	xor    %ebp,%eax
405dc2:	89 45 fc             	mov    %eax,-0x4(%ebp)
405dc5:	8b 45 08             	mov    0x8(%ebp),%eax
405dc8:	8d 8d 44 fc ff ff    	lea    -0x3bc(%ebp),%ecx
405dce:	53                   	push   %ebx
405dcf:	8b 5d 14             	mov    0x14(%ebp),%ebx
405dd2:	56                   	push   %esi
405dd3:	8b 75 0c             	mov    0xc(%ebp),%esi
405dd6:	57                   	push   %edi
405dd7:	6a 02                	push   $0x2
405dd9:	5f                   	pop    %edi
405dda:	51                   	push   %ecx
405ddb:	50                   	push   %eax
405ddc:	89 85 20 fc ff ff    	mov    %eax,-0x3e0(%ebp)
405de2:	89 b5 30 fc ff ff    	mov    %esi,-0x3d0(%ebp)
405de8:	89 9d 28 fc ff ff    	mov    %ebx,-0x3d8(%ebp)
405dee:	c7 85 44 fc ff ff 26 	movl   $0x226,-0x3bc(%ebp)
405df5:	02 00 00
405df8:	ff 15 0c 81 40 00    	call   *0x40810c
405dfe:	85 c0                	test   %eax,%eax
405e00:	74 7f                	je     0x405e81
405e02:	ff b5 58 fc ff ff    	push   -0x3a8(%ebp)
405e08:	33 c0                	xor    %eax,%eax
405e0a:	50                   	push   %eax
405e0b:	89 85 18 fc ff ff    	mov    %eax,-0x3e8(%ebp)
405e11:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
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)