4111d6:	ff 15 3c 35 42 00    	call   *0x42353c
4111dc:	81 c7 00 40 00 00    	add    $0x4000,%edi
4111e2:	57                   	push   %edi
4111e3:	ff 15 40 35 42 00    	call   *0x423540
4111e9:	59                   	pop    %ecx
4111ea:	8b d8                	mov    %eax,%ebx
4111ec:	59                   	pop    %ecx
4111ed:	85 db                	test   %ebx,%ebx
4111ef:	75 cf                	jne    0x4111c0
4111f1:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
4111f6:	33 c9                	xor    %ecx,%ecx
4111f8:	41                   	inc    %ecx
4111f9:	85 c0                	test   %eax,%eax
4111fb:	79 11                	jns    0x41120e
4111fd:	50                   	push   %eax
4111fe:	68 9e 00 00 00       	push   $0x9e
411203:	e8 4b d4 ff ff       	call   0x40e653
411208:	59                   	pop    %ecx
411209:	e9 0e 03 00 00       	jmp    0x41151c
41120e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
411212:	75 06                	jne    0x41121a
411214:	53                   	push   %ebx
411215:	e9 fc 02 00 00       	jmp    0x411516
41121a:	8b 43 04             	mov    0x4(%ebx),%eax
41121d:	23 c1                	and    %ecx,%eax
41121f:	89 5d e0             	mov    %ebx,-0x20(%ebp)
411222:	89 46 04             	mov    %eax,0x4(%esi)
411225:	8b 43 04             	mov    0x4(%ebx),%eax
411228:	d1 e8                	shr    $1,%eax
41122a:	23 c1                	and    %ecx,%eax
41122c:	89 46 08             	mov    %eax,0x8(%esi)
41122f:	8b 43 04             	mov    0x4(%ebx),%eax
411232:	c1 e8 02             	shr    $0x2,%eax
411235:	23 c1                	and    %ecx,%eax
411237:	89 46 0c             	mov    %eax,0xc(%esi)
41123a:	8b 43 04             	mov    0x4(%ebx),%eax
41123d:	c1 e8 03             	shr    $0x3,%eax
411240:	23 c1                	and    %ecx,%eax
411242:	89 46 10             	mov    %eax,0x10(%esi)
411245:	8b 43 04             	mov    0x4(%ebx),%eax
411248:	c1 e8 04             	shr    $0x4,%eax
41124b:	23 c1                	and    %ecx,%eax
41124d:	89 46 14             	mov    %eax,0x14(%esi)
411250:	8b 43 04             	mov    0x4(%ebx),%eax
411253:	c1 e8 05             	shr    $0x5,%eax
411256:	23 c1                	and    %ecx,%eax
411258:	89 46 18             	mov    %eax,0x18(%esi)
41125b:	8b 43 04             	mov    0x4(%ebx),%eax
41125e:	c1 e8 07             	shr    $0x7,%eax
411261:	23 c1                	and    %ecx,%eax
411263:	89 46 1c             	mov    %eax,0x1c(%esi)
411266:	8b 43 04             	mov    0x4(%ebx),%eax
411269:	c1 e8 08             	shr    $0x8,%eax
41126c:	23 c1                	and    %ecx,%eax
41126e:	89 46 20             	mov    %eax,0x20(%esi)
411271:	8b 43 04             	mov    0x4(%ebx),%eax
411274:	c1 e8 09             	shr    $0x9,%eax
411277:	23 c1                	and    %ecx,%eax
411279:	89 46 24             	mov    %eax,0x24(%esi)
41127c:	8b 43 04             	mov    0x4(%ebx),%eax
41127f:	c1 e8 0a             	shr    $0xa,%eax
411282:	23 c1                	and    %ecx,%eax
411284:	89 46 28             	mov    %eax,0x28(%esi)
411287:	8b 43 04             	mov    0x4(%ebx),%eax
41128a:	c1 e8 0b             	shr    $0xb,%eax
41128d:	23 c1                	and    %ecx,%eax
41128f:	89 46 2c             	mov    %eax,0x2c(%esi)
411292:	8b 43 04             	mov    0x4(%ebx),%eax
411295:	c1 e8 0c             	shr    $0xc,%eax
411298:	23 c1                	and    %ecx,%eax
41129a:	89 46 30             	mov    %eax,0x30(%esi)
41129d:	8b 43 04             	mov    0x4(%ebx),%eax
4112a0:	c1 e8 0d             	shr    $0xd,%eax
4112a3:	23 c1                	and    %ecx,%eax
4112a5:	89 46 34             	mov    %eax,0x34(%esi)
4112a8:	8b 43 04             	mov    0x4(%ebx),%eax
4112ab:	c1 e8 0e             	shr    $0xe,%eax
4112ae:	23 c1                	and    %ecx,%eax
4112b0:	89 46 38             	mov    %eax,0x38(%esi)
4112b3:	8b 43 04             	mov    0x4(%ebx),%eax
4112b6:	c1 e8 0f             	shr    $0xf,%eax
4112b9:	23 c1                	and    %ecx,%eax
4112bb:	89 46 3c             	mov    %eax,0x3c(%esi)
4112be:	0f b7 43 06          	movzwl 0x6(%ebx),%eax
4112c2:	23 c1                	and    %ecx,%eax
4112c4:	89 46 40             	mov    %eax,0x40(%esi)
4112c7:	8b 43 04             	mov    0x4(%ebx),%eax
4112ca:	c1 e8 11             	shr    $0x11,%eax
4112cd:	23 c1                	and    %ecx,%eax
4112cf:	89 46 44             	mov    %eax,0x44(%esi)
4112d2:	8b 43 04             	mov    0x4(%ebx),%eax
4112d5:	c1 e8 12             	shr    $0x12,%eax
4112d8:	23 c1                	and    %ecx,%eax
4112da:	89 46 48             	mov    %eax,0x48(%esi)
4112dd:	8b 43 04             	mov    0x4(%ebx),%eax
4112e0:	c1 e8 13             	shr    $0x13,%eax
4112e3:	23 c1                	and    %ecx,%eax
4112e5:	89 46 4c             	mov    %eax,0x4c(%esi)
4112e8:	8b 43 04             	mov    0x4(%ebx),%eax
4112eb:	c1 e8 14             	shr    $0x14,%eax
4112ee:	23 c1                	and    %ecx,%eax
4112f0:	89 46 50             	mov    %eax,0x50(%esi)
4112f3:	8b 43 04             	mov    0x4(%ebx),%eax
4112f6:	c1 e8 15             	shr    $0x15,%eax
4112f9:	23 c1                	and    %ecx,%eax
4112fb:	89 46 54             	mov    %eax,0x54(%esi)
4112fe:	8b 43 04             	mov    0x4(%ebx),%eax
411301:	c1 e8 16             	shr    $0x16,%eax
411304:	23 c1                	and    %ecx,%eax
411306:	89 46 58             	mov    %eax,0x58(%esi)
411309:	8b 43 04             	mov    0x4(%ebx),%eax
41130c:	c1 e8 17             	shr    $0x17,%eax
41130f:	23 c1                	and    %ecx,%eax
411311:	89 46 5c             	mov    %eax,0x5c(%esi)
411314:	0f b6 43 07          	movzbl 0x7(%ebx),%eax
411318:	23 c1                	and    %ecx,%eax
41131a:	89 46 60             	mov    %eax,0x60(%esi)
41131d:	8b 43 04             	mov    0x4(%ebx),%eax
411320:	c1 e8 19             	shr    $0x19,%eax
411323:	23 c1                	and    %ecx,%eax
411325:	89 46 64             	mov    %eax,0x64(%esi)
411328:	8b 43 20             	mov    0x20(%ebx),%eax
41132b:	89 46 68             	mov    %eax,0x68(%esi)
41132e:	8b 43 24             	mov    0x24(%ebx),%eax
411331:	89 46 6c             	mov    %eax,0x6c(%esi)
411334:	8b 43 28             	mov    0x28(%ebx),%eax
411337:	89 46 70             	mov    %eax,0x70(%esi)
41133a:	8b 43 2c             	mov    0x2c(%ebx),%eax
41133d:	89 46 74             	mov    %eax,0x74(%esi)
411340:	8b 43 30             	mov    0x30(%ebx),%eax
411343:	89 46 78             	mov    %eax,0x78(%esi)
411346:	8b 43 34             	mov    0x34(%ebx),%eax
411349:	89 46 7c             	mov    %eax,0x7c(%esi)
41134c:	8b 43 38             	mov    0x38(%ebx),%eax
41134f:	89 86 80 00 00 00    	mov    %eax,0x80(%esi)
411355:	8b 43 40             	mov    0x40(%ebx),%eax
411358:	89 86 84 00 00 00    	mov    %eax,0x84(%esi)
41135e:	8b 43 44             	mov    0x44(%ebx),%eax
411361:	89 86 88 00 00 00    	mov    %eax,0x88(%esi)
411367:	8b 43 48             	mov    0x48(%ebx),%eax
41136a:	89 86 8c 00 00 00    	mov    %eax,0x8c(%esi)
411370:	8b 43 54             	mov    0x54(%ebx),%eax
411373:	89 86 90 00 00 00    	mov    %eax,0x90(%esi)
411379:	8b 43 04             	mov    0x4(%ebx),%eax
41137c:	89 86 94 00 00 00    	mov    %eax,0x94(%esi)
411382:	6a 30                	push   $0x30
411384:	e8 1f 9f 00 00       	call   0x41b2a8
411389:	8b f8                	mov    %eax,%edi
41138b:	59                   	pop    %ecx
41138c:	89 7d dc             	mov    %edi,-0x24(%ebp)
41138f:	33 c0                	xor    %eax,%eax
411391:	89 45 fc             	mov    %eax,-0x4(%ebp)
411394:	85 ff                	test   %edi,%edi
411396:	74 42                	je     0x4113da
411398:	c7 07 c4 16 40 00    	movl   $0x4016c4,(%edi)
41139e:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4113a2:	8d 4f 04             	lea    0x4(%edi),%ecx
4113a5:	c7 07 ac 22 40 00    	movl   $0x4022ac,(%edi)
4113ab:	ff 15 40 32 42 00    	call   *0x423240
4113b1:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4113b5:	33 c0                	xor    %eax,%eax
4113b7:	89 47 08             	mov    %eax,0x8(%edi)
4113ba:	89 47 0c             	mov    %eax,0xc(%edi)
4113bd:	89 47 10             	mov    %eax,0x10(%edi)
4113c0:	89 47 14             	mov    %eax,0x14(%edi)
4113c3:	89 47 18             	mov    %eax,0x18(%edi)
4113c6:	89 47 1c             	mov    %eax,0x1c(%edi)
4113c9:	89 47 20             	mov    %eax,0x20(%edi)
4113cc:	89 47 24             	mov    %eax,0x24(%edi)
4113cf:	89 47 28             	mov    %eax,0x28(%edi)
4113d2:	89 47 2c             	mov    %eax,0x2c(%edi)
4113d5:	88 45 fc             	mov    %al,-0x4(%ebp)
4113d8:	eb 02                	jmp    0x4113dc
4113da:	8b f8                	mov    %eax,%edi
4113dc:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4113e0:	85 ff                	test   %edi,%edi
4113e2:	0f 84 f0 00 00 00    	je     0x4114d8
4113e8:	0f b7 43 18          	movzwl 0x18(%ebx),%eax
4113ec:	8d 4f 04             	lea    0x4(%edi),%ecx
4113ef:	40                   	inc    %eax
4113f0:	50                   	push   %eax
4113f1:	ff 15 78 33 42 00    	call   *0x423378
4113f7:	89 45 ec             	mov    %eax,-0x14(%ebp)
4113fa:	85 c0                	test   %eax,%eax
4113fc:	74 30                	je     0x41142e
4113fe:	0f b7 4b 18          	movzwl 0x18(%ebx),%ecx
411402:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
411409:	51                   	push   %ecx
41140a:	ff 73 1c             	push   0x1c(%ebx)
41140d:	50                   	push   %eax
41140e:	e8 08 b2 00 00       	call   0x41c61b
411413:	0f b7 43 18          	movzwl 0x18(%ebx),%eax
411417:	83 c4 0c             	add    $0xc,%esp
41141a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
41141d:	33 d2                	xor    %edx,%edx
41141f:	6a ff                	push   $0xffffffff
411421:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
411425:	8d 4f 04             	lea    0x4(%edi),%ecx
411428:	ff 15 7c 33 42 00    	call   *0x42337c
41142e:	8b 47 04             	mov    0x4(%edi),%eax
411431:	89 45 ec             	mov    %eax,-0x14(%ebp)
411434:	8b 86 a4 00 00 00    	mov    0xa4(%esi),%eax
41143a:	eb 25                	jmp    0x411461
41143c:	48                   	dec    %eax
41143d:	8d 8e 9c 00 00 00    	lea    0x9c(%esi),%ecx
411443:	50                   	push   %eax
411444:	89 45 e8             	mov    %eax,-0x18(%ebp)
411447:	e8 90 25 00 00       	call   0x4139dc
41144c:	ff 75 ec             	push   -0x14(%ebp)
41144f:	ff 70 04             	push   0x4(%eax)
411452:	ff 15 64 35 42 00    	call   *0x423564
411458:	59                   	pop    %ecx
411459:	59                   	pop    %ecx
41145a:	85 c0                	test   %eax,%eax
41145c:	74 62                	je     0x4114c0
41145e:	8b 45 e8             	mov    -0x18(%ebp),%eax
411461:	85 c0                	test   %eax,%eax
411463:	7f d7                	jg     0x41143c
411465:	8b 43 4c             	mov    0x4c(%ebx),%eax
411468:	89 47 08             	mov    %eax,0x8(%edi)
41146b:	8b 43 50             	mov    0x50(%ebx),%eax
41146e:	89 47 0c             	mov    %eax,0xc(%edi)
411471:	8b 43 58             	mov    0x58(%ebx),%eax
411474:	89 47 10             	mov    %eax,0x10(%edi)
411477:	8b 43 5c             	mov    0x5c(%ebx),%eax
41147a:	89 47 14             	mov    %eax,0x14(%edi)
41147d:	8b 43 60             	mov    0x60(%ebx),%eax
411480:	89 47 18             	mov    %eax,0x18(%edi)
411483:	8b 43 64             	mov    0x64(%ebx),%eax
411486:	89 47 1c             	mov    %eax,0x1c(%edi)
411489:	8b 43 68             	mov    0x68(%ebx),%eax
41148c:	89 47 20             	mov    %eax,0x20(%edi)
41148f:	8b 43 6c             	mov    0x6c(%ebx),%eax
411492:	89 47 24             	mov    %eax,0x24(%edi)
411495:	8b 43 70             	mov    0x70(%ebx),%eax
411498:	89 47 28             	mov    %eax,0x28(%edi)
41149b:	8b 43 74             	mov    0x74(%ebx),%eax
41149e:	89 47 2c             	mov    %eax,0x2c(%edi)
4114a1:	8d 86 9c 00 00 00    	lea    0x9c(%esi),%eax
4114a7:	57                   	push   %edi
4114a8:	ff 70 08             	push   0x8(%eax)
4114ab:	8b c8                	mov    %eax,%ecx
4114ad:	ff 15 70 31 42 00    	call   *0x423170
4114b3:	8b 03                	mov    (%ebx),%eax
4114b5:	85 c0                	test   %eax,%eax
4114b7:	74 27                	je     0x4114e0
4114b9:	03 d8                	add    %eax,%ebx
4114bb:	e9 c2 fe ff ff       	jmp    0x411382
4114c0:	8b 07                	mov    (%edi),%eax
4114c2:	6a 01                	push   $0x1
4114c4:	8b 70 04             	mov    0x4(%eax),%esi
4114c7:	8b ce                	mov    %esi,%ecx
4114c9:	ff 15 f0 35 42 00    	call   *0x4235f0
4114cf:	8b cf                	mov    %edi,%ecx
4114d1:	ff d6                	call   *%esi
4114d3:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4114d6:	eb db                	jmp    0x4114b3
4114d8:	6a 68                	push   $0x68
4114da:	e8 74 d1 ff ff       	call   0x40e653
4114df:	59                   	pop    %ecx
4114e0:	ff 75 e0             	push   -0x20(%ebp)
4114e3:	ff 15 3c 35 42 00    	call   *0x42353c
4114e9:	6a 24                	push   $0x24
4114eb:	ff 15 40 35 42 00    	call   *0x423540
4114f1:	8b f8                	mov    %eax,%edi
4114f3:	59                   	pop    %ecx
4114f4:	59                   	pop    %ecx
4114f5:	85 ff                	test   %edi,%edi
4114f7:	74 24                	je     0x41151d
4114f9:	8d 45 f0             	lea    -0x10(%ebp),%eax
4114fc:	50                   	push   %eax
4114fd:	6a 24                	push   $0x24
4114ff:	57                   	push   %edi
411500:	6a 5c                	push   $0x5c
411502:	ff 15 e0 35 42 00    	call   *0x4235e0
411508:	85 c0                	test   %eax,%eax
41150a:	78 09                	js     0x411515
41150c:	8b 4f 14             	mov    0x14(%edi),%ecx
41150f:	89 8e 98 00 00 00    	mov    %ecx,0x98(%esi)
411515:	57                   	push   %edi
411516:	ff 15 3c 35 42 00    	call   *0x42353c
41151c:	59                   	pop    %ecx
41151d:	33 c0                	xor    %eax,%eax
41151f:	40                   	inc    %eax
411520:	e8 e1 ae 00 00       	call   0x41c406
411525:	c3                   	ret
411526:	8b ff                	mov    %edi,%edi
411528:	55                   	push   %ebp
411529:	8b ec                	mov    %esp,%ebp
41152b:	83 ec 0c             	sub    $0xc,%esp
41152e:	53                   	push   %ebx
41152f:	56                   	push   %esi
411530:	8b c1                	mov    %ecx,%eax
411532:	8b da                	mov    %edx,%ebx
411534:	57                   	push   %edi
411535:	8b f8                	mov    %eax,%edi
411537:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41153a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41153d:	33 f6                	xor    %esi,%esi
41153f:	8d 4f 02             	lea    0x2(%edi),%ecx
411542:	66 8b 07             	mov    (%edi),%ax
411545:	83 c7 02             	add    $0x2,%edi
411548:	66 3b c6             	cmp    %si,%ax
41154b:	75 f5                	jne    0x411542
41154d:	2b f9                	sub    %ecx,%edi
41154f:	d1 ff                	sar    $1,%edi
411551:	8d 47 01             	lea    0x1(%edi),%eax
411554:	50                   	push   %eax
411555:	e8 77 9d 00 00       	call   0x41b2d1
41155a:	89 45 f4             	mov    %eax,-0xc(%ebp)
41155d:	59                   	pop    %ecx
41155e:	85 c0                	test   %eax,%eax
411560:	74 77                	je     0x4115d9
411562:	56                   	push   %esi
411563:	56                   	push   %esi
411564:	8d 4f 01             	lea    0x1(%edi),%ecx
411567:	51                   	push   %ecx
411568:	50                   	push   %eax
411569:	57                   	push   %edi
41156a:	ff 75 fc             	push   -0x4(%ebp)
41156d:	56                   	push   %esi
41156e:	68 ff 00 00 00       	push   $0xff
411573:	ff 15 4c 30 42 00    	call   *0x42304c
411579:	85 db                	test   %ebx,%ebx
41157b:	75 04                	jne    0x411581
41157d:	8b fe                	mov    %esi,%edi
41157f:	eb 39                	jmp    0x4115ba
411581:	8d 4b 02             	lea    0x2(%ebx),%ecx
411584:	66 8b 03             	mov    (%ebx),%ax
411587:	83 c3 02             	add    $0x2,%ebx
41158a:	66 3b c6             	cmp    %si,%ax
41158d:	75 f5                	jne    0x411584
41158f:	2b d9                	sub    %ecx,%ebx
411591:	d1 fb                	sar    $1,%ebx
411593:	8d 43 01             	lea    0x1(%ebx),%eax
411596:	50                   	push   %eax
411597:	e8 35 9d 00 00       	call   0x41b2d1
41159c:	8b f8                	mov    %eax,%edi
41159e:	59                   	pop    %ecx
41159f:	85 ff                	test   %edi,%edi
4115a1:	74 17                	je     0x4115ba
4115a3:	56                   	push   %esi
4115a4:	56                   	push   %esi
4115a5:	8d 43 01             	lea    0x1(%ebx),%eax
4115a8:	50                   	push   %eax
4115a9:	57                   	push   %edi
4115aa:	53                   	push   %ebx
4115ab:	ff 75 f8             	push   -0x8(%ebp)
4115ae:	56                   	push   %esi
4115af:	68 ff 00 00 00       	push   $0xff