402fbb:	e8 49 85 00 00       	call   0x40b509
402fc0:	8d 4d 28             	lea    0x28(%ebp),%ecx
402fc3:	8b f8                	mov    %eax,%edi
402fc5:	e8 dc 84 00 00       	call   0x40b4a6
402fca:	8b c8                	mov    %eax,%ecx
402fcc:	0b ca                	or     %edx,%ecx
402fce:	0f 84 fe 05 00 00    	je     0x4035d2
402fd4:	85 ff                	test   %edi,%edi
402fd6:	0f 84 f6 05 00 00    	je     0x4035d2
402fdc:	03 c7                	add    %edi,%eax
402fde:	8d 48 fd             	lea    -0x3(%eax),%ecx
402fe1:	8d 78 04             	lea    0x4(%eax),%edi
402fe4:	85 c9                	test   %ecx,%ecx
402fe6:	0f 8c e6 05 00 00    	jl     0x4035d2
402fec:	83 ff 07             	cmp    $0x7,%edi
402fef:	0f 82 dd 05 00 00    	jb     0x4035d2
402ff5:	51                   	push   %ecx
402ff6:	8d 4d 28             	lea    0x28(%ebp),%ecx
402ff9:	e8 63 83 00 00       	call   0x40b361
402ffe:	39 7d 3c             	cmp    %edi,0x3c(%ebp)
403001:	73 0c                	jae    0x40300f
403003:	8b cb                	mov    %ebx,%ecx
403005:	e8 e4 eb ff ff       	call   0x401bee
40300a:	e9 ca 05 00 00       	jmp    0x4035d9
40300f:	8d 4d 28             	lea    0x28(%ebp),%ecx
403012:	e8 98 85 00 00       	call   0x40b5af
403017:	8d 4d 28             	lea    0x28(%ebp),%ecx
40301a:	89 45 4c             	mov    %eax,0x4c(%ebp)
40301d:	e8 84 84 00 00       	call   0x40b4a6
403022:	8d 4d 28             	lea    0x28(%ebp),%ecx
403025:	89 83 30 57 00 00    	mov    %eax,0x5730(%ebx)
40302b:	e8 76 84 00 00       	call   0x40b4a6
403030:	89 83 34 57 00 00    	mov    %eax,0x5734(%ebx)
403036:	c1 e8 02             	shr    $0x2,%eax
403039:	24 01                	and    $0x1,%al
40303b:	88 83 3c 57 00 00    	mov    %al,0x573c(%ebx)
403041:	8b 83 30 57 00 00    	mov    0x5730(%ebx),%eax
403047:	89 83 24 57 00 00    	mov    %eax,0x5724(%ebx)
40304d:	8b 45 4c             	mov    0x4c(%ebp),%eax
403050:	39 06                	cmp    %eax,(%esi)
403052:	89 bb 38 57 00 00    	mov    %edi,0x5738(%ebx)
403058:	0f 95 45 4b          	setne  0x4b(%ebp)
40305c:	80 7d 4b 00          	cmpb   $0x0,0x4b(%ebp)
403060:	74 38                	je     0x40309a
403062:	8b cb                	mov    %ebx,%ecx
403064:	e8 ce eb ff ff       	call   0x401c37
403069:	6a 03                	push   $0x3
40306b:	b9 74 2a 43 00       	mov    $0x432a74,%ecx
403070:	c6 83 44 a2 00 00 01 	movb   $0x1,0xa244(%ebx)
403077:	e8 8e 33 00 00       	call   0x40640a
40307c:	80 7d 53 00          	cmpb   $0x0,0x53(%ebp)
403080:	74 18                	je     0x40309a
403082:	8d 43 1e             	lea    0x1e(%ebx),%eax
403085:	50                   	push   %eax
403086:	50                   	push   %eax
403087:	6a 04                	push   $0x4
403089:	e8 4b 34 00 00       	call   0x4064d9
40308e:	c6 83 45 a2 00 00 01 	movb   $0x1,0xa245(%ebx)
403095:	e9 3f 05 00 00       	jmp    0x4035d9
40309a:	33 ff                	xor    %edi,%edi
40309c:	f6 83 34 57 00 00 01 	testb  $0x1,0x5734(%ebx)
4030a3:	89 7d 18             	mov    %edi,0x18(%ebp)
4030a6:	89 7d 1c             	mov    %edi,0x1c(%ebp)
4030a9:	74 2d                	je     0x4030d8
4030ab:	8d 4d 28             	lea    0x28(%ebp),%ecx
4030ae:	e8 f3 83 00 00       	call   0x40b4a6
4030b3:	33 c9                	xor    %ecx,%ecx
4030b5:	89 45 18             	mov    %eax,0x18(%ebp)
4030b8:	8b 83 38 57 00 00    	mov    0x5738(%ebx),%eax
4030be:	89 55 1c             	mov    %edx,0x1c(%ebp)
4030c1:	3b d1                	cmp    %ecx,%edx
4030c3:	72 13                	jb     0x4030d8
4030c5:	77 05                	ja     0x4030cc
4030c7:	39 45 18             	cmp    %eax,0x18(%ebp)
4030ca:	72 0c                	jb     0x4030d8
4030cc:	8b cb                	mov    %ebx,%ecx
4030ce:	e8 64 eb ff ff       	call   0x401c37
4030d3:	e9 2c fe ff ff       	jmp    0x402f04
4030d8:	f6 83 34 57 00 00 02 	testb  $0x2,0x5734(%ebx)
4030df:	89 7d 20             	mov    %edi,0x20(%ebp)
4030e2:	89 7d 24             	mov    %edi,0x24(%ebp)
4030e5:	74 0e                	je     0x4030f5
4030e7:	8d 4d 28             	lea    0x28(%ebp),%ecx
4030ea:	e8 b7 83 00 00       	call   0x40b4a6
4030ef:	89 45 20             	mov    %eax,0x20(%ebp)
4030f2:	89 55 24             	mov    %edx,0x24(%ebp)
4030f5:	ff b3 38 57 00 00    	push   0x5738(%ebx)
4030fb:	8b cb                	mov    %ebx,%ecx
4030fd:	e8 d2 df ff ff       	call   0x4010d4
403102:	33 c9                	xor    %ecx,%ecx
403104:	03 83 20 a2 00 00    	add    0xa220(%ebx),%eax
40310a:	13 8b 24 a2 00 00    	adc    0xa224(%ebx),%ecx
403110:	03 45 20             	add    0x20(%ebp),%eax
403113:	13 4d 24             	adc    0x24(%ebp),%ecx
403116:	89 83 28 a2 00 00    	mov    %eax,0xa228(%ebx)
40311c:	8b 83 30 57 00 00    	mov    0x5730(%ebx),%eax
403122:	89 8b 2c a2 00 00    	mov    %ecx,0xa22c(%ebx)
403128:	83 f8 01             	cmp    $0x1,%eax
40312b:	0f 84 b9 03 00 00    	je     0x4034ea
403131:	0f 8e 67 04 00 00    	jle    0x40359e
403137:	83 f8 03             	cmp    $0x3,%eax
40313a:	0f 8e 14 01 00 00    	jle    0x403254
403140:	83 f8 04             	cmp    $0x4,%eax
403143:	74 3d                	je     0x403182
403145:	83 f8 05             	cmp    $0x5,%eax
403148:	0f 85 50 04 00 00    	jne    0x40359e
40314e:	50                   	push   %eax
40314f:	59                   	pop    %ecx
403150:	8d bb c8 7a 00 00    	lea    0x7ac8(%ebx),%edi
403156:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403158:	8d 4d 28             	lea    0x28(%ebp),%ecx
40315b:	e8 46 83 00 00       	call   0x40b4a6
403160:	24 01                	and    $0x1,%al
403162:	88 83 e4 7a 00 00    	mov    %al,0x7ae4(%ebx)
403168:	c6 83 e7 7a 00 00 00 	movb   $0x0,0x7ae7(%ebx)
40316f:	c6 83 e5 7a 00 00 00 	movb   $0x0,0x7ae5(%ebx)
403176:	c6 83 e6 7a 00 00 00 	movb   $0x0,0x7ae6(%ebx)
40317d:	e9 1c 04 00 00       	jmp    0x40359e
403182:	6a 05                	push   $0x5
403184:	59                   	pop    %ecx
403185:	8d bb 90 57 00 00    	lea    0x5790(%ebx),%edi
40318b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40318d:	8d 4d 28             	lea    0x28(%ebp),%ecx
403190:	e8 11 83 00 00       	call   0x40b4a6
403195:	85 c0                	test   %eax,%eax
403197:	76 10                	jbe    0x4031a9
403199:	8d 43 1e             	lea    0x1e(%ebx),%eax
40319c:	50                   	push   %eax
40319d:	8b cb                	mov    %ebx,%ecx
40319f:	e8 b6 ea ff ff       	call   0x401c5a
4031a4:	e9 30 04 00 00       	jmp    0x4035d9
4031a9:	8d 4d 28             	lea    0x28(%ebp),%ecx
4031ac:	e8 f5 82 00 00       	call   0x40b4a6
4031b1:	24 01                	and    $0x1,%al
4031b3:	8d 4d 28             	lea    0x28(%ebp),%ecx
4031b6:	88 83 a4 57 00 00    	mov    %al,0x57a4(%ebx)
4031bc:	e8 3a 82 00 00       	call   0x40b3fb
4031c1:	0f b6 c0             	movzbl %al,%eax
4031c4:	89 83 a8 57 00 00    	mov    %eax,0x57a8(%ebx)
4031ca:	83 f8 18             	cmp    $0x18,%eax
4031cd:	77 ca                	ja     0x403199
4031cf:	6a 10                	push   $0x10
4031d1:	8d 83 ac 57 00 00    	lea    0x57ac(%ebx),%eax
4031d7:	50                   	push   %eax
4031d8:	8d 4d 28             	lea    0x28(%ebp),%ecx
4031db:	e8 4f 83 00 00       	call   0x40b52f
4031e0:	80 bb a4 57 00 00 00 	cmpb   $0x0,0x57a4(%ebx)
4031e7:	74 5f                	je     0x403248
4031e9:	6a 08                	push   $0x8
4031eb:	8d b3 bc 57 00 00    	lea    0x57bc(%ebx),%esi
4031f1:	56                   	push   %esi
4031f2:	8d 4d 28             	lea    0x28(%ebp),%ecx
4031f5:	e8 35 83 00 00       	call   0x40b52f
4031fa:	6a 04                	push   $0x4
4031fc:	8d 45 4c             	lea    0x4c(%ebp),%eax
4031ff:	50                   	push   %eax
403200:	8d 4d 28             	lea    0x28(%ebp),%ecx
403203:	e8 27 83 00 00       	call   0x40b52f
403208:	8d 45 84             	lea    -0x7c(%ebp),%eax
40320b:	50                   	push   %eax
40320c:	e8 20 d2 00 00       	call   0x410431
403211:	6a 08                	push   $0x8
403213:	56                   	push   %esi
403214:	8d 45 84             	lea    -0x7c(%ebp),%eax
403217:	50                   	push   %eax
403218:	e8 16 d5 00 00       	call   0x410733
40321d:	8d 45 00             	lea    0x0(%ebp),%eax
403220:	50                   	push   %eax
403221:	8d 45 84             	lea    -0x7c(%ebp),%eax
403224:	50                   	push   %eax
403225:	e8 82 d5 00 00       	call   0x4107ac
40322a:	6a 04                	push   $0x4
40322c:	8d 45 00             	lea    0x0(%ebp),%eax
40322f:	50                   	push   %eax
403230:	8d 45 4c             	lea    0x4c(%ebp),%eax
403233:	50                   	push   %eax
403234:	e8 ab 73 01 00       	call   0x41a5e4
403239:	83 c4 0c             	add    $0xc,%esp
40323c:	f7 d8                	neg    %eax
40323e:	1a c0                	sbb    %al,%al
403240:	fe c0                	inc    %al
403242:	88 83 a4 57 00 00    	mov    %al,0x57a4(%ebx)
403248:	c6 83 3c a2 00 00 01 	movb   $0x1,0xa23c(%ebx)
40324f:	e9 4a 03 00 00       	jmp    0x40359e
403254:	83 f8 02             	cmp    $0x2,%eax
403257:	8d 83 c8 57 00 00    	lea    0x57c8(%ebx),%eax
40325d:	74 06                	je     0x403265
40325f:	8d 83 08 7b 00 00    	lea    0x7b08(%ebx),%eax
403265:	8b f8                	mov    %eax,%edi
403267:	6a 00                	push   $0x0
403269:	8b cf                	mov    %edi,%ecx
40326b:	89 45 4c             	mov    %eax,0x4c(%ebp)
40326e:	e8 4f 68 00 00       	call   0x409ac2
403273:	8b 45 20             	mov    0x20(%ebp),%eax
403276:	6a 05                	push   $0x5
403278:	59                   	pop    %ecx
403279:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40327b:	83 bb 30 57 00 00 02 	cmpl   $0x2,0x5730(%ebx)
403282:	8b 75 4c             	mov    0x4c(%ebp),%esi
403285:	89 86 48 10 00 00    	mov    %eax,0x1048(%esi)
40328b:	8b 45 24             	mov    0x24(%ebp),%eax
40328e:	8d 4d 28             	lea    0x28(%ebp),%ecx
403291:	0f 94 45 53          	sete   0x53(%ebp)
403295:	c6 86 e9 10 00 00 01 	movb   $0x1,0x10e9(%esi)
40329c:	89 86 4c 10 00 00    	mov    %eax,0x104c(%esi)
4032a2:	e8 ff 81 00 00       	call   0x40b4a6
4032a7:	8d 4d 28             	lea    0x28(%ebp),%ecx
4032aa:	89 86 84 10 00 00    	mov    %eax,0x1084(%esi)
4032b0:	e8 f1 81 00 00       	call   0x40b4a6
4032b5:	89 86 50 10 00 00    	mov    %eax,0x1050(%esi)
4032bb:	8b 86 84 10 00 00    	mov    0x1084(%esi),%eax
4032c1:	c1 e8 03             	shr    $0x3,%eax
4032c4:	24 01                	and    $0x1,%al
4032c6:	89 96 54 10 00 00    	mov    %edx,0x1054(%esi)
4032cc:	88 86 8a 10 00 00    	mov    %al,0x108a(%esi)
4032d2:	74 11                	je     0x4032e5
4032d4:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4032d9:	89 86 50 10 00 00    	mov    %eax,0x1050(%esi)
4032df:	89 86 54 10 00 00    	mov    %eax,0x1054(%esi)
4032e5:	8b 86 4c 10 00 00    	mov    0x104c(%esi),%eax
4032eb:	8b 8e 54 10 00 00    	mov    0x1054(%esi),%ecx
4032f1:	3b c1                	cmp    %ecx,%eax
4032f3:	8b 96 48 10 00 00    	mov    0x1048(%esi),%edx
4032f9:	8b be 50 10 00 00    	mov    0x1050(%esi),%edi
4032ff:	7c 06                	jl     0x403307
403301:	7f 08                	jg     0x40330b
403303:	3b d7                	cmp    %edi,%edx
403305:	77 04                	ja     0x40330b
403307:	8b d7                	mov    %edi,%edx
403309:	8b c1                	mov    %ecx,%eax
40330b:	8d 4d 28             	lea    0x28(%ebp),%ecx
40330e:	89 96 58 10 00 00    	mov    %edx,0x1058(%esi)
403314:	89 86 5c 10 00 00    	mov    %eax,0x105c(%esi)
40331a:	e8 87 81 00 00       	call   0x40b4a6
40331f:	f6 86 84 10 00 00 02 	testb  $0x2,0x1084(%esi)
403326:	89 46 1c             	mov    %eax,0x1c(%esi)
403329:	74 16                	je     0x403341
40332b:	8d 4d 28             	lea    0x28(%ebp),%ecx
40332e:	e8 15 81 00 00       	call   0x40b448
403333:	6a 00                	push   $0x0
403335:	50                   	push   %eax
403336:	8d 8e 30 10 00 00    	lea    0x1030(%esi),%ecx
40333c:	e8 4a dd 00 00       	call   0x41108b
403341:	8d 86 60 10 00 00    	lea    0x1060(%esi),%eax
403347:	83 20 00             	andl   $0x0,(%eax)
40334a:	f6 86 84 10 00 00 04 	testb  $0x4,0x1084(%esi)
403351:	74 14                	je     0x403367
403353:	8d 4d 28             	lea    0x28(%ebp),%ecx
403356:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
40335c:	e8 e7 80 00 00       	call   0x40b448
403361:	89 86 64 10 00 00    	mov    %eax,0x1064(%esi)
403367:	83 a6 f0 10 00 00 00 	andl   $0x0,0x10f0(%esi)
40336e:	8d 4d 28             	lea    0x28(%ebp),%ecx
403371:	e8 30 81 00 00       	call   0x40b4a6
403376:	8b c8                	mov    %eax,%ecx
403378:	c1 e9 07             	shr    $0x7,%ecx
40337b:	80 e1 07             	and    $0x7,%cl
40337e:	89 45 4c             	mov    %eax,0x4c(%ebp)
403381:	88 4e 1a             	mov    %cl,0x1a(%esi)
403384:	24 3f                	and    $0x3f,%al
403386:	8d 4d 28             	lea    0x28(%ebp),%ecx
403389:	88 46 19             	mov    %al,0x19(%esi)
40338c:	e8 15 81 00 00       	call   0x40b4a6
403391:	8d 4d 28             	lea    0x28(%ebp),%ecx
403394:	88 46 18             	mov    %al,0x18(%esi)
403397:	e8 0a 81 00 00       	call   0x40b4a6
40339c:	8a 56 18             	mov    0x18(%esi),%dl
40339f:	8b f8                	mov    %eax,%edi
4033a1:	8b 83 34 57 00 00    	mov    0x5734(%ebx),%eax
4033a7:	c1 e8 06             	shr    $0x6,%eax
4033aa:	24 01                	and    $0x1,%al
4033ac:	8d 8e ec 10 00 00    	lea    0x10ec(%esi),%ecx
4033b2:	88 86 e8 10 00 00    	mov    %al,0x10e8(%esi)
4033b8:	c7 01 02 00 00 00    	movl   $0x2,(%ecx)
4033be:	80 fa 01             	cmp    $0x1,%dl
4033c1:	75 08                	jne    0x4033cb
4033c3:	c7 01 01 00 00 00    	movl   $0x1,(%ecx)
4033c9:	eb 07                	jmp    0x4033d2
4033cb:	84 d2                	test   %dl,%dl
4033cd:	75 03                	jne    0x4033d2
4033cf:	83 21 00             	andl   $0x0,(%ecx)
4033d2:	8b 4e 08             	mov    0x8(%esi),%ecx
4033d5:	8b c1                	mov    %ecx,%eax
4033d7:	c1 e8 03             	shr    $0x3,%eax
4033da:	24 01                	and    $0x1,%al
4033dc:	88 86 88 10 00 00    	mov    %al,0x1088(%esi)
4033e2:	8b c1                	mov    %ecx,%eax
4033e4:	c1 e8 04             	shr    $0x4,%eax
4033e7:	c1 e9 05             	shr    $0x5,%ecx
4033ea:	24 01                	and    $0x1,%al
4033ec:	80 e1 01             	and    $0x1,%cl
4033ef:	80 7d 53 00          	cmpb   $0x0,0x53(%ebp)
4033f3:	88 86 89 10 00 00    	mov    %al,0x1089(%esi)
4033f9:	88 8e ea 10 00 00    	mov    %cl,0x10ea(%esi)
4033ff:	74 0b                	je     0x40340c
403401:	f6 45 4c 40          	testb  $0x40,0x4c(%ebp)
403405:	74 05                	je     0x40340c
403407:	33 c9                	xor    %ecx,%ecx
403409:	41                   	inc    %ecx
40340a:	eb 02                	jmp    0x40340e
40340c:	33 c9                	xor    %ecx,%ecx
40340e:	8a 96 84 10 00 00    	mov    0x1084(%esi),%dl
403414:	88 8e e0 10 00 00    	mov    %cl,0x10e0(%esi)
40341a:	8b 4d 4c             	mov    0x4c(%ebp),%ecx
40341d:	c1 e9 0a             	shr    $0xa,%ecx
403420:	83 e1 0f             	and    $0xf,%ecx
403423:	80 e2 01             	and    $0x1,%dl
403426:	b8 00 00 02 00       	mov    $0x20000,%eax
40342b:	d3 e0                	shl    %cl,%eax
40342d:	0f b6 ca             	movzbl %dl,%ecx
403430:	f7 d9                	neg    %ecx
403432:	1b c9                	sbb    %ecx,%ecx
403434:	f7 d1                	not    %ecx
403436:	23 c8                	and    %eax,%ecx
403438:	0f b6 86 8b 10 00 00 	movzbl 0x108b(%esi),%eax
40343f:	f7 d8                	neg    %eax
403441:	1b c0                	sbb    %eax,%eax
403443:	89 8e e4 10 00 00    	mov    %ecx,0x10e4(%esi)
403449:	83 e0 05             	and    $0x5,%eax
40344c:	b9 ff 1f 00 00       	mov    $0x1fff,%ecx
403451:	88 96 e1 10 00 00    	mov    %dl,0x10e1(%esi)
403457:	89 86 8c 10 00 00    	mov    %eax,0x108c(%esi)
40345d:	3b f9                	cmp    %ecx,%edi
40345f:	72 02                	jb     0x403463
403461:	8b f9                	mov    %ecx,%edi
403463:	57                   	push   %edi
403464:	8d 85 84 df ff ff    	lea    -0x207c(%ebp),%eax
40346a:	50                   	push   %eax
40346b:	8d 4d 28             	lea    0x28(%ebp),%ecx
40346e:	e8 bc 80 00 00       	call   0x40b52f
403473:	c6 84 3d 84 df ff ff 	movb   $0x0,-0x207c(%ebp,%edi,1)
40347a:	00
40347b:	68 ff 07 00 00       	push   $0x7ff
403480:	8d 7e 20             	lea    0x20(%esi),%edi
403483:	57                   	push   %edi
403484:	8d 85 84 df ff ff    	lea    -0x207c(%ebp),%eax
40348a:	50                   	push   %eax
40348b:	e8 79 e4 00 00       	call   0x411909
403490:	8b 45 18             	mov    0x18(%ebp),%eax
403493:	0b 45 1c             	or     0x1c(%ebp),%eax
403496:	74 0f                	je     0x4034a7
403498:	56                   	push   %esi
403499:	ff 75 18             	push   0x18(%ebp)
40349c:	8d 45 28             	lea    0x28(%ebp),%eax
40349f:	50                   	push   %eax
4034a0:	8b cb                	mov    %ebx,%ecx
4034a2:	e8 3e f2 ff ff       	call   0x4026e5
4034a7:	80 7d 53 00          	cmpb   $0x0,0x53(%ebp)
4034ab:	74 0a                	je     0x4034b7
4034ad:	56                   	push   %esi