401deb:	83 c4 0c             	add    $0xc,%esp
401dee:	8d 4f 08             	lea    0x8(%edi),%ecx
401df1:	ff 76 f4             	push   -0xc(%esi)
401df4:	50                   	push   %eax
401df5:	e8 fa 16 00 00       	call   0x4034f4
401dfa:	56                   	push   %esi
401dfb:	ff 30                	push   (%eax)
401dfd:	e8 5c 94 01 00       	call   0x41b25e
401e02:	59                   	pop    %ecx
401e03:	59                   	pop    %ecx
401e04:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
401e0a:	8b f8                	mov    %eax,%edi
401e0c:	83 c1 f0             	add    $0xfffffff0,%ecx
401e0f:	e8 ee f4 ff ff       	call   0x401302
401e14:	85 ff                	test   %edi,%edi
401e16:	75 47                	jne    0x401e5f
401e18:	68 08 02 00 00       	push   $0x208
401e1d:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
401e23:	57                   	push   %edi
401e24:	50                   	push   %eax
401e25:	e8 e6 72 00 00       	call   0x409110
401e2a:	83 c4 0c             	add    $0xc,%esp
401e2d:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
401e33:	bf 04 01 00 00       	mov    $0x104,%edi
401e38:	57                   	push   %edi
401e39:	50                   	push   %eax
401e3a:	6a 00                	push   $0x0
401e3c:	ff 15 84 c0 41 00    	call   *0x41c084
401e42:	85 c0                	test   %eax,%eax
401e44:	74 19                	je     0x401e5f
401e46:	3b c7                	cmp    %edi,%eax
401e48:	73 15                	jae    0x401e5f
401e4a:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
401e50:	50                   	push   %eax
401e51:	68 98 28 42 00       	push   $0x422898
401e56:	53                   	push   %ebx
401e57:	e8 28 f8 ff ff       	call   0x401684
401e5c:	83 c4 0c             	add    $0xc,%esp
401e5f:	8d 4e f0             	lea    -0x10(%esi),%ecx
401e62:	e8 9b f4 ff ff       	call   0x401302
401e67:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401e6a:	5f                   	pop    %edi
401e6b:	5e                   	pop    %esi
401e6c:	33 cd                	xor    %ebp,%ecx
401e6e:	5b                   	pop    %ebx
401e6f:	e8 81 6d 00 00       	call   0x408bf5
401e74:	c9                   	leave
401e75:	c2 04 00             	ret    $0x4
401e78:	55                   	push   %ebp
401e79:	8b ec                	mov    %esp,%ebp
401e7b:	83 ec 0c             	sub    $0xc,%esp
401e7e:	a1 18 60 42 00       	mov    0x426018,%eax
401e83:	33 c5                	xor    %ebp,%eax
401e85:	89 45 fc             	mov    %eax,-0x4(%ebp)
401e88:	53                   	push   %ebx
401e89:	8b 5d 08             	mov    0x8(%ebp),%ebx
401e8c:	33 c0                	xor    %eax,%eax
401e8e:	56                   	push   %esi
401e8f:	57                   	push   %edi
401e90:	89 45 f4             	mov    %eax,-0xc(%ebp)
401e93:	89 45 f8             	mov    %eax,-0x8(%ebp)
401e96:	e8 90 f4 ff ff       	call   0x40132b
401e9b:	50                   	push   %eax
401e9c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
401e9f:	e8 58 1c 00 00       	call   0x403afc
401ea4:	68 50 28 42 00       	push   $0x422850
401ea9:	8d 45 f8             	lea    -0x8(%ebp),%eax
401eac:	68 a4 28 42 00       	push   $0x4228a4
401eb1:	50                   	push   %eax
401eb2:	e8 cd f7 ff ff       	call   0x401684
401eb7:	8b 75 f8             	mov    -0x8(%ebp),%esi
401eba:	83 c4 0c             	add    $0xc,%esp
401ebd:	8b 7e f4             	mov    -0xc(%esi),%edi
401ec0:	85 ff                	test   %edi,%edi
401ec2:	79 02                	jns    0x401ec6
401ec4:	33 ff                	xor    %edi,%edi
401ec6:	8b 0b                	mov    (%ebx),%ecx
401ec8:	8b 41 f4             	mov    -0xc(%ecx),%eax
401ecb:	89 45 f8             	mov    %eax,-0x8(%ebp)
401ece:	3b f8                	cmp    %eax,%edi
401ed0:	7c 0d                	jl     0x401edf
401ed2:	83 c1 f0             	add    $0xfffffff0,%ecx
401ed5:	e8 5b 1c 00 00       	call   0x403b35
401eda:	83 c0 10             	add    $0x10,%eax
401edd:	eb 22                	jmp    0x401f01
401edf:	8b cb                	mov    %ebx,%ecx
401ee1:	0f ae e8             	lfence
401ee4:	e8 91 19 00 00       	call   0x40387a
401ee9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
401eec:	50                   	push   %eax
401eed:	8b 03                	mov    (%ebx),%eax
401eef:	2b cf                	sub    %edi,%ecx
401ef1:	57                   	push   %edi
401ef2:	8d 04 48             	lea    (%eax,%ecx,2),%eax
401ef5:	50                   	push   %eax
401ef6:	8d 4d f8             	lea    -0x8(%ebp),%ecx
401ef9:	e8 11 1a 00 00       	call   0x40390f
401efe:	8b 45 f8             	mov    -0x8(%ebp),%eax
401f01:	56                   	push   %esi
401f02:	50                   	push   %eax
401f03:	89 45 f8             	mov    %eax,-0x8(%ebp)
401f06:	ff 15 d8 c1 41 00    	call   *0x41c1d8
401f0c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
401f0f:	8b f8                	mov    %eax,%edi
401f11:	83 c1 f0             	add    $0xfffffff0,%ecx
401f14:	e8 e9 f3 ff ff       	call   0x401302
401f19:	85 ff                	test   %edi,%edi
401f1b:	75 1c                	jne    0x401f39
401f1d:	8b 03                	mov    (%ebx),%eax
401f1f:	8b cb                	mov    %ebx,%ecx
401f21:	8b 78 f4             	mov    -0xc(%eax),%edi
401f24:	2b 7e f4             	sub    -0xc(%esi),%edi
401f27:	57                   	push   %edi
401f28:	e8 b3 17 00 00       	call   0x4036e0
401f2d:	57                   	push   %edi
401f2e:	8b cb                	mov    %ebx,%ecx
401f30:	e8 4a 1a 00 00       	call   0x40397f
401f35:	c6 45 f4 01          	movb   $0x1,-0xc(%ebp)
401f39:	8d 4e f0             	lea    -0x10(%esi),%ecx
401f3c:	e8 c1 f3 ff ff       	call   0x401302
401f41:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401f44:	8a 45 f4             	mov    -0xc(%ebp),%al
401f47:	33 cd                	xor    %ebp,%ecx
401f49:	5f                   	pop    %edi
401f4a:	5e                   	pop    %esi
401f4b:	5b                   	pop    %ebx
401f4c:	e8 a4 6c 00 00       	call   0x408bf5
401f51:	c9                   	leave
401f52:	c2 04 00             	ret    $0x4
401f55:	55                   	push   %ebp
401f56:	8b ec                	mov    %esp,%ebp
401f58:	83 ec 14             	sub    $0x14,%esp
401f5b:	a1 18 60 42 00       	mov    0x426018,%eax
401f60:	33 c5                	xor    %ebp,%eax
401f62:	89 45 fc             	mov    %eax,-0x4(%ebp)
401f65:	53                   	push   %ebx
401f66:	8d 45 ec             	lea    -0x14(%ebp),%eax
401f69:	33 db                	xor    %ebx,%ebx
401f6b:	50                   	push   %eax
401f6c:	53                   	push   %ebx
401f6d:	53                   	push   %ebx
401f6e:	68 4c 13 42 00       	push   $0x42134c
401f73:	89 5d ec             	mov    %ebx,-0x14(%ebp)
401f76:	ff 15 20 c2 41 00    	call   *0x41c220
401f7c:	85 c0                	test   %eax,%eax
401f7e:	79 04                	jns    0x401f84
401f80:	32 c0                	xor    %al,%al
401f82:	eb 34                	jmp    0x401fb8
401f84:	8d 45 f0             	lea    -0x10(%ebp),%eax
401f87:	50                   	push   %eax
401f88:	53                   	push   %ebx
401f89:	53                   	push   %ebx
401f8a:	ff 75 ec             	push   -0x14(%ebp)
401f8d:	ff 15 a8 c1 41 00    	call   *0x41c1a8
401f93:	85 c0                	test   %eax,%eax
401f95:	75 06                	jne    0x401f9d
401f97:	89 5d f0             	mov    %ebx,-0x10(%ebp)
401f9a:	89 5d f4             	mov    %ebx,-0xc(%ebp)
401f9d:	ff 75 ec             	push   -0x14(%ebp)
401fa0:	ff 15 40 c2 41 00    	call   *0x41c240
401fa6:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
401fa9:	77 09                	ja     0x401fb4
401fab:	81 7d f0 00 00 00 40 	cmpl   $0x40000000,-0x10(%ebp)
401fb2:	72 02                	jb     0x401fb6
401fb4:	b3 01                	mov    $0x1,%bl
401fb6:	8a c3                	mov    %bl,%al
401fb8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401fbb:	33 cd                	xor    %ebp,%ecx
401fbd:	5b                   	pop    %ebx
401fbe:	e8 32 6c 00 00       	call   0x408bf5
401fc3:	c9                   	leave
401fc4:	c3                   	ret
401fc5:	55                   	push   %ebp
401fc6:	8b ec                	mov    %esp,%ebp
401fc8:	8b 45 08             	mov    0x8(%ebp),%eax
401fcb:	33 c9                	xor    %ecx,%ecx
401fcd:	85 c0                	test   %eax,%eax
401fcf:	74 20                	je     0x401ff1
401fd1:	56                   	push   %esi
401fd2:	6a 2e                	push   $0x2e
401fd4:	5e                   	pop    %esi
401fd5:	66 39 30             	cmp    %si,(%eax)
401fd8:	75 16                	jne    0x401ff0
401fda:	0f b7 50 02          	movzwl 0x2(%eax),%edx
401fde:	66 85 d2             	test   %dx,%dx
401fe1:	74 0b                	je     0x401fee
401fe3:	66 3b d6             	cmp    %si,%dx
401fe6:	75 08                	jne    0x401ff0
401fe8:	66 39 48 04          	cmp    %cx,0x4(%eax)
401fec:	75 02                	jne    0x401ff0
401fee:	b1 01                	mov    $0x1,%cl
401ff0:	5e                   	pop    %esi
401ff1:	8a c1                	mov    %cl,%al
401ff3:	5d                   	pop    %ebp
401ff4:	c2 04 00             	ret    $0x4
401ff7:	cc                   	int3
401ff8:	cc                   	int3
401ff9:	55                   	push   %ebp
401ffa:	8b ec                	mov    %esp,%ebp
401ffc:	83 ec 28             	sub    $0x28,%esp
401fff:	a1 18 60 42 00       	mov    0x426018,%eax
402004:	33 c5                	xor    %ebp,%eax
402006:	89 45 fc             	mov    %eax,-0x4(%ebp)
402009:	8b 55 08             	mov    0x8(%ebp),%edx
40200c:	33 c0                	xor    %eax,%eax
40200e:	53                   	push   %ebx
40200f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
402012:	56                   	push   %esi
402013:	8b 75 14             	mov    0x14(%ebp),%esi
402016:	57                   	push   %edi
402017:	6a 09                	push   $0x9
402019:	59                   	pop    %ecx
40201a:	8d 7d d8             	lea    -0x28(%ebp),%edi
40201d:	f3 ab                	rep stos %eax,%es:(%edi)
40201f:	8d 45 d8             	lea    -0x28(%ebp),%eax
402022:	50                   	push   %eax
402023:	6a 00                	push   $0x0
402025:	52                   	push   %edx
402026:	ff 15 a4 c1 41 00    	call   *0x41c1a4
40202c:	85 c0                	test   %eax,%eax
40202e:	75 1d                	jne    0x40204d
402030:	ff 15 48 c1 41 00    	call   *0x41c148
402036:	85 c0                	test   %eax,%eax
402038:	74 0c                	je     0x402046
40203a:	7e 31                	jle    0x40206d
40203c:	0f b7 c0             	movzwl %ax,%eax
40203f:	0d 00 00 07 80       	or     $0x80070000,%eax
402044:	eb 27                	jmp    0x40206d
402046:	b8 05 40 00 80       	mov    $0x80004005,%eax
40204b:	eb 20                	jmp    0x40206d
40204d:	85 db                	test   %ebx,%ebx
40204f:	74 0b                	je     0x40205c
402051:	8b 45 dc             	mov    -0x24(%ebp),%eax
402054:	8b 4d e0             	mov    -0x20(%ebp),%ecx
402057:	89 03                	mov    %eax,(%ebx)
402059:	89 4b 04             	mov    %ecx,0x4(%ebx)
40205c:	85 f6                	test   %esi,%esi
40205e:	74 0b                	je     0x40206b
402060:	8b 45 ec             	mov    -0x14(%ebp),%eax
402063:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402066:	89 06                	mov    %eax,(%esi)
402068:	89 4e 04             	mov    %ecx,0x4(%esi)
40206b:	33 c0                	xor    %eax,%eax
40206d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
402070:	5f                   	pop    %edi
402071:	5e                   	pop    %esi
402072:	33 cd                	xor    %ebp,%ecx
402074:	5b                   	pop    %ebx
402075:	e8 7b 6b 00 00       	call   0x408bf5
40207a:	c9                   	leave
40207b:	c2 10 00             	ret    $0x10
40207e:	55                   	push   %ebp
40207f:	8b ec                	mov    %esp,%ebp
402081:	81 ec b8 02 00 00    	sub    $0x2b8,%esp
402087:	a1 18 60 42 00       	mov    0x426018,%eax
40208c:	33 c5                	xor    %ebp,%eax
40208e:	89 45 f8             	mov    %eax,-0x8(%ebp)
402091:	53                   	push   %ebx
402092:	56                   	push   %esi
402093:	8b 75 08             	mov    0x8(%ebp),%esi
402096:	bb b0 28 42 00       	mov    $0x4228b0,%ebx
40209b:	57                   	push   %edi
40209c:	53                   	push   %ebx
40209d:	89 8d 98 fd ff ff    	mov    %ecx,-0x268(%ebp)
4020a3:	8b 06                	mov    (%esi),%eax
4020a5:	8b 78 f4             	mov    -0xc(%eax),%edi
4020a8:	89 bd 94 fd ff ff    	mov    %edi,-0x26c(%ebp)
4020ae:	e8 7e e9 00 00       	call   0x410a31
4020b3:	59                   	pop    %ecx
4020b4:	50                   	push   %eax
4020b5:	53                   	push   %ebx
4020b6:	8b ce                	mov    %esi,%ecx
4020b8:	e8 af 19 00 00       	call   0x403a6c
4020bd:	68 50 02 00 00       	push   $0x250
4020c2:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
4020c8:	6a 00                	push   $0x0
4020ca:	50                   	push   %eax
4020cb:	e8 40 70 00 00       	call   0x409110
4020d0:	83 c4 0c             	add    $0xc,%esp
4020d3:	8d 85 9c fd ff ff    	lea    -0x264(%ebp),%eax
4020d9:	50                   	push   %eax
4020da:	ff 36                	push   (%esi)
4020dc:	ff 15 8c c1 41 00    	call   *0x41c18c
4020e2:	8b d8                	mov    %eax,%ebx
4020e4:	83 fb ff             	cmp    $0xffffffff,%ebx
4020e7:	0f 84 f4 01 00 00    	je     0x4022e1
4020ed:	dd 05 40 35 42 00    	fldl   0x423540
4020f3:	dd 9d 4c fd ff ff    	fstpl  -0x2b4(%ebp)
4020f9:	f7 85 9c fd ff ff 00 	testl  $0x400,-0x264(%ebp)
402100:	04 00 00
402103:	0f 85 b5 01 00 00    	jne    0x4022be
402109:	66 83 7d d0 00       	cmpw   $0x0,-0x30(%ebp)
40210e:	8d 7d d0             	lea    -0x30(%ebp),%edi
402111:	75 06                	jne    0x402119
402113:	8d bd c8 fd ff ff    	lea    -0x238(%ebp),%edi
402119:	57                   	push   %edi
40211a:	e8 a6 fe ff ff       	call   0x401fc5
40211f:	84 c0                	test   %al,%al
402121:	0f 85 97 01 00 00    	jne    0x4022be
402127:	8b 85 94 fd ff ff    	mov    -0x26c(%ebp),%eax
40212d:	8b ce                	mov    %esi,%ecx
40212f:	40                   	inc    %eax
402130:	50                   	push   %eax
402131:	8d 85 80 fd ff ff    	lea    -0x280(%ebp),%eax
402137:	50                   	push   %eax
402138:	e8 b7 13 00 00       	call   0x4034f4
40213d:	50                   	push   %eax
40213e:	8b ce                	mov    %esi,%ecx
402140:	e8 98 14 00 00       	call   0x4035dd
402145:	8b 8d 80 fd ff ff    	mov    -0x280(%ebp),%ecx
40214b:	8d 49 f0             	lea    -0x10(%ecx),%ecx
40214e:	e8 af f1 ff ff       	call   0x401302
402153:	57                   	push   %edi
402154:	e8 d8 e8 00 00       	call   0x410a31
402159:	59                   	pop    %ecx
40215a:	50                   	push   %eax
40215b:	57                   	push   %edi
40215c:	8b ce                	mov    %esi,%ecx
40215e:	e8 09 19 00 00       	call   0x403a6c
402163:	f6 85 9c fd ff ff 10 	testb  $0x10,-0x264(%ebp)
40216a:	74 11                	je     0x40217d
40216c:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
402172:	56                   	push   %esi
402173:	e8 06 ff ff ff       	call   0x40207e
402178:	e9 41 01 00 00       	jmp    0x4022be
40217d:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
402183:	33 ff                	xor    %edi,%edi
402185:	50                   	push   %eax
402186:	51                   	push   %ecx
402187:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
40218d:	89 bd 8c fd ff ff    	mov    %edi,-0x274(%ebp)
402193:	50                   	push   %eax
402194:	ff 36                	push   (%esi)
402196:	89 bd 90 fd ff ff    	mov    %edi,-0x270(%ebp)
40219c:	89 bd 84 fd ff ff    	mov    %edi,-0x27c(%ebp)
4021a2:	89 bd 88 fd ff ff    	mov    %edi,-0x278(%ebp)
4021a8:	e8 4c fe ff ff       	call   0x401ff9
4021ad:	85 c0                	test   %eax,%eax
4021af:	0f 88 09 01 00 00    	js     0x4022be
4021b5:	8d 45 f0             	lea    -0x10(%ebp),%eax
4021b8:	89 7d f0             	mov    %edi,-0x10(%ebp)
4021bb:	50                   	push   %eax
4021bc:	89 7d f4             	mov    %edi,-0xc(%ebp)
4021bf:	ff 15 74 c1 41 00    	call   *0x41c174
4021c5:	8b 7d f4             	mov    -0xc(%ebp),%edi
4021c8:	33 c0                	xor    %eax,%eax
4021ca:	0b 45 f0             	or     -0x10(%ebp),%eax
4021cd:	33 c9                	xor    %ecx,%ecx
4021cf:	0b 8d 8c fd ff ff    	or     -0x274(%ebp),%ecx
4021d5:	89 85 7c fd ff ff    	mov    %eax,-0x284(%ebp)