405d63:	8d 45 d4             	lea    -0x2c(%ebp),%eax
405d66:	50                   	push   %eax
405d67:	8d 45 b8             	lea    -0x48(%ebp),%eax
405d6a:	50                   	push   %eax
405d6b:	8d 45 c0             	lea    -0x40(%ebp),%eax
405d6e:	50                   	push   %eax
405d6f:	8d 45 dc             	lea    -0x24(%ebp),%eax
405d72:	50                   	push   %eax
405d73:	57                   	push   %edi
405d74:	ff 75 d8             	push   -0x28(%ebp)
405d77:	e8 f9 f3 00 00       	call   0x415175
405d7c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
405d7f:	83 c1 04             	add    $0x4,%ecx
405d82:	33 db                	xor    %ebx,%ebx
405d84:	8d 51 02             	lea    0x2(%ecx),%edx
405d87:	66 8b 01             	mov    (%ecx),%ax
405d8a:	83 c1 02             	add    $0x2,%ecx
405d8d:	66 3b c3             	cmp    %bx,%ax
405d90:	75 f5                	jne    0x405d87
405d92:	8b 75 dc             	mov    -0x24(%ebp),%esi
405d95:	2b ca                	sub    %edx,%ecx
405d97:	d1 f9                	sar    $1,%ecx
405d99:	8d 59 02             	lea    0x2(%ecx),%ebx
405d9c:	e9 3f ff ff ff       	jmp    0x405ce0
405da1:	09 53 1c             	or     %edx,0x1c(%ebx)
405da4:	eb 88                	jmp    0x405d2e
405da6:	8b ff                	mov    %edi,%edi
405da8:	55                   	push   %ebp
405da9:	8b ec                	mov    %esp,%ebp
405dab:	53                   	push   %ebx
405dac:	56                   	push   %esi
405dad:	57                   	push   %edi
405dae:	6a 24                	push   $0x24
405db0:	8b d9                	mov    %ecx,%ebx
405db2:	8b fa                	mov    %edx,%edi
405db4:	59                   	pop    %ecx
405db5:	e8 16 7f 00 00       	call   0x40dcd0
405dba:	8b f0                	mov    %eax,%esi
405dbc:	85 f6                	test   %esi,%esi
405dbe:	0f 84 e3 3e 01 00    	je     0x419ca7
405dc4:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
405dc8:	83 66 20 00          	andl   $0x0,0x20(%esi)
405dcc:	8b 45 08             	mov    0x8(%ebp),%eax
405dcf:	89 73 20             	mov    %esi,0x20(%ebx)
405dd2:	09 46 1c             	or     %eax,0x1c(%esi)
405dd5:	8b c6                	mov    %esi,%eax
405dd7:	89 3e                	mov    %edi,(%esi)
405dd9:	5f                   	pop    %edi
405dda:	5e                   	pop    %esi
405ddb:	5b                   	pop    %ebx
405ddc:	5d                   	pop    %ebp
405ddd:	c2 04 00             	ret    $0x4
405de0:	8b ff                	mov    %edi,%edi
405de2:	55                   	push   %ebp
405de3:	8b ec                	mov    %esp,%ebp
405de5:	56                   	push   %esi
405de6:	83 fa 01             	cmp    $0x1,%edx
405de9:	74 37                	je     0x405e22
405deb:	83 fa 02             	cmp    $0x2,%edx
405dee:	0f 85 c6 3e 01 00    	jne    0x419cba
405df4:	8b 75 0c             	mov    0xc(%ebp),%esi
405df7:	8b d1                	mov    %ecx,%edx
405df9:	ff 75 18             	push   0x18(%ebp)
405dfc:	8b 0e                	mov    (%esi),%ecx
405dfe:	e8 a3 ff ff ff       	call   0x405da6
405e03:	8b c8                	mov    %eax,%ecx
405e05:	89 06                	mov    %eax,(%esi)
405e07:	e8 15 31 00 00       	call   0x408f21
405e0c:	8b 0d a8 67 43 00    	mov    0x4367a8,%ecx
405e12:	85 c9                	test   %ecx,%ecx
405e14:	0f 85 c9 3e 01 00    	jne    0x419ce3
405e1a:	6a 06                	push   $0x6
405e1c:	58                   	pop    %eax
405e1d:	5e                   	pop    %esi
405e1e:	5d                   	pop    %ebp
405e1f:	c2 14 00             	ret    $0x14
405e22:	8b 75 08             	mov    0x8(%ebp),%esi
405e25:	8b d1                	mov    %ecx,%edx
405e27:	ff 75 18             	push   0x18(%ebp)
405e2a:	8b 0e                	mov    (%esi),%ecx
405e2c:	e8 75 ff ff ff       	call   0x405da6
405e31:	8b c8                	mov    %eax,%ecx
405e33:	89 06                	mov    %eax,(%esi)
405e35:	e8 e7 30 00 00       	call   0x408f21
405e3a:	8b 0d a8 67 43 00    	mov    0x4367a8,%ecx
405e40:	85 c9                	test   %ecx,%ecx
405e42:	75 18                	jne    0x405e5c
405e44:	8b 4d 10             	mov    0x10(%ebp),%ecx
405e47:	6a 02                	push   $0x2
405e49:	58                   	pop    %eax
405e4a:	ff 01                	incl   (%ecx)
405e4c:	8b 0e                	mov    (%esi),%ecx
405e4e:	f6 41 1c 08          	testb  $0x8,0x1c(%ecx)
405e52:	75 c9                	jne    0x405e1d
405e54:	8b 4d 14             	mov    0x14(%ebp),%ecx
405e57:	83 21 00             	andl   $0x0,(%ecx)
405e5a:	eb c1                	jmp    0x405e1d
405e5c:	83 f9 7b             	cmp    $0x7b,%ecx
405e5f:	74 e3                	je     0x405e44
405e61:	33 d2                	xor    %edx,%edx
405e63:	e8 e8 2d 02 00       	call   0x428c50
405e68:	83 e9 00             	sub    $0x0,%ecx
405e6b:	74 30                	je     0x405e9d
405e6d:	83 e9 01             	sub    $0x1,%ecx
405e70:	74 25                	je     0x405e97
405e72:	83 e9 01             	sub    $0x1,%ecx
405e75:	74 1a                	je     0x405e91
405e77:	83 e9 01             	sub    $0x1,%ecx
405e7a:	74 0f                	je     0x405e8b
405e7c:	83 e9 01             	sub    $0x1,%ecx
405e7f:	0f 85 6c 3e 01 00    	jne    0x419cf1
405e85:	b8 b0 c8 43 00       	mov    $0x43c8b0,%eax
405e8a:	c3                   	ret
405e8b:	b8 f0 c8 43 00       	mov    $0x43c8f0,%eax
405e90:	c3                   	ret
405e91:	b8 30 c9 43 00       	mov    $0x43c930,%eax
405e96:	c3                   	ret
405e97:	b8 70 c9 43 00       	mov    $0x43c970,%eax
405e9c:	c3                   	ret
405e9d:	b8 f0 c7 43 00       	mov    $0x43c7f0,%eax
405ea2:	c3                   	ret
405ea3:	8b ff                	mov    %edi,%edi
405ea5:	55                   	push   %ebp
405ea6:	8b ec                	mov    %esp,%ebp
405ea8:	83 e4 f8             	and    $0xfffffff8,%esp
405eab:	81 ec b8 04 00 00    	sub    $0x4b8,%esp
405eb1:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
405eb6:	33 c4                	xor    %esp,%eax
405eb8:	89 84 24 b4 04 00 00 	mov    %eax,0x4b4(%esp)
405ebf:	56                   	push   %esi
405ec0:	57                   	push   %edi
405ec1:	33 c0                	xor    %eax,%eax
405ec3:	89 54 24 08          	mov    %edx,0x8(%esp)
405ec7:	33 d2                	xor    %edx,%edx
405ec9:	40                   	inc    %eax
405eca:	bf 04 01 00 00       	mov    $0x104,%edi
405ecf:	89 44 24 14          	mov    %eax,0x14(%esp)
405ed3:	57                   	push   %edi
405ed4:	88 84 24 60 02 00 00 	mov    %al,0x260(%esp)
405edb:	8b f1                	mov    %ecx,%esi
405edd:	52                   	push   %edx
405ede:	8d 44 24 58          	lea    0x58(%esp),%eax
405ee2:	89 54 24 14          	mov    %edx,0x14(%esp)
405ee6:	50                   	push   %eax
405ee7:	89 15 60 67 43 00    	mov    %edx,0x436760
405eed:	89 94 24 64 02 00 00 	mov    %edx,0x264(%esp)
405ef4:	89 bc 24 6c 02 00 00 	mov    %edi,0x26c(%esp)
405efb:	e8 bd 20 01 00       	call   0x417fbd
405f00:	33 c0                	xor    %eax,%eax
405f02:	8d 4c 24 5c          	lea    0x5c(%esp),%ecx
405f06:	83 c4 0c             	add    $0xc,%esp
405f09:	38 84 24 5c 02 00 00 	cmp    %al,0x25c(%esp)
405f10:	0f 94 c0             	sete   %al
405f13:	48                   	dec    %eax
405f14:	25 e3 7e 00 00       	and    $0x7ee3,%eax
405f19:	03 c7                	add    %edi,%eax
405f1b:	50                   	push   %eax
405f1c:	e8 cf 84 00 00       	call   0x40e3f0
405f21:	85 c0                	test   %eax,%eax
405f23:	0f 88 d9 3d 01 00    	js     0x419d02
405f29:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
405f2f:	85 c9                	test   %ecx,%ecx
405f31:	0f 84 d8 3d 01 00    	je     0x419d0f
405f37:	8b 15 00 8e 44 00    	mov    0x448e00,%edx
405f3d:	33 ff                	xor    %edi,%edi
405f3f:	57                   	push   %edi
405f40:	e8 59 2f 00 00       	call   0x408e9e
405f45:	57                   	push   %edi
405f46:	33 d2                	xor    %edx,%edx
405f48:	8b ce                	mov    %esi,%ecx
405f4a:	e8 e1 5c 00 00       	call   0x40bc30
405f4f:	8b f8                	mov    %eax,%edi
405f51:	33 c0                	xor    %eax,%eax
405f53:	89 7c 24 24          	mov    %edi,0x24(%esp)
405f57:	66 39 07             	cmp    %ax,(%edi)
405f5a:	0f 84 b9 3d 01 00    	je     0x419d19
405f60:	8b cf                	mov    %edi,%ecx
405f62:	e8 6e 48 00 00       	call   0x40a7d5
405f67:	0f b7 00             	movzwl (%eax),%eax
405f6a:	8b c8                	mov    %eax,%ecx
405f6c:	89 4c 24 20          	mov    %ecx,0x20(%esp)
405f70:	33 c9                	xor    %ecx,%ecx
405f72:	66 85 c0             	test   %ax,%ax
405f75:	0f 95 c1             	setne  %cl
405f78:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
405f7c:	83 3d 9c 25 43 00 00 	cmpl   $0x0,0x43259c
405f83:	0f 85 ac 3e 01 00    	jne    0x419e35
405f89:	8b cf                	mov    %edi,%ecx
405f8b:	e8 d0 a0 00 00       	call   0x410060
405f90:	8b c8                	mov    %eax,%ecx
405f92:	e8 19 4d 00 00       	call   0x40acb0
405f97:	8b f0                	mov    %eax,%esi
405f99:	85 f6                	test   %esi,%esi
405f9b:	0f 84 88 3e 01 00    	je     0x419e29
405fa1:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
405fa5:	75 6f                	jne    0x406016
405fa7:	8b 44 24 1c          	mov    0x1c(%esp),%eax
405fab:	8b 4c 24 08          	mov    0x8(%esp),%ecx
405faf:	09 05 60 67 43 00    	or     %eax,0x436760
405fb5:	56                   	push   %esi
405fb6:	ff 15 c4 a4 44 00    	call   *0x44a4c4
405fbc:	ff 54 24 0c          	call   *0xc(%esp)
405fc0:	89 44 24 10          	mov    %eax,0x10(%esp)
405fc4:	85 c0                	test   %eax,%eax
405fc6:	0f 85 00 3e 01 00    	jne    0x419dcc
405fcc:	8b cf                	mov    %edi,%ecx
405fce:	e8 02 48 00 00       	call   0x40a7d5
405fd3:	8b f8                	mov    %eax,%edi
405fd5:	89 44 24 24          	mov    %eax,0x24(%esp)
405fd9:	33 c0                	xor    %eax,%eax
405fdb:	66 39 07             	cmp    %ax,(%edi)
405fde:	75 9c                	jne    0x405f7c
405fe0:	8b 74 24 0c          	mov    0xc(%esp),%esi
405fe4:	8b 8c 24 58 02 00 00 	mov    0x258(%esp),%ecx
405feb:	89 84 24 58 02 00 00 	mov    %eax,0x258(%esp)
405ff2:	85 c9                	test   %ecx,%ecx
405ff4:	74 08                	je     0x405ffe
405ff6:	51                   	push   %ecx
405ff7:	ff 15 e0 a3 44 00    	call   *0x44a3e0
405ffd:	59                   	pop    %ecx
405ffe:	8b 8c 24 bc 04 00 00 	mov    0x4bc(%esp),%ecx
406005:	8b c6                	mov    %esi,%eax
406007:	5f                   	pop    %edi
406008:	5e                   	pop    %esi
406009:	33 cc                	xor    %esp,%ecx
40600b:	e8 20 0b 01 00       	call   0x416b30
406010:	8b e5                	mov    %ebp,%esp
406012:	5d                   	pop    %ebp
406013:	c2 04 00             	ret    $0x4
406016:	33 c0                	xor    %eax,%eax
406018:	8d 4c 24 18          	lea    0x18(%esp),%ecx
40601c:	83 3d d8 e0 42 00 03 	cmpl   $0x3,0x42e0d8
406023:	51                   	push   %ecx
406024:	0f 95 c0             	setne  %al
406027:	8d 8c 24 6c 02 00 00 	lea    0x26c(%esp),%ecx
40602e:	48                   	dec    %eax
40602f:	33 d2                	xor    %edx,%edx
406031:	51                   	push   %ecx
406032:	25 ea ef ff ff       	and    $0xffffefea,%eax
406037:	89 15 a8 67 43 00    	mov    %edx,0x4367a8
40603d:	05 37 10 00 00       	add    $0x1037,%eax
406042:	b9 d0 59 41 00       	mov    $0x4159d0,%ecx
406047:	52                   	push   %edx
406048:	50                   	push   %eax
406049:	8b d6                	mov    %esi,%edx
40604b:	89 44 24 20          	mov    %eax,0x20(%esp)
40604f:	e8 46 f8 00 00       	call   0x41589a
406054:	84 c0                	test   %al,%al
406056:	0f 84 e9 3c 01 00    	je     0x419d45
40605c:	f6 84 24 68 02 00 00 	testb  $0x10,0x268(%esp)
406063:	10
406064:	0f 85 ab 3d 01 00    	jne    0x419e15
40606a:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
40606e:	89 74 24 2c          	mov    %esi,0x2c(%esp)
406072:	e8 aa 2e 00 00       	call   0x408f21
406077:	8b 44 24 3c          	mov    0x3c(%esp),%eax
40607b:	2b c6                	sub    %esi,%eax
40607d:	d1 f8                	sar    $1,%eax
40607f:	89 44 24 28          	mov    %eax,0x28(%esp)
406083:	3b 84 24 60 02 00 00 	cmp    0x260(%esp),%eax
40608a:	0f 83 85 3d 01 00    	jae    0x419e15
406090:	56                   	push   %esi
406091:	8d 4c 24 54          	lea    0x54(%esp),%ecx
406095:	e8 a7 45 00 00       	call   0x40a641
40609a:	8b 7c 24 10          	mov    0x10(%esp),%edi
40609e:	8b 8c 24 58 02 00 00 	mov    0x258(%esp),%ecx
4060a5:	85 c9                	test   %ecx,%ecx
4060a7:	0f 84 85 00 00 00    	je     0x406132
4060ad:	8b 44 24 28          	mov    0x28(%esp),%eax
4060b1:	33 d2                	xor    %edx,%edx
4060b3:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
4060b7:	8d 4c 24 50          	lea    0x50(%esp),%ecx
4060bb:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4060bf:	09 05 60 67 43 00    	or     %eax,0x436760
4060c5:	8d 84 24 94 02 00 00 	lea    0x294(%esp),%eax
4060cc:	50                   	push   %eax
4060cd:	e8 5a c2 00 00       	call   0x41232c
4060d2:	8b 84 24 58 02 00 00 	mov    0x258(%esp),%eax
4060d9:	85 c0                	test   %eax,%eax
4060db:	74 5e                	je     0x40613b
4060dd:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4060e1:	50                   	push   %eax
4060e2:	ff 15 c4 a4 44 00    	call   *0x44a4c4
4060e8:	ff 54 24 0c          	call   *0xc(%esp)
4060ec:	89 44 24 10          	mov    %eax,0x10(%esp)
4060f0:	85 c0                	test   %eax,%eax
4060f2:	0f 85 c2 3c 01 00    	jne    0x419dba
4060f8:	ff 74 24 18          	push   0x18(%esp)
4060fc:	8d 94 24 6c 02 00 00 	lea    0x26c(%esp),%edx
406103:	b9 d0 59 41 00       	mov    $0x4159d0,%ecx
406108:	57                   	push   %edi
406109:	e8 43 f7 00 00       	call   0x415851
40610e:	84 c0                	test   %al,%al
406110:	75 8c                	jne    0x40609e
406112:	8b 4c 24 18          	mov    0x18(%esp),%ecx
406116:	e8 32 2a 00 00       	call   0x408b4d
40611b:	8b 7c 24 24          	mov    0x24(%esp),%edi
40611f:	33 c0                	xor    %eax,%eax
406121:	40                   	inc    %eax
406122:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
406127:	0f 84 9f fe ff ff    	je     0x405fcc
40612d:	e9 ac 3c 01 00       	jmp    0x419dde
406132:	8d 4c 24 50          	lea    0x50(%esp),%ecx
406136:	e9 72 ff ff ff       	jmp    0x4060ad
40613b:	8d 44 24 50          	lea    0x50(%esp),%eax
40613f:	eb 9c                	jmp    0x4060dd
406141:	cc                   	int3
406142:	cc                   	int3
406143:	cc                   	int3
406144:	cc                   	int3
406145:	cc                   	int3
406146:	cc                   	int3
406147:	cc                   	int3
406148:	cc                   	int3
406149:	cc                   	int3
40614a:	cc                   	int3
40614b:	cc                   	int3
40614c:	cc                   	int3
40614d:	cc                   	int3
40614e:	cc                   	int3
40614f:	cc                   	int3
406150:	8b ff                	mov    %edi,%edi
406152:	53                   	push   %ebx
406153:	8b dc                	mov    %esp,%ebx
406155:	51                   	push   %ecx
406156:	51                   	push   %ecx
406157:	83 e4 f8             	and    $0xfffffff8,%esp
40615a:	83 c4 04             	add    $0x4,%esp
40615d:	55                   	push   %ebp
40615e:	8b 6b 04             	mov    0x4(%ebx),%ebp
406161:	89 6c 24 04          	mov    %ebp,0x4(%esp)
406165:	8b ec                	mov    %esp,%ebp
406167:	6a fe                	push   $0xfffffffe
406169:	68 90 c9 42 00       	push   $0x42c990
40616e:	68 00 6e 41 00       	push   $0x416e00
406173:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
406179:	50                   	push   %eax
40617a:	51                   	push   %ecx
40617b:	51                   	push   %ecx
40617c:	53                   	push   %ebx
40617d:	83 ec 48             	sub    $0x48,%esp
406180:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
406185:	31 45 f8             	xor    %eax,-0x8(%ebp)
406188:	33 c5                	xor    %ebp,%eax
40618a:	89 45 dc             	mov    %eax,-0x24(%ebp)
40618d:	56                   	push   %esi
40618e:	57                   	push   %edi
40618f:	50                   	push   %eax
406190:	8d 45 f0             	lea    -0x10(%ebp),%eax
406193:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0