411ea9:	8b c3                	mov    %ebx,%eax
411eab:	f7 e2                	mul    %edx
411ead:	0f 90 c1             	seto   %cl
411eb0:	f7 d9                	neg    %ecx
411eb2:	0b c8                	or     %eax,%ecx
411eb4:	51                   	push   %ecx
411eb5:	e8 58 5e 01 00       	call   0x427d12
411eba:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
411ebe:	8b d8                	mov    %eax,%ebx
411ec0:	59                   	pop    %ecx
411ec1:	eb 11                	jmp    0x411ed4
411ec3:	b8 c9 1e 41 00       	mov    $0x411ec9,%eax
411ec8:	c3                   	ret
411ec9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
411ecd:	33 f6                	xor    %esi,%esi
411ecf:	8b 7d e8             	mov    -0x18(%ebp),%edi
411ed2:	8b de                	mov    %esi,%ebx
411ed4:	85 db                	test   %ebx,%ebx
411ed6:	75 32                	jne    0x411f0a
411ed8:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
411edd:	89 45 ec             	mov    %eax,-0x14(%ebp)
411ee0:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
411ee6:	43                   	inc    %ebx
411ee7:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
411eed:	0f 84 ca 01 00 00    	je     0x4120bd
411ef3:	84 59 1c             	test   %bl,0x1c(%ecx)
411ef6:	0f 84 c1 01 00 00    	je     0x4120bd
411efc:	50                   	push   %eax
411efd:	ff 71 14             	push   0x14(%ecx)
411f00:	ff 71 10             	push   0x10(%ecx)
411f03:	6a 50                	push   $0x50
411f05:	e9 6b ff ff ff       	jmp    0x411e75
411f0a:	8b 45 14             	mov    0x14(%ebp),%eax
411f0d:	c1 e0 02             	shl    $0x2,%eax
411f10:	50                   	push   %eax
411f11:	56                   	push   %esi
411f12:	53                   	push   %ebx
411f13:	e8 95 64 01 00       	call   0x4283ad
411f18:	8b 45 14             	mov    0x14(%ebp),%eax
411f1b:	83 c4 0c             	add    $0xc,%esp
411f1e:	89 5f 10             	mov    %ebx,0x10(%edi)
411f21:	8b ce                	mov    %esi,%ecx
411f23:	89 4d e8             	mov    %ecx,-0x18(%ebp)
411f26:	85 c0                	test   %eax,%eax
411f28:	74 3a                	je     0x411f64
411f2a:	8b 55 10             	mov    0x10(%ebp),%edx
411f2d:	2b d3                	sub    %ebx,%edx
411f2f:	89 55 dc             	mov    %edx,-0x24(%ebp)
411f32:	8b 0c 1a             	mov    (%edx,%ebx,1),%ecx
411f35:	85 c9                	test   %ecx,%ecx
411f37:	89 4d d8             	mov    %ecx,-0x28(%ebp)
411f3a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
411f3d:	74 1a                	je     0x411f59
411f3f:	8b 4d d8             	mov    -0x28(%ebp),%ecx
411f42:	8b d3                	mov    %ebx,%edx
411f44:	e8 8c f9 ff ff       	call   0x4118d5
411f49:	89 45 ec             	mov    %eax,-0x14(%ebp)
411f4c:	85 c0                	test   %eax,%eax
411f4e:	78 75                	js     0x411fc5
411f50:	8b 45 14             	mov    0x14(%ebp),%eax
411f53:	8b 4d e8             	mov    -0x18(%ebp),%ecx
411f56:	8b 55 dc             	mov    -0x24(%ebp),%edx
411f59:	41                   	inc    %ecx
411f5a:	83 c3 04             	add    $0x4,%ebx
411f5d:	89 4d e8             	mov    %ecx,-0x18(%ebp)
411f60:	3b c8                	cmp    %eax,%ecx
411f62:	72 ce                	jb     0x411f32
411f64:	56                   	push   %esi
411f65:	56                   	push   %esi
411f66:	57                   	push   %edi
411f67:	68 80 1c 41 00       	push   $0x411c80
411f6c:	33 db                	xor    %ebx,%ebx
411f6e:	56                   	push   %esi
411f6f:	43                   	inc    %ebx
411f70:	56                   	push   %esi
411f71:	89 5f 28             	mov    %ebx,0x28(%edi)
411f74:	ff 15 68 c2 42 00    	call   *0x42c268
411f7a:	89 45 e0             	mov    %eax,-0x20(%ebp)
411f7d:	85 c0                	test   %eax,%eax
411f7f:	75 7e                	jne    0x411fff
411f81:	ff 15 18 c2 42 00    	call   *0x42c218
411f87:	8b c8                	mov    %eax,%ecx
411f89:	e8 1c 96 ff ff       	call   0x40b5aa
411f8e:	89 45 ec             	mov    %eax,-0x14(%ebp)
411f91:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
411f97:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
411f9d:	0f 84 1e 01 00 00    	je     0x4120c1
411fa3:	84 59 1c             	test   %bl,0x1c(%ecx)
411fa6:	0f 84 15 01 00 00    	je     0x4120c1
411fac:	50                   	push   %eax
411fad:	ff 71 14             	push   0x14(%ecx)
411fb0:	ba 8c 27 40 00       	mov    $0x40278c,%edx
411fb5:	ff 71 10             	push   0x10(%ecx)
411fb8:	6a 54                	push   $0x54
411fba:	59                   	pop    %ecx
411fbb:	e8 0e 54 ff ff       	call   0x4073ce
411fc0:	e9 fc 00 00 00       	jmp    0x4120c1
411fc5:	a1 00 b0 42 00       	mov    0x42b000,%eax
411fca:	33 db                	xor    %ebx,%ebx
411fcc:	43                   	inc    %ebx
411fcd:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
411fd2:	0f 84 e5 00 00 00    	je     0x4120bd
411fd8:	84 58 1c             	test   %bl,0x1c(%eax)
411fdb:	0f 84 dc 00 00 00    	je     0x4120bd
411fe1:	ff 75 ec             	push   -0x14(%ebp)
411fe4:	ba 8c 27 40 00       	mov    $0x40278c,%edx
411fe9:	ff 75 e8             	push   -0x18(%ebp)
411fec:	ff 70 14             	push   0x14(%eax)
411fef:	ff 70 10             	push   0x10(%eax)
411ff2:	6a 51                	push   $0x51
411ff4:	59                   	pop    %ecx
411ff5:	e8 70 6a ff ff       	call   0x408a6a
411ffa:	e9 be 00 00 00       	jmp    0x4120bd
411fff:	51                   	push   %ecx
412000:	8b d0                	mov    %eax,%edx
412002:	e8 cb 17 00 00       	call   0x4137d2
412007:	85 c0                	test   %eax,%eax
412009:	74 63                	je     0x41206e
41200b:	3d 02 01 00 00       	cmp    $0x102,%eax
412010:	74 37                	je     0x412049
412012:	83 f8 ff             	cmp    $0xffffffff,%eax
412015:	0f 85 97 00 00 00    	jne    0x4120b2
41201b:	ff 15 18 c2 42 00    	call   *0x42c218
412021:	8b c8                	mov    %eax,%ecx
412023:	e8 82 95 ff ff       	call   0x40b5aa
412028:	89 45 ec             	mov    %eax,-0x14(%ebp)
41202b:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
412031:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
412037:	74 79                	je     0x4120b2
412039:	84 59 1c             	test   %bl,0x1c(%ecx)
41203c:	74 74                	je     0x4120b2
41203e:	50                   	push   %eax
41203f:	ff 71 14             	push   0x14(%ecx)
412042:	ff 71 10             	push   0x10(%ecx)
412045:	6a 57                	push   $0x57
412047:	eb 5e                	jmp    0x4120a7
412049:	b9 02 01 07 80       	mov    $0x80070102,%ecx
41204e:	89 4d ec             	mov    %ecx,-0x14(%ebp)
412051:	a1 00 b0 42 00       	mov    0x42b000,%eax
412056:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
41205b:	74 55                	je     0x4120b2
41205d:	f6 40 1c 02          	testb  $0x2,0x1c(%eax)
412061:	74 4f                	je     0x4120b2
412063:	51                   	push   %ecx
412064:	ff 70 14             	push   0x14(%eax)
412067:	ff 70 10             	push   0x10(%eax)
41206a:	6a 56                	push   $0x56
41206c:	eb 39                	jmp    0x4120a7
41206e:	8d 45 ec             	lea    -0x14(%ebp),%eax
412071:	50                   	push   %eax
412072:	ff 75 e0             	push   -0x20(%ebp)
412075:	ff 15 2c c1 42 00    	call   *0x42c12c
41207b:	85 c0                	test   %eax,%eax
41207d:	75 0a                	jne    0x412089
41207f:	b9 07 05 07 80       	mov    $0x80070507,%ecx
412084:	89 4d ec             	mov    %ecx,-0x14(%ebp)
412087:	eb 03                	jmp    0x41208c
412089:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41208c:	a1 00 b0 42 00       	mov    0x42b000,%eax
412091:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
412096:	74 1a                	je     0x4120b2
412098:	f6 40 1c 08          	testb  $0x8,0x1c(%eax)
41209c:	74 14                	je     0x4120b2
41209e:	51                   	push   %ecx
41209f:	ff 70 14             	push   0x14(%eax)
4120a2:	ff 70 10             	push   0x10(%eax)
4120a5:	6a 55                	push   $0x55
4120a7:	ba 8c 27 40 00       	mov    $0x40278c,%edx
4120ac:	59                   	pop    %ecx
4120ad:	e8 1c 53 ff ff       	call   0x4073ce
4120b2:	ff 75 e0             	push   -0x20(%ebp)
4120b5:	8b de                	mov    %esi,%ebx
4120b7:	ff 15 30 c2 42 00    	call   *0x42c230
4120bd:	85 db                	test   %ebx,%ebx
4120bf:	74 1a                	je     0x4120db
4120c1:	85 ff                	test   %edi,%edi
4120c3:	74 07                	je     0x4120cc
4120c5:	8b cf                	mov    %edi,%ecx
4120c7:	e8 09 fb ff ff       	call   0x411bd5
4120cc:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
4120d0:	74 09                	je     0x4120db
4120d2:	ff 75 e4             	push   -0x1c(%ebp)
4120d5:	ff 15 28 c1 42 00    	call   *0x42c128
4120db:	8b 45 ec             	mov    -0x14(%ebp),%eax
4120de:	e8 53 5f 01 00       	call   0x428036
4120e3:	c2 20 00             	ret    $0x20
4120e6:	8b ff                	mov    %edi,%edi
4120e8:	55                   	push   %ebp
4120e9:	8b ec                	mov    %esp,%ebp
4120eb:	83 ec 20             	sub    $0x20,%esp
4120ee:	33 c0                	xor    %eax,%eax
4120f0:	53                   	push   %ebx
4120f1:	8b d9                	mov    %ecx,%ebx
4120f3:	56                   	push   %esi
4120f4:	57                   	push   %edi
4120f5:	8d 7d e4             	lea    -0x1c(%ebp),%edi
4120f8:	6a 07                	push   $0x7
4120fa:	59                   	pop    %ecx
4120fb:	f3 ab                	rep stos %eax,%es:(%edi)
4120fd:	85 d2                	test   %edx,%edx
4120ff:	0f 84 9d 00 00 00    	je     0x4121a2
412105:	39 45 08             	cmp    %eax,0x8(%ebp)
412108:	0f 84 94 00 00 00    	je     0x4121a2
41210e:	33 ff                	xor    %edi,%edi
412110:	8d 45 e4             	lea    -0x1c(%ebp),%eax
412113:	57                   	push   %edi
412114:	6a 1c                	push   $0x1c
412116:	50                   	push   %eax
412117:	57                   	push   %edi
412118:	52                   	push   %edx
412119:	ff 15 60 c4 42 00    	call   *0x42c460
41211f:	8b f0                	mov    %eax,%esi
412121:	85 f6                	test   %esi,%esi
412123:	79 2d                	jns    0x412152
412125:	a1 00 b0 42 00       	mov    0x42b000,%eax
41212a:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
41212f:	74 19                	je     0x41214a
412131:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
412135:	74 13                	je     0x41214a
412137:	ff 70 14             	push   0x14(%eax)
41213a:	ba 8c 27 40 00       	mov    $0x40278c,%edx
41213f:	ff 70 10             	push   0x10(%eax)
412142:	6a 5a                	push   $0x5a
412144:	59                   	pop    %ecx
412145:	e8 66 52 ff ff       	call   0x4073b0
41214a:	81 ce 00 00 00 10    	or     $0x10000000,%esi
412150:	eb 4c                	jmp    0x41219e
412152:	57                   	push   %edi
412153:	6a 1c                	push   $0x1c
412155:	ff 75 08             	push   0x8(%ebp)
412158:	ff 75 e8             	push   -0x18(%ebp)
41215b:	53                   	push   %ebx
41215c:	ff 15 38 c1 42 00    	call   *0x42c138
412162:	85 c0                	test   %eax,%eax
412164:	75 36                	jne    0x41219c
412166:	a1 00 b0 42 00       	mov    0x42b000,%eax
41216b:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
412170:	74 19                	je     0x41218b
412172:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
412176:	74 13                	je     0x41218b
412178:	ff 70 14             	push   0x14(%eax)
41217b:	ba 8c 27 40 00       	mov    $0x40278c,%edx
412180:	ff 70 10             	push   0x10(%eax)
412183:	6a 5b                	push   $0x5b
412185:	59                   	pop    %ecx
412186:	e8 25 52 ff ff       	call   0x4073b0
41218b:	ff 15 18 c2 42 00    	call   *0x42c218
412191:	8b c8                	mov    %eax,%ecx
412193:	e8 12 94 ff ff       	call   0x40b5aa
412198:	8b f0                	mov    %eax,%esi
41219a:	eb 02                	jmp    0x41219e
41219c:	8b f7                	mov    %edi,%esi
41219e:	8b c6                	mov    %esi,%eax
4121a0:	eb 2a                	jmp    0x4121cc
4121a2:	a1 00 b0 42 00       	mov    0x42b000,%eax
4121a7:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
4121ac:	74 19                	je     0x4121c7
4121ae:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
4121b2:	74 13                	je     0x4121c7
4121b4:	ff 70 14             	push   0x14(%eax)
4121b7:	ba 8c 27 40 00       	mov    $0x40278c,%edx
4121bc:	ff 70 10             	push   0x10(%eax)
4121bf:	6a 59                	push   $0x59
4121c1:	59                   	pop    %ecx
4121c2:	e8 e9 51 ff ff       	call   0x4073b0
4121c7:	b8 57 00 07 80       	mov    $0x80070057,%eax
4121cc:	5f                   	pop    %edi
4121cd:	5e                   	pop    %esi
4121ce:	5b                   	pop    %ebx
4121cf:	c9                   	leave
4121d0:	c2 0c 00             	ret    $0xc
4121d3:	8b ff                	mov    %edi,%edi
4121d5:	55                   	push   %ebp
4121d6:	8b ec                	mov    %esp,%ebp
4121d8:	83 ec 34             	sub    $0x34,%esp
4121db:	53                   	push   %ebx
4121dc:	56                   	push   %esi
4121dd:	57                   	push   %edi
4121de:	8b d9                	mov    %ecx,%ebx
4121e0:	89 55 f0             	mov    %edx,-0x10(%ebp)
4121e3:	33 f6                	xor    %esi,%esi
4121e5:	8d 7d d0             	lea    -0x30(%ebp),%edi
4121e8:	6a 06                	push   $0x6
4121ea:	33 c0                	xor    %eax,%eax
4121ec:	89 75 e8             	mov    %esi,-0x18(%ebp)
4121ef:	89 75 ec             	mov    %esi,-0x14(%ebp)
4121f2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4121f5:	89 75 f8             	mov    %esi,-0x8(%ebp)
4121f8:	59                   	pop    %ecx
4121f9:	f3 ab                	rep stos %eax,%es:(%edi)
4121fb:	8b fe                	mov    %esi,%edi
4121fd:	85 db                	test   %ebx,%ebx
4121ff:	0f 84 f5 01 00 00    	je     0x4123fa
412205:	85 d2                	test   %edx,%edx
412207:	0f 84 ed 01 00 00    	je     0x4123fa
41220d:	8d 45 f8             	lea    -0x8(%ebp),%eax
412210:	50                   	push   %eax
412211:	6a 18                	push   $0x18
412213:	8d 45 d0             	lea    -0x30(%ebp),%eax
412216:	50                   	push   %eax
412217:	56                   	push   %esi
412218:	53                   	push   %ebx
412219:	ff 15 5c c4 42 00    	call   *0x42c45c
41221f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
412222:	8b d0                	mov    %eax,%edx
412224:	85 d2                	test   %edx,%edx
412226:	0f 88 98 01 00 00    	js     0x4123c4
41222c:	83 7d f8 18          	cmpl   $0x18,-0x8(%ebp)
412230:	0f 85 8e 01 00 00    	jne    0x4123c4
412236:	85 c9                	test   %ecx,%ecx
412238:	0f 84 86 01 00 00    	je     0x4123c4
41223e:	8d 45 fc             	lea    -0x4(%ebp),%eax
412241:	50                   	push   %eax
412242:	6a 04                	push   $0x4
412244:	8d 45 f4             	lea    -0xc(%ebp),%eax
412247:	50                   	push   %eax
412248:	8d 41 10             	lea    0x10(%ecx),%eax
41224b:	50                   	push   %eax
41224c:	53                   	push   %ebx
41224d:	ff 15 38 c1 42 00    	call   *0x42c138
412253:	85 c0                	test   %eax,%eax
412255:	0f 84 4d 01 00 00    	je     0x4123a8
41225b:	83 7d fc 04          	cmpl   $0x4,-0x4(%ebp)
41225f:	0f 85 43 01 00 00    	jne    0x4123a8
412265:	8d 45 fc             	lea    -0x4(%ebp),%eax
412268:	89 75 fc             	mov    %esi,-0x4(%ebp)
41226b:	50                   	push   %eax
41226c:	6a 08                	push   $0x8
41226e:	8d 45 e8             	lea    -0x18(%ebp),%eax
412271:	50                   	push   %eax
412272:	8b 45 f4             	mov    -0xc(%ebp),%eax
412275:	83 c0 40             	add    $0x40,%eax
412278:	50                   	push   %eax
412279:	53                   	push   %ebx
41227a:	ff 15 38 c1 42 00    	call   *0x42c138
412280:	85 c0                	test   %eax,%eax
412282:	0f 84 f4 00 00 00    	je     0x41237c
412288:	83 7d fc 08          	cmpl   $0x8,-0x4(%ebp)
41228c:	0f 85 ea 00 00 00    	jne    0x41237c
412292:	39 75 ec             	cmp    %esi,-0x14(%ebp)
412295:	0f 84 e1 00 00 00    	je     0x41237c
41229b:	8b 45 e8             	mov    -0x18(%ebp),%eax
41229e:	be 00 20 00 00       	mov    $0x2000,%esi
4122a3:	66 3b f0             	cmp    %ax,%si
4122a6:	72 03                	jb     0x4122ab
4122a8:	0f b7 f0             	movzwl %ax,%esi
4122ab:	33 c9                	xor    %ecx,%ecx
4122ad:	8d 46 02             	lea    0x2(%esi),%eax
4122b0:	6a 02                	push   $0x2
4122b2:	d1 e8                	shr    $1,%eax