40e0e6:	74 0c                	je     0x40e0f4
40e0e8:	8b cf                	mov    %edi,%ecx
40e0ea:	8d 14 36             	lea    (%esi,%esi,1),%edx
40e0ed:	5f                   	pop    %edi
40e0ee:	5e                   	pop    %esi
40e0ef:	e9 2c a9 00 00       	jmp    0x418a20
40e0f4:	5f                   	pop    %edi
40e0f5:	33 c0                	xor    %eax,%eax
40e0f7:	5e                   	pop    %esi
40e0f8:	c3                   	ret
40e0f9:	cc                   	int3
40e0fa:	cc                   	int3
40e0fb:	cc                   	int3
40e0fc:	cc                   	int3
40e0fd:	cc                   	int3
40e0fe:	cc                   	int3
40e0ff:	cc                   	int3
40e100:	8b ff                	mov    %edi,%edi
40e102:	55                   	push   %ebp
40e103:	8b ec                	mov    %esp,%ebp
40e105:	8b 45 08             	mov    0x8(%ebp),%eax
40e108:	8b 50 0c             	mov    0xc(%eax),%edx
40e10b:	8b 48 04             	mov    0x4(%eax),%ecx
40e10e:	e8 04 00 00 00       	call   0x40e117
40e113:	5d                   	pop    %ebp
40e114:	c2 04 00             	ret    $0x4
40e117:	8b ff                	mov    %edi,%edi
40e119:	55                   	push   %ebp
40e11a:	8b ec                	mov    %esp,%ebp
40e11c:	51                   	push   %ecx
40e11d:	51                   	push   %ecx
40e11e:	a1 08 85 43 00       	mov    0x438508,%eax
40e123:	33 c5                	xor    %ebp,%eax
40e125:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e128:	53                   	push   %ebx
40e129:	56                   	push   %esi
40e12a:	57                   	push   %edi
40e12b:	8b da                	mov    %edx,%ebx
40e12d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e130:	6a 02                	push   $0x2
40e132:	8b c3                	mov    %ebx,%eax
40e134:	59                   	pop    %ecx
40e135:	f7 e1                	mul    %ecx
40e137:	8b f8                	mov    %eax,%edi
40e139:	85 d2                	test   %edx,%edx
40e13b:	72 07                	jb     0x40e144
40e13d:	77 34                	ja     0x40e173
40e13f:	83 ff ff             	cmp    $0xffffffff,%edi
40e142:	77 2f                	ja     0x40e173
40e144:	e8 b7 fe 00 00       	call   0x41e000
40e149:	8b f4                	mov    %esp,%esi
40e14b:	57                   	push   %edi
40e14c:	ff 75 f8             	push   -0x8(%ebp)
40e14f:	56                   	push   %esi
40e150:	e8 91 cd 00 00       	call   0x41aee6
40e155:	83 c4 0c             	add    $0xc,%esp
40e158:	8b d3                	mov    %ebx,%edx
40e15a:	8b ce                	mov    %esi,%ecx
40e15c:	e8 5f ff ff ff       	call   0x40e0c0
40e161:	8d 65 ec             	lea    -0x14(%ebp),%esp
40e164:	5f                   	pop    %edi
40e165:	5e                   	pop    %esi
40e166:	5b                   	pop    %ebx
40e167:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e16a:	33 cd                	xor    %ebp,%ecx
40e16c:	e8 4f c6 00 00       	call   0x41a7c0
40e171:	c9                   	leave
40e172:	c3                   	ret
40e173:	33 c0                	xor    %eax,%eax
40e175:	eb ea                	jmp    0x40e161
40e177:	8b ff                	mov    %edi,%edi
40e179:	55                   	push   %ebp
40e17a:	8b ec                	mov    %esp,%ebp
40e17c:	83 ec 0c             	sub    $0xc,%esp
40e17f:	56                   	push   %esi
40e180:	33 f6                	xor    %esi,%esi
40e182:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40e185:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e188:	89 75 fc             	mov    %esi,-0x4(%ebp)
40e18b:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e18e:	e8 85 fd ff ff       	call   0x40df18
40e193:	85 c0                	test   %eax,%eax
40e195:	74 27                	je     0x40e1be
40e197:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e19a:	8b ce                	mov    %esi,%ecx
40e19c:	f7 d8                	neg    %eax
40e19e:	1b c0                	sbb    %eax,%eax
40e1a0:	23 45 f8             	and    -0x8(%ebp),%eax
40e1a3:	74 03                	je     0x40e1a8
40e1a5:	8b 48 08             	mov    0x8(%eax),%ecx
40e1a8:	ff 75 08             	push   0x8(%ebp)
40e1ab:	e8 a9 00 00 00       	call   0x40e259
40e1b0:	85 c0                	test   %eax,%eax
40e1b2:	74 d7                	je     0x40e18b
40e1b4:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e1b7:	e8 09 00 00 00       	call   0x40e1c5
40e1bc:	8b f0                	mov    %eax,%esi
40e1be:	8b c6                	mov    %esi,%eax
40e1c0:	5e                   	pop    %esi
40e1c1:	c9                   	leave
40e1c2:	c2 04 00             	ret    $0x4
40e1c5:	6a 00                	push   $0x0
40e1c7:	b8 51 e1 41 00       	mov    $0x41e151,%eax
40e1cc:	e8 3d cc 00 00       	call   0x41ae0e
40e1d1:	8b f9                	mov    %ecx,%edi
40e1d3:	8b 0f                	mov    (%edi),%ecx
40e1d5:	33 db                	xor    %ebx,%ebx
40e1d7:	85 c9                	test   %ecx,%ecx
40e1d9:	74 43                	je     0x40e21e
40e1db:	39 5f 08             	cmp    %ebx,0x8(%edi)
40e1de:	74 3e                	je     0x40e21e
40e1e0:	39 5f 04             	cmp    %ebx,0x4(%edi)
40e1e3:	74 39                	je     0x40e21e
40e1e5:	ff 77 08             	push   0x8(%edi)
40e1e8:	e8 39 00 00 00       	call   0x40e226
40e1ed:	85 c0                	test   %eax,%eax
40e1ef:	74 18                	je     0x40e209
40e1f1:	8b 58 04             	mov    0x4(%eax),%ebx
40e1f4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e1f8:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40e1fe:	8b ce                	mov    %esi,%ecx
40e200:	50                   	push   %eax
40e201:	ff 15 20 a5 43 00    	call   *0x43a520
40e207:	ff d6                	call   *%esi
40e209:	8b 47 08             	mov    0x8(%edi),%eax
40e20c:	8b 0f                	mov    (%edi),%ecx
40e20e:	83 c1 04             	add    $0x4,%ecx
40e211:	8b 10                	mov    (%eax),%edx
40e213:	2b d1                	sub    %ecx,%edx
40e215:	f7 da                	neg    %edx
40e217:	1b d2                	sbb    %edx,%edx
40e219:	23 10                	and    (%eax),%edx
40e21b:	89 57 04             	mov    %edx,0x4(%edi)
40e21e:	8b c3                	mov    %ebx,%eax
40e220:	e8 b7 cb 00 00       	call   0x41addc
40e225:	c3                   	ret
40e226:	8b ff                	mov    %edi,%edi
40e228:	55                   	push   %ebp
40e229:	8b ec                	mov    %esp,%ebp
40e22b:	8b 55 08             	mov    0x8(%ebp),%edx
40e22e:	85 d2                	test   %edx,%edx
40e230:	74 23                	je     0x40e255
40e232:	8d 41 04             	lea    0x4(%ecx),%eax
40e235:	3b d0                	cmp    %eax,%edx
40e237:	74 1c                	je     0x40e255
40e239:	56                   	push   %esi
40e23a:	8b 32                	mov    (%edx),%esi
40e23c:	8b 06                	mov    (%esi),%eax
40e23e:	89 02                	mov    %eax,(%edx)
40e240:	3b 71 08             	cmp    0x8(%ecx),%esi
40e243:	75 03                	jne    0x40e248
40e245:	89 51 08             	mov    %edx,0x8(%ecx)
40e248:	ff 49 0c             	decl   0xc(%ecx)
40e24b:	8b c6                	mov    %esi,%eax
40e24d:	83 26 00             	andl   $0x0,(%esi)
40e250:	5e                   	pop    %esi
40e251:	5d                   	pop    %ebp
40e252:	c2 04 00             	ret    $0x4
40e255:	33 c0                	xor    %eax,%eax
40e257:	eb f8                	jmp    0x40e251
40e259:	8b ff                	mov    %edi,%edi
40e25b:	55                   	push   %ebp
40e25c:	8b ec                	mov    %esp,%ebp
40e25e:	56                   	push   %esi
40e25f:	57                   	push   %edi
40e260:	8b 7d 08             	mov    0x8(%ebp),%edi
40e263:	8b f1                	mov    %ecx,%esi
40e265:	57                   	push   %edi
40e266:	e8 2f 00 00 00       	call   0x40e29a
40e26b:	85 c0                	test   %eax,%eax
40e26d:	74 27                	je     0x40e296
40e26f:	8d 47 54             	lea    0x54(%edi),%eax
40e272:	50                   	push   %eax
40e273:	8d 4e 54             	lea    0x54(%esi),%ecx
40e276:	e8 1f 00 00 00       	call   0x40e29a
40e27b:	85 c0                	test   %eax,%eax
40e27d:	74 17                	je     0x40e296
40e27f:	8b 86 3c 02 00 00    	mov    0x23c(%esi),%eax
40e285:	3b 87 3c 02 00 00    	cmp    0x23c(%edi),%eax
40e28b:	75 09                	jne    0x40e296
40e28d:	33 c0                	xor    %eax,%eax
40e28f:	40                   	inc    %eax
40e290:	5f                   	pop    %edi
40e291:	5e                   	pop    %esi
40e292:	5d                   	pop    %ebp
40e293:	c2 04 00             	ret    $0x4
40e296:	33 c0                	xor    %eax,%eax
40e298:	eb f6                	jmp    0x40e290
40e29a:	8b ff                	mov    %edi,%edi
40e29c:	55                   	push   %ebp
40e29d:	8b ec                	mov    %esp,%ebp
40e29f:	8b 45 08             	mov    0x8(%ebp),%eax
40e2a2:	8b 49 04             	mov    0x4(%ecx),%ecx
40e2a5:	8b 50 04             	mov    0x4(%eax),%edx
40e2a8:	e8 d3 b3 00 00       	call   0x419680
40e2ad:	f7 d8                	neg    %eax
40e2af:	1b c0                	sbb    %eax,%eax
40e2b1:	40                   	inc    %eax
40e2b2:	5d                   	pop    %ebp
40e2b3:	c2 04 00             	ret    $0x4
40e2b6:	8b ff                	mov    %edi,%edi
40e2b8:	55                   	push   %ebp
40e2b9:	8b ec                	mov    %esp,%ebp
40e2bb:	83 ec 0c             	sub    $0xc,%esp
40e2be:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e2c2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40e2c5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e2c8:	56                   	push   %esi
40e2c9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40e2cc:	e8 47 fc ff ff       	call   0x40df18
40e2d1:	85 c0                	test   %eax,%eax
40e2d3:	74 2e                	je     0x40e303
40e2d5:	8b 75 fc             	mov    -0x4(%ebp),%esi
40e2d8:	8b c6                	mov    %esi,%eax
40e2da:	f7 d8                	neg    %eax
40e2dc:	1b c0                	sbb    %eax,%eax
40e2de:	23 45 f8             	and    -0x8(%ebp),%eax
40e2e1:	74 27                	je     0x40e30a
40e2e3:	8b 48 08             	mov    0x8(%eax),%ecx
40e2e6:	ff 75 08             	push   0x8(%ebp)
40e2e9:	e8 6b ff ff ff       	call   0x40e259
40e2ee:	85 c0                	test   %eax,%eax
40e2f0:	74 d7                	je     0x40e2c9
40e2f2:	f7 de                	neg    %esi
40e2f4:	1b f6                	sbb    %esi,%esi
40e2f6:	23 75 f8             	and    -0x8(%ebp),%esi
40e2f9:	74 13                	je     0x40e30e
40e2fb:	8d 46 04             	lea    0x4(%esi),%eax
40e2fe:	5e                   	pop    %esi
40e2ff:	c9                   	leave
40e300:	c2 04 00             	ret    $0x4
40e303:	b8 f0 8a 43 00       	mov    $0x438af0,%eax
40e308:	eb f4                	jmp    0x40e2fe
40e30a:	33 c9                	xor    %ecx,%ecx
40e30c:	eb d8                	jmp    0x40e2e6
40e30e:	b8 dc 8a 43 00       	mov    $0x438adc,%eax
40e313:	eb e9                	jmp    0x40e2fe
40e315:	cc                   	int3
40e316:	cc                   	int3
40e317:	cc                   	int3
40e318:	cc                   	int3
40e319:	cc                   	int3
40e31a:	cc                   	int3
40e31b:	cc                   	int3
40e31c:	cc                   	int3
40e31d:	cc                   	int3
40e31e:	cc                   	int3
40e31f:	cc                   	int3
40e320:	8b ff                	mov    %edi,%edi
40e322:	55                   	push   %ebp
40e323:	8b ec                	mov    %esp,%ebp
40e325:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e328:	8d 49 04             	lea    0x4(%ecx),%ecx
40e32b:	e8 82 da 00 00       	call   0x41bdb2
40e330:	83 f8 ff             	cmp    $0xffffffff,%eax
40e333:	75 05                	jne    0x40e33a
40e335:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
40e33a:	5d                   	pop    %ebp
40e33b:	c2 04 00             	ret    $0x4
40e33e:	33 d2                	xor    %edx,%edx
40e340:	39 51 0c             	cmp    %edx,0xc(%ecx)
40e343:	75 11                	jne    0x40e356
40e345:	8b 01                	mov    (%ecx),%eax
40e347:	89 51 08             	mov    %edx,0x8(%ecx)
40e34a:	89 41 04             	mov    %eax,0x4(%ecx)
40e34d:	89 11                	mov    %edx,(%ecx)
40e34f:	c7 41 0c 01 00 00 00 	movl   $0x1,0xc(%ecx)
40e356:	c3                   	ret
40e357:	8b ff                	mov    %edi,%edi
40e359:	55                   	push   %ebp
40e35a:	8b ec                	mov    %esp,%ebp
40e35c:	8b 45 08             	mov    0x8(%ebp),%eax
40e35f:	56                   	push   %esi
40e360:	8b f1                	mov    %ecx,%esi
40e362:	57                   	push   %edi
40e363:	8b 48 04             	mov    0x4(%eax),%ecx
40e366:	6a ff                	push   $0xffffffff
40e368:	8b 06                	mov    (%esi),%eax
40e36a:	6a 00                	push   $0x0
40e36c:	51                   	push   %ecx
40e36d:	8b 78 10             	mov    0x10(%eax),%edi
40e370:	81 ff a0 36 41 00    	cmp    $0x4136a0,%edi
40e376:	0f 85 18 25 01 00    	jne    0x420894
40e37c:	8b ce                	mov    %esi,%ecx
40e37e:	e8 1d 53 00 00       	call   0x4136a0
40e383:	5f                   	pop    %edi
40e384:	5e                   	pop    %esi
40e385:	5d                   	pop    %ebp
40e386:	c2 04 00             	ret    $0x4
40e389:	8b ff                	mov    %edi,%edi
40e38b:	55                   	push   %ebp
40e38c:	8b ec                	mov    %esp,%ebp
40e38e:	56                   	push   %esi
40e38f:	8b f1                	mov    %ecx,%esi
40e391:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40e395:	74 1c                	je     0x40e3b3
40e397:	8b 16                	mov    (%esi),%edx
40e399:	8b 46 08             	mov    0x8(%esi),%eax
40e39c:	8b 40 04             	mov    0x4(%eax),%eax
40e39f:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
40e3a3:	50                   	push   %eax
40e3a4:	ff 15 84 a4 43 00    	call   *0x43a484
40e3aa:	59                   	pop    %ecx
40e3ab:	85 c0                	test   %eax,%eax
40e3ad:	0f 85 f2 24 01 00    	jne    0x4208a5
40e3b3:	8b 56 04             	mov    0x4(%esi),%edx
40e3b6:	85 d2                	test   %edx,%edx
40e3b8:	74 1f                	je     0x40e3d9
40e3ba:	8b 46 08             	mov    0x8(%esi),%eax
40e3bd:	8b 0e                	mov    (%esi),%ecx
40e3bf:	03 ca                	add    %edx,%ecx
40e3c1:	8b 40 04             	mov    0x4(%eax),%eax
40e3c4:	0f b7 44 48 fe       	movzwl -0x2(%eax,%ecx,2),%eax
40e3c9:	50                   	push   %eax
40e3ca:	ff 15 84 a4 43 00    	call   *0x43a484
40e3d0:	59                   	pop    %ecx
40e3d1:	85 c0                	test   %eax,%eax
40e3d3:	0f 85 14 25 01 00    	jne    0x4208ed
40e3d9:	5e                   	pop    %esi
40e3da:	5d                   	pop    %ebp
40e3db:	c3                   	ret
40e3dc:	68 a8 01 00 00       	push   $0x1a8
40e3e1:	b8 0d e5 41 00       	mov    $0x41e50d,%eax
40e3e6:	e8 56 ca 00 00       	call   0x41ae41
40e3eb:	8b f9                	mov    %ecx,%edi
40e3ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e3f0:	8d 5f 0c             	lea    0xc(%edi),%ebx
40e3f3:	8b 03                	mov    (%ebx),%eax
40e3f5:	33 f6                	xor    %esi,%esi
40e3f7:	6a ff                	push   $0xffffffff
40e3f9:	56                   	push   %esi
40e3fa:	51                   	push   %ecx
40e3fb:	8b 40 10             	mov    0x10(%eax),%eax
40e3fe:	89 85 58 fe ff ff    	mov    %eax,-0x1a8(%ebp)
40e404:	3d a0 36 41 00       	cmp    $0x4136a0,%eax
40e409:	0f 85 f0 24 01 00    	jne    0x4208ff
40e40f:	8b cb                	mov    %ebx,%ecx
40e411:	e8 8a 52 00 00       	call   0x4136a0
40e416:	8b 43 0c             	mov    0xc(%ebx),%eax
40e419:	8d 8d 4c fe ff ff    	lea    -0x1b4(%ebp),%ecx
40e41f:	89 b5 4c fe ff ff    	mov    %esi,-0x1b4(%ebp)
40e425:	89 85 50 fe ff ff    	mov    %eax,-0x1b0(%ebp)
40e42b:	89 9d 54 fe ff ff    	mov    %ebx,-0x1ac(%ebp)
40e431:	e8 53 ff ff ff       	call   0x40e389
40e436:	8b 47 18             	mov    0x18(%edi),%eax
40e439:	39 85 50 fe ff ff    	cmp    %eax,-0x1b0(%ebp)
40e43f:	0f 85 cf 24 01 00    	jne    0x420914
40e445:	6a 5f                	push   $0x5f
40e447:	58                   	pop    %eax
40e448:	66 89 87 b6 01 00 00 	mov    %ax,0x1b6(%edi)