41f195:	83 c0 04             	add    $0x4,%eax
41f198:	66 8b 08             	mov    (%eax),%cx
41f19b:	66 81 f9 ff ff       	cmp    $0xffff,%cx
41f1a0:	75 05                	jne    0x41f1a7
41f1a2:	83 c0 04             	add    $0x4,%eax
41f1a5:	eb 0c                	jmp    0x41f1b3
41f1a7:	03 c2                	add    %edx,%eax
41f1a9:	66 85 c9             	test   %cx,%cx
41f1ac:	74 05                	je     0x41f1b3
41f1ae:	66 8b 08             	mov    (%eax),%cx
41f1b1:	eb f4                	jmp    0x41f1a7
41f1b3:	66 8b 08             	mov    (%eax),%cx
41f1b6:	03 c2                	add    %edx,%eax
41f1b8:	66 85 c9             	test   %cx,%cx
41f1bb:	75 f6                	jne    0x41f1b3
41f1bd:	c3                   	ret
41f1be:	03 c2                	add    %edx,%eax
41f1c0:	66 85 c9             	test   %cx,%cx
41f1c3:	74 d3                	je     0x41f198
41f1c5:	66 8b 08             	mov    (%eax),%cx
41f1c8:	eb f4                	jmp    0x41f1be
41f1ca:	53                   	push   %ebx
41f1cb:	8b 5c 24 08          	mov    0x8(%esp),%ebx
41f1cf:	33 c0                	xor    %eax,%eax
41f1d1:	56                   	push   %esi
41f1d2:	66 81 7b 02 ff ff    	cmpw   $0xffff,0x2(%ebx)
41f1d8:	57                   	push   %edi
41f1d9:	53                   	push   %ebx
41f1da:	0f 94 c0             	sete   %al
41f1dd:	8b f0                	mov    %eax,%esi
41f1df:	e8 90 ff ff ff       	call   0x41f174
41f1e4:	66 81 7b 02 ff ff    	cmpw   $0xffff,0x2(%ebx)
41f1ea:	59                   	pop    %ecx
41f1eb:	75 05                	jne    0x41f1f2
41f1ed:	8b 4b 0c             	mov    0xc(%ebx),%ecx
41f1f0:	eb 02                	jmp    0x41f1f4
41f1f2:	8b 0b                	mov    (%ebx),%ecx
41f1f4:	f6 c1 40             	test   $0x40,%cl
41f1f7:	74 18                	je     0x41f211
41f1f9:	8b ce                	mov    %esi,%ecx
41f1fb:	f7 d9                	neg    %ecx
41f1fd:	1b c9                	sbb    %ecx,%ecx
41f1ff:	83 e1 02             	and    $0x2,%ecx
41f202:	41                   	inc    %ecx
41f203:	8d 3c 48             	lea    (%eax,%ecx,2),%edi
41f206:	57                   	push   %edi
41f207:	e8 a4 d9 fe ff       	call   0x40cbb0
41f20c:	59                   	pop    %ecx
41f20d:	8d 44 47 02          	lea    0x2(%edi,%eax,2),%eax
41f211:	85 f6                	test   %esi,%esi
41f213:	74 05                	je     0x41f21a
41f215:	8a 4b 10             	mov    0x10(%ebx),%cl
41f218:	eb 03                	jmp    0x41f21d
41f21a:	8a 4b 08             	mov    0x8(%ebx),%cl
41f21d:	84 c9                	test   %cl,%cl
41f21f:	76 5a                	jbe    0x41f27b
41f221:	f7 de                	neg    %esi
41f223:	1b f6                	sbb    %esi,%esi
41f225:	83 e6 06             	and    $0x6,%esi
41f228:	83 c6 12             	add    $0x12,%esi
41f22b:	0f b6 d1             	movzbl %cl,%edx
41f22e:	83 c0 03             	add    $0x3,%eax
41f231:	24 fc                	and    $0xfc,%al
41f233:	03 c6                	add    %esi,%eax
41f235:	66 8b 08             	mov    (%eax),%cx
41f238:	66 81 f9 ff ff       	cmp    $0xffff,%cx
41f23d:	75 05                	jne    0x41f244
41f23f:	83 c0 04             	add    $0x4,%eax
41f242:	eb 0f                	jmp    0x41f253
41f244:	83 c0 02             	add    $0x2,%eax
41f247:	66 85 c9             	test   %cx,%cx
41f24a:	74 07                	je     0x41f253
41f24c:	66 8b 08             	mov    (%eax),%cx
41f24f:	40                   	inc    %eax
41f250:	40                   	inc    %eax
41f251:	eb f4                	jmp    0x41f247
41f253:	66 8b 08             	mov    (%eax),%cx
41f256:	66 81 f9 ff ff       	cmp    $0xffff,%cx
41f25b:	75 05                	jne    0x41f262
41f25d:	83 c0 04             	add    $0x4,%eax
41f260:	eb 0f                	jmp    0x41f271
41f262:	83 c0 02             	add    $0x2,%eax
41f265:	66 85 c9             	test   %cx,%cx
41f268:	74 07                	je     0x41f271
41f26a:	66 8b 08             	mov    (%eax),%cx
41f26d:	40                   	inc    %eax
41f26e:	40                   	inc    %eax
41f26f:	eb f4                	jmp    0x41f265
41f271:	0f b7 08             	movzwl (%eax),%ecx
41f274:	4a                   	dec    %edx
41f275:	8d 44 08 02          	lea    0x2(%eax,%ecx,1),%eax
41f279:	75 b3                	jne    0x41f22e
41f27b:	5f                   	pop    %edi
41f27c:	2b c3                	sub    %ebx,%eax
41f27e:	5e                   	pop    %esi
41f27f:	5b                   	pop    %ebx
41f280:	c3                   	ret
41f281:	56                   	push   %esi
41f282:	8b 74 24 08          	mov    0x8(%esp),%esi
41f286:	66 81 7e 02 ff ff    	cmpw   $0xffff,0x2(%esi)
41f28c:	75 05                	jne    0x41f293
41f28e:	8b 46 0c             	mov    0xc(%esi),%eax
41f291:	eb 02                	jmp    0x41f295
41f293:	8b 06                	mov    (%esi),%eax
41f295:	a8 40                	test   $0x40,%al
41f297:	75 04                	jne    0x41f29d
41f299:	33 c0                	xor    %eax,%eax
41f29b:	5e                   	pop    %esi
41f29c:	c3                   	ret
41f29d:	56                   	push   %esi
41f29e:	e8 d1 fe ff ff       	call   0x41f174
41f2a3:	8b 54 24 14          	mov    0x14(%esp),%edx
41f2a7:	59                   	pop    %ecx
41f2a8:	66 8b 08             	mov    (%eax),%cx
41f2ab:	6a 00                	push   $0x0
41f2ad:	66 89 0a             	mov    %cx,(%edx)
41f2b0:	33 c9                	xor    %ecx,%ecx
41f2b2:	66 81 7e 02 ff ff    	cmpw   $0xffff,0x2(%esi)
41f2b8:	6a 00                	push   $0x0
41f2ba:	6a 20                	push   $0x20
41f2bc:	6a 20                	push   $0x20
41f2be:	0f 95 c1             	setne  %cl
41f2c1:	49                   	dec    %ecx
41f2c2:	83 e1 02             	and    $0x2,%ecx
41f2c5:	41                   	inc    %ecx
41f2c6:	8d 34 48             	lea    (%eax,%ecx,2),%esi
41f2c9:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
41f2cd:	e8 c2 f8 ff ff       	call   0x41eb94
41f2d2:	50                   	push   %eax
41f2d3:	6a ff                	push   $0xffffffff
41f2d5:	56                   	push   %esi
41f2d6:	6a 00                	push   $0x0
41f2d8:	6a 00                	push   $0x0
41f2da:	ff 15 f8 96 43 00    	call   *0x4396f8
41f2e0:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
41f2e4:	6a ff                	push   $0xffffffff
41f2e6:	e8 81 f8 ff ff       	call   0x41eb6c
41f2eb:	6a 01                	push   $0x1
41f2ed:	58                   	pop    %eax
41f2ee:	5e                   	pop    %esi
41f2ef:	c3                   	ret
41f2f0:	55                   	push   %ebp
41f2f1:	8b ec                	mov    %esp,%ebp
41f2f3:	83 ec 50             	sub    $0x50,%esp
41f2f6:	57                   	push   %edi
41f2f7:	33 ff                	xor    %edi,%edi
41f2f9:	39 79 04             	cmp    %edi,0x4(%ecx)
41f2fc:	89 4d f8             	mov    %ecx,-0x8(%ebp)
41f2ff:	75 07                	jne    0x41f308
41f301:	33 c0                	xor    %eax,%eax
41f303:	e9 fa 00 00 00       	jmp    0x41f402
41f308:	56                   	push   %esi
41f309:	53                   	push   %ebx
41f30a:	ff 31                	push   (%ecx)
41f30c:	ff 15 28 97 43 00    	call   *0x439728
41f312:	8b d8                	mov    %eax,%ebx
41f314:	33 c9                	xor    %ecx,%ecx
41f316:	66 8b 43 02          	mov    0x2(%ebx),%ax
41f31a:	66 3d ff ff          	cmp    $0xffff,%ax
41f31e:	0f 94 c1             	sete   %cl
41f321:	66 3d ff ff          	cmp    $0xffff,%ax
41f325:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41f328:	75 05                	jne    0x41f32f
41f32a:	8b 43 0c             	mov    0xc(%ebx),%eax
41f32d:	eb 02                	jmp    0x41f331
41f32f:	8b 03                	mov    (%ebx),%eax
41f331:	8b 75 fc             	mov    -0x4(%ebp),%esi
41f334:	83 e0 40             	and    $0x40,%eax
41f337:	f7 de                	neg    %esi
41f339:	1b f6                	sbb    %esi,%esi
41f33b:	89 45 f4             	mov    %eax,-0xc(%ebp)
41f33e:	83 e6 02             	and    $0x2,%esi
41f341:	46                   	inc    %esi
41f342:	d1 e6                	shl    $1,%esi
41f344:	39 7d fc             	cmp    %edi,-0x4(%ebp)
41f347:	74 06                	je     0x41f34f
41f349:	83 4b 0c 40          	orl    $0x40,0xc(%ebx)
41f34d:	eb 03                	jmp    0x41f352
41f34f:	83 0b 40             	orl    $0x40,(%ebx)
41f352:	8d 45 b0             	lea    -0x50(%ebp),%eax
41f355:	6a 20                	push   $0x20
41f357:	50                   	push   %eax
41f358:	6a ff                	push   $0xffffffff
41f35a:	ff 75 08             	push   0x8(%ebp)
41f35d:	57                   	push   %edi
41f35e:	57                   	push   %edi
41f35f:	ff 15 f4 96 43 00    	call   *0x4396f4
41f365:	8d 04 46             	lea    (%esi,%eax,2),%eax
41f368:	53                   	push   %ebx
41f369:	89 45 08             	mov    %eax,0x8(%ebp)
41f36c:	e8 03 fe ff ff       	call   0x41f174
41f371:	59                   	pop    %ecx
41f372:	8b f8                	mov    %eax,%edi
41f374:	33 c9                	xor    %ecx,%ecx
41f376:	89 7d f0             	mov    %edi,-0x10(%ebp)
41f379:	39 4d f4             	cmp    %ecx,-0xc(%ebp)
41f37c:	74 0e                	je     0x41f38c
41f37e:	8d 04 37             	lea    (%edi,%esi,1),%eax
41f381:	50                   	push   %eax
41f382:	e8 29 d8 fe ff       	call   0x40cbb0
41f387:	59                   	pop    %ecx
41f388:	8d 4c 46 02          	lea    0x2(%esi,%eax,2),%ecx
41f38c:	8b 55 08             	mov    0x8(%ebp),%edx
41f38f:	8d 44 39 03          	lea    0x3(%ecx,%edi,1),%eax
41f393:	24 fc                	and    $0xfc,%al
41f395:	8d 7c 17 03          	lea    0x3(%edi,%edx,1),%edi
41f399:	89 45 f4             	mov    %eax,-0xc(%ebp)
41f39c:	83 e7 fc             	and    $0xfffffffc,%edi
41f39f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
41f3a3:	74 05                	je     0x41f3aa
41f3a5:	8a 53 10             	mov    0x10(%ebx),%dl
41f3a8:	eb 03                	jmp    0x41f3ad
41f3aa:	8a 53 08             	mov    0x8(%ebx),%dl
41f3ad:	39 4d 08             	cmp    %ecx,0x8(%ebp)
41f3b0:	74 17                	je     0x41f3c9
41f3b2:	84 d2                	test   %dl,%dl
41f3b4:	76 13                	jbe    0x41f3c9
41f3b6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41f3b9:	2b d8                	sub    %eax,%ebx
41f3bb:	03 59 04             	add    0x4(%ecx),%ebx
41f3be:	53                   	push   %ebx
41f3bf:	50                   	push   %eax
41f3c0:	57                   	push   %edi
41f3c1:	e8 da db fe ff       	call   0x40cfa0
41f3c6:	83 c4 0c             	add    $0xc,%esp
41f3c9:	8b 45 08             	mov    0x8(%ebp),%eax
41f3cc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41f3cf:	66 8b 55 0c          	mov    0xc(%ebp),%dx
41f3d3:	2b c6                	sub    %esi,%eax
41f3d5:	50                   	push   %eax
41f3d6:	66 89 11             	mov    %dx,(%ecx)
41f3d9:	8d 45 b0             	lea    -0x50(%ebp),%eax
41f3dc:	03 ce                	add    %esi,%ecx
41f3de:	50                   	push   %eax
41f3df:	51                   	push   %ecx
41f3e0:	e8 bb db fe ff       	call   0x40cfa0
41f3e5:	8b 75 f8             	mov    -0x8(%ebp),%esi
41f3e8:	2b 7d f4             	sub    -0xc(%ebp),%edi
41f3eb:	83 c4 0c             	add    $0xc,%esp
41f3ee:	ff 36                	push   (%esi)
41f3f0:	01 7e 04             	add    %edi,0x4(%esi)
41f3f3:	ff 15 30 97 43 00    	call   *0x439730
41f3f9:	83 66 08 00          	andl   $0x0,0x8(%esi)
41f3fd:	6a 01                	push   $0x1
41f3ff:	58                   	pop    %eax
41f400:	5b                   	pop    %ebx
41f401:	5e                   	pop    %esi
41f402:	5f                   	pop    %edi
41f403:	c9                   	leave
41f404:	c2 08 00             	ret    $0x8
41f407:	55                   	push   %ebp
41f408:	8b ec                	mov    %esp,%ebp
41f40a:	83 ec 40             	sub    $0x40,%esp
41f40d:	53                   	push   %ebx
41f40e:	56                   	push   %esi
41f40f:	8b 35 98 95 43 00    	mov    0x439598,%esi
41f415:	57                   	push   %edi
41f416:	6a 0a                	push   $0xa
41f418:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41f41b:	5b                   	pop    %ebx
41f41c:	bf b0 b6 42 00       	mov    $0x42b6b0,%edi
41f421:	6a 11                	push   $0x11
41f423:	ff d6                	call   *%esi
41f425:	85 c0                	test   %eax,%eax
41f427:	75 08                	jne    0x41f431
41f429:	6a 0d                	push   $0xd
41f42b:	ff d6                	call   *%esi
41f42d:	85 c0                	test   %eax,%eax
41f42f:	74 4a                	je     0x41f47b
41f431:	8d 4d c0             	lea    -0x40(%ebp),%ecx
41f434:	51                   	push   %ecx
41f435:	6a 3c                	push   $0x3c
41f437:	50                   	push   %eax
41f438:	ff 15 b0 95 43 00    	call   *0x4395b0
41f43e:	85 c0                	test   %eax,%eax
41f440:	74 39                	je     0x41f47b
41f442:	6a 00                	push   $0x0
41f444:	8d 7d dc             	lea    -0x24(%ebp),%edi
41f447:	ff 15 64 99 43 00    	call   *0x439964
41f44d:	8b f0                	mov    %eax,%esi
41f44f:	8b 45 c0             	mov    -0x40(%ebp),%eax
41f452:	85 c0                	test   %eax,%eax
41f454:	7d 05                	jge    0x41f45b
41f456:	f7 d8                	neg    %eax
41f458:	89 45 c0             	mov    %eax,-0x40(%ebp)
41f45b:	6a 5a                	push   $0x5a
41f45d:	56                   	push   %esi
41f45e:	ff 15 cc 95 43 00    	call   *0x4395cc
41f464:	50                   	push   %eax
41f465:	6a 48                	push   $0x48
41f467:	ff 75 c0             	push   -0x40(%ebp)
41f46a:	ff 15 14 97 43 00    	call   *0x439714
41f470:	56                   	push   %esi
41f471:	6a 00                	push   $0x0
41f473:	8b d8                	mov    %eax,%ebx
41f475:	ff 15 68 99 43 00    	call   *0x439968
41f47b:	66 83 7d 08 00       	cmpw   $0x0,0x8(%ebp)
41f480:	75 03                	jne    0x41f485
41f482:	89 5d 08             	mov    %ebx,0x8(%ebp)
41f485:	ff 75 08             	push   0x8(%ebp)
41f488:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41f48b:	57                   	push   %edi
41f48c:	e8 5f fe ff ff       	call   0x41f2f0
41f491:	5f                   	pop    %edi
41f492:	5e                   	pop    %esi
41f493:	5b                   	pop    %ebx
41f494:	c9                   	leave
41f495:	c2 04 00             	ret    $0x4
41f498:	b8 00 7d 42 00       	mov    $0x427d00,%eax
41f49d:	e8 8e c7 fe ff       	call   0x40bc30
41f4a2:	81 ec 4c 01 00 00    	sub    $0x14c,%esp
41f4a8:	56                   	push   %esi
41f4a9:	57                   	push   %edi
41f4aa:	8b 7d 08             	mov    0x8(%ebp),%edi
41f4ad:	8d 45 ec             	lea    -0x14(%ebp),%eax
41f4b0:	50                   	push   %eax
41f4b1:	be 04 01 00 00       	mov    $0x104,%esi
41f4b6:	57                   	push   %edi
41f4b7:	56                   	push   %esi
41f4b8:	ff 75 0c             	push   0xc(%ebp)
41f4bb:	ff 15 80 96 43 00    	call   *0x439680
41f4c1:	85 c0                	test   %eax,%eax
41f4c3:	75 0d                	jne    0x41f4d2
41f4c5:	56                   	push   %esi
41f4c6:	ff 75 0c             	push   0xc(%ebp)
41f4c9:	57                   	push   %edi
41f4ca:	ff 15 2c 97 43 00    	call   *0x43972c
41f4d0:	eb 3d                	jmp    0x41f50f
41f4d2:	8d 4d 08             	lea    0x8(%ebp),%ecx
41f4d5:	e8 b2 f4 ff ff       	call   0x41e98c
41f4da:	8d 45 08             	lea    0x8(%ebp),%eax
41f4dd:	33 f6                	xor    %esi,%esi
41f4df:	50                   	push   %eax
41f4e0:	57                   	push   %edi
41f4e1:	89 75 fc             	mov    %esi,-0x4(%ebp)
41f4e4:	e8 88 00 00 00       	call   0x41f571
41f4e9:	56                   	push   %esi
41f4ea:	8d 45 f0             	lea    -0x10(%ebp),%eax
41f4ed:	56                   	push   %esi
41f4ee:	50                   	push   %eax
41f4ef:	8d 45 e8             	lea    -0x18(%ebp),%eax
41f4f2:	50                   	push   %eax
41f4f3:	56                   	push   %esi
41f4f4:	56                   	push   %esi
41f4f5:	56                   	push   %esi
41f4f6:	ff 75 08             	push   0x8(%ebp)
41f4f9:	ff 15 84 96 43 00    	call   *0x439684
41f4ff:	85 c0                	test   %eax,%eax
41f501:	75 10                	jne    0x41f513
41f503:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)