41002b:	85 f6                	test   %esi,%esi
41002d:	0f 85 ad 0f 00 00    	jne    0x410fe0
410033:	8b 47 0c             	mov    0xc(%edi),%eax
410036:	83 f8 05             	cmp    $0x5,%eax
410039:	0f 8d ef a3 06 00    	jge    0x47a42e
41003f:	68 20 22 4c 00       	push   $0x4c2220
410044:	8b cf                	mov    %edi,%ecx
410046:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
41004d:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
410053:	e8 c8 16 00 00       	call   0x411720
410058:	8b 74 24 24          	mov    0x24(%esp),%esi
41005c:	8b 44 24 10          	mov    0x10(%esp),%eax
410060:	46                   	inc    %esi
410061:	89 74 24 24          	mov    %esi,0x24(%esp)
410065:	83 fe 01             	cmp    $0x1,%esi
410068:	0f 85 fc 06 00 00    	jne    0x41076a
41006e:	89 7c 24 6c          	mov    %edi,0x6c(%esp)
410072:	80 3d fc 20 4c 00 00 	cmpb   $0x0,0x4c20fc
410079:	8b 45 0c             	mov    0xc(%ebp),%eax
41007c:	8b 08                	mov    (%eax),%ecx
41007e:	8b 45 08             	mov    0x8(%ebp),%eax
410081:	8b 40 04             	mov    0x4(%eax),%eax
410084:	8b 04 88             	mov    (%eax,%ecx,4),%eax
410087:	8b 00                	mov    (%eax),%eax
410089:	89 44 24 30          	mov    %eax,0x30(%esp)
41008d:	0f 85 71 a8 06 00    	jne    0x47a904
410093:	83 3d f0 20 4c 00 00 	cmpl   $0x0,0x4c20f0
41009a:	0f 84 5f 03 00 00    	je     0x4103ff
4100a0:	80 3d f9 20 4c 00 00 	cmpb   $0x0,0x4c20f9
4100a7:	0f 85 14 a5 06 00    	jne    0x47a5c1
4100ad:	8b 35 f4 20 4c 00    	mov    0x4c20f4,%esi
4100b3:	83 3e 00             	cmpl   $0x0,(%esi)
4100b6:	0f 84 43 03 00 00    	je     0x4103ff
4100bc:	8b 0d f0 21 4c 00    	mov    0x4c21f0,%ecx
4100c2:	c6 44 24 1f 00       	movb   $0x0,0x1f(%esp)
4100c7:	f6 c1 01             	test   $0x1,%cl
4100ca:	0f 84 02 a5 06 00    	je     0x47a5d2
4100d0:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
4100d7:	00 00 00
4100da:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
4100e1:	00 00 00
4100e4:	c7 44 24 40 f4 21 4c 	movl   $0x4c21f4,0x40(%esp)
4100eb:	00
4100ec:	c7 44 24 68 f4 21 4c 	movl   $0x4c21f4,0x68(%esp)
4100f3:	00
4100f4:	8b 16                	mov    (%esi),%edx
4100f6:	8b 40 04             	mov    0x4(%eax),%eax
4100f9:	8b 4a 04             	mov    0x4(%edx),%ecx
4100fc:	89 54 24 38          	mov    %edx,0x38(%esp)
410100:	89 44 24 60          	mov    %eax,0x60(%esp)
410104:	85 c0                	test   %eax,%eax
410106:	0f 84 ef a4 06 00    	je     0x47a5fb
41010c:	85 c9                	test   %ecx,%ecx
41010e:	0f 84 ef a4 06 00    	je     0x47a603
410114:	3b c1                	cmp    %ecx,%eax
410116:	0f 82 f7 01 00 00    	jb     0x410313
41011c:	8b 0a                	mov    (%edx),%ecx
41011e:	8b 54 24 30          	mov    0x30(%esp),%edx
410122:	89 44 24 3c          	mov    %eax,0x3c(%esp)
410126:	8b 12                	mov    (%edx),%edx
410128:	85 c0                	test   %eax,%eax
41012a:	74 18                	je     0x410144
41012c:	8d 64 24 00          	lea    0x0(%esp),%esp
410130:	66 8b 02             	mov    (%edx),%ax
410133:	66 3b 01             	cmp    (%ecx),%ax
410136:	75 10                	jne    0x410148
410138:	83 c2 02             	add    $0x2,%edx
41013b:	83 c1 02             	add    $0x2,%ecx
41013e:	ff 4c 24 3c          	decl   0x3c(%esp)
410142:	75 ec                	jne    0x410130
410144:	33 c0                	xor    %eax,%eax
410146:	eb 0c                	jmp    0x410154
410148:	0f b7 02             	movzwl (%edx),%eax
41014b:	66 3b 01             	cmp    (%ecx),%ax
41014e:	1b c0                	sbb    %eax,%eax
410150:	83 e0 fe             	and    $0xfffffffe,%eax
410153:	40                   	inc    %eax
410154:	85 c0                	test   %eax,%eax
410156:	0f 88 7f 00 00 00    	js     0x4101db
41015c:	0f 8e 66 fd ff ff    	jle    0x40fec8
410162:	8b 44 24 60          	mov    0x60(%esp),%eax
410166:	8b 54 24 38          	mov    0x38(%esp),%edx
41016a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
41016d:	85 c9                	test   %ecx,%ecx
41016f:	0f 84 58 fd ff ff    	je     0x40fecd
410175:	8b 51 04             	mov    0x4(%ecx),%edx
410178:	3b d0                	cmp    %eax,%edx
41017a:	0f 87 45 06 00 00    	ja     0x4107c5
410180:	8b 5c 24 30          	mov    0x30(%esp),%ebx
410184:	89 54 24 48          	mov    %edx,0x48(%esp)
410188:	8b 1b                	mov    (%ebx),%ebx
41018a:	89 5c 24 3c          	mov    %ebx,0x3c(%esp)
41018e:	8b 19                	mov    (%ecx),%ebx
410190:	89 5c 24 44          	mov    %ebx,0x44(%esp)
410194:	8b 5c 24 34          	mov    0x34(%esp),%ebx
410198:	85 d2                	test   %edx,%edx
41019a:	74 32                	je     0x4101ce
41019c:	8b 44 24 44          	mov    0x44(%esp),%eax
4101a0:	8b 5c 24 3c          	mov    0x3c(%esp),%ebx
4101a4:	66 8b 00             	mov    (%eax),%ax
4101a7:	66 3b 03             	cmp    (%ebx),%ax
4101aa:	8b 5c 24 34          	mov    0x34(%esp),%ebx
4101ae:	8b 44 24 44          	mov    0x44(%esp),%eax
4101b2:	0f 85 b8 00 00 00    	jne    0x410270
4101b8:	83 44 24 3c 02       	addl   $0x2,0x3c(%esp)
4101bd:	83 c0 02             	add    $0x2,%eax
4101c0:	ff 4c 24 48          	decl   0x48(%esp)
4101c4:	89 44 24 44          	mov    %eax,0x44(%esp)
4101c8:	75 d6                	jne    0x4101a0
4101ca:	8b 44 24 60          	mov    0x60(%esp),%eax
4101ce:	3b d0                	cmp    %eax,%edx
4101d0:	0f 82 a6 00 00 00    	jb     0x41027c
4101d6:	e9 bc 00 00 00       	jmp    0x410297
4101db:	8b 44 24 60          	mov    0x60(%esp),%eax
4101df:	8b 54 24 38          	mov    0x38(%esp),%edx
4101e3:	8b 4a 18             	mov    0x18(%edx),%ecx
4101e6:	85 c9                	test   %ecx,%ecx
4101e8:	0f 84 df fc ff ff    	je     0x40fecd
4101ee:	8b 51 04             	mov    0x4(%ecx),%edx
4101f1:	3b c2                	cmp    %edx,%eax
4101f3:	0f 87 0b 06 00 00    	ja     0x410804
4101f9:	8b 5c 24 30          	mov    0x30(%esp),%ebx
4101fd:	8b 11                	mov    (%ecx),%edx
4101ff:	8b 1b                	mov    (%ebx),%ebx
410201:	89 5c 24 44          	mov    %ebx,0x44(%esp)
410205:	8b 5c 24 34          	mov    0x34(%esp),%ebx
410209:	89 44 24 3c          	mov    %eax,0x3c(%esp)
41020d:	85 c0                	test   %eax,%eax
41020f:	0f 84 11 03 00 00    	je     0x410526
410215:	8b 44 24 44          	mov    0x44(%esp),%eax
410219:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410220:	66 8b 00             	mov    (%eax),%ax
410223:	66 3b 02             	cmp    (%edx),%ax
410226:	8b 44 24 44          	mov    0x44(%esp),%eax
41022a:	0f 84 de 02 00 00    	je     0x41050e
410230:	66 8b 00             	mov    (%eax),%ax
410233:	66 3b 02             	cmp    (%edx),%ax
410236:	73 1b                	jae    0x410253
410238:	8b 41 1c             	mov    0x1c(%ecx),%eax
41023b:	8b 54 24 38          	mov    0x38(%esp),%edx
41023f:	89 42 18             	mov    %eax,0x18(%edx)
410242:	8b 06                	mov    (%esi),%eax
410244:	89 41 1c             	mov    %eax,0x1c(%ecx)
410247:	89 0e                	mov    %ecx,(%esi)
410249:	83 79 18 00          	cmpl   $0x0,0x18(%ecx)
41024d:	0f 84 7a fc ff ff    	je     0x40fecd
410253:	8b 06                	mov    (%esi),%eax
410255:	8b 4c 24 40          	mov    0x40(%esp),%ecx
410259:	89 41 18             	mov    %eax,0x18(%ecx)
41025c:	8b 06                	mov    (%esi),%eax
41025e:	89 44 24 40          	mov    %eax,0x40(%esp)
410262:	8b 40 18             	mov    0x18(%eax),%eax
410265:	89 06                	mov    %eax,(%esi)
410267:	8b 44 24 30          	mov    0x30(%esp),%eax
41026b:	e9 84 fe ff ff       	jmp    0x4100f4
410270:	8b 54 24 3c          	mov    0x3c(%esp),%edx
410274:	66 8b 00             	mov    (%eax),%ax
410277:	66 3b 02             	cmp    (%edx),%ax
41027a:	73 1b                	jae    0x410297
41027c:	8b 41 18             	mov    0x18(%ecx),%eax
41027f:	8b 54 24 38          	mov    0x38(%esp),%edx
410283:	89 42 1c             	mov    %eax,0x1c(%edx)
410286:	8b 06                	mov    (%esi),%eax
410288:	89 41 18             	mov    %eax,0x18(%ecx)
41028b:	89 0e                	mov    %ecx,(%esi)
41028d:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
410291:	0f 84 36 fc ff ff    	je     0x40fecd
410297:	8b 06                	mov    (%esi),%eax
410299:	8b 4c 24 68          	mov    0x68(%esp),%ecx
41029d:	89 41 1c             	mov    %eax,0x1c(%ecx)
4102a0:	8b 06                	mov    (%esi),%eax
4102a2:	89 44 24 68          	mov    %eax,0x68(%esp)
4102a6:	8b 40 1c             	mov    0x1c(%eax),%eax
4102a9:	89 06                	mov    %eax,(%esi)
4102ab:	8b 44 24 30          	mov    0x30(%esp),%eax
4102af:	e9 40 fe ff ff       	jmp    0x4100f4
4102b4:	83 f8 06             	cmp    $0x6,%eax
4102b7:	77 34                	ja     0x4102ed
4102b9:	ff 24 85 88 16 41 00 	jmp    *0x411688(,%eax,4)
4102c0:	84 c9                	test   %cl,%cl
4102c2:	0f 85 73 05 00 00    	jne    0x41083b
4102c8:	6a 08                	push   $0x8
4102ca:	e8 1b f2 00 00       	call   0x41f4ea
4102cf:	83 c4 04             	add    $0x4,%esp
4102d2:	85 c0                	test   %eax,%eax
4102d4:	0f 84 a3 12 00 00    	je     0x41157d
4102da:	89 30                	mov    %esi,(%eax)
4102dc:	89 58 04             	mov    %ebx,0x4(%eax)
4102df:	8b d8                	mov    %eax,%ebx
4102e1:	89 5c 24 34          	mov    %ebx,0x34(%esp)
4102e5:	89 5c 24 58          	mov    %ebx,0x58(%esp)
4102e9:	ff 44 24 54          	incl   0x54(%esp)
4102ed:	83 fe 07             	cmp    $0x7,%esi
4102f0:	0f 84 c2 0d 00 00    	je     0x4110b8
4102f6:	83 fe 08             	cmp    $0x8,%esi
4102f9:	0f 84 b9 0d 00 00    	je     0x4110b8
4102ff:	8b 75 0c             	mov    0xc(%ebp),%esi
410302:	8b 44 24 28          	mov    0x28(%esp),%eax
410306:	8b 7c 24 20          	mov    0x20(%esp),%edi
41030a:	89 44 24 10          	mov    %eax,0x10(%esp)
41030e:	e9 25 fc ff ff       	jmp    0x40ff38
410313:	8b 44 24 30          	mov    0x30(%esp),%eax
410317:	8b 12                	mov    (%edx),%edx
410319:	8b 00                	mov    (%eax),%eax
41031b:	89 44 24 3c          	mov    %eax,0x3c(%esp)
41031f:	85 c9                	test   %ecx,%ecx
410321:	0f 84 1d fe ff ff    	je     0x410144
410327:	eb 07                	jmp    0x410330
410329:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410330:	66 8b 00             	mov    (%eax),%ax
410333:	66 3b 02             	cmp    (%edx),%ax
410336:	8b 44 24 3c          	mov    0x3c(%esp),%eax
41033a:	0f 84 76 0c 00 00    	je     0x410fb6
410340:	0f b7 00             	movzwl (%eax),%eax
410343:	66 3b 02             	cmp    (%edx),%ax
410346:	e9 03 fe ff ff       	jmp    0x41014e
41034b:	8b 74 24 24          	mov    0x24(%esp),%esi
41034f:	c7 44 24 18 16 00 00 	movl   $0x16,0x18(%esp)
410356:	00
410357:	85 f6                	test   %esi,%esi
410359:	0f 85 e8 04 00 00    	jne    0x410847
41035f:	81 ff 20 22 4c 00    	cmp    $0x4c2220,%edi
410365:	74 3e                	je     0x4103a5
410367:	83 7f 0c 04          	cmpl   $0x4,0xc(%edi)
41036b:	0f 84 5b 04 00 00    	je     0x4107cc
410371:	8b 77 08             	mov    0x8(%edi),%esi
410374:	85 f6                	test   %esi,%esi
410376:	0f 85 62 04 00 00    	jne    0x4107de
41037c:	8b 47 0c             	mov    0xc(%edi),%eax
41037f:	83 f8 05             	cmp    $0x5,%eax
410382:	0f 8d 02 9e 06 00    	jge    0x47a18a
410388:	68 20 22 4c 00       	push   $0x4c2220
41038d:	8b cf                	mov    %edi,%ecx
41038f:	c7 47 0c 01 00 00 00 	movl   $0x1,0xc(%edi)
410396:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
41039c:	e8 7f 13 00 00       	call   0x411720
4103a1:	8b 74 24 24          	mov    0x24(%esp),%esi
4103a5:	8b 54 24 10          	mov    0x10(%esp),%edx
4103a9:	8b 45 0c             	mov    0xc(%ebp),%eax
4103ac:	46                   	inc    %esi
4103ad:	8b 08                	mov    (%eax),%ecx
4103af:	8b 45 08             	mov    0x8(%ebp),%eax
4103b2:	89 74 24 24          	mov    %esi,0x24(%esp)
4103b6:	8b 40 04             	mov    0x4(%eax),%eax
4103b9:	8b 04 88             	mov    (%eax,%ecx,4),%eax
4103bc:	83 fe 01             	cmp    $0x1,%esi
4103bf:	0f 85 ce 04 00 00    	jne    0x410893
4103c5:	8b f7                	mov    %edi,%esi
4103c7:	8b 4e 08             	mov    0x8(%esi),%ecx
4103ca:	8b 00                	mov    (%eax),%eax
4103cc:	89 44 24 48          	mov    %eax,0x48(%esp)
4103d0:	85 c9                	test   %ecx,%ecx
4103d2:	0f 85 68 9f 06 00    	jne    0x47a340
4103d8:	8b 46 0c             	mov    0xc(%esi),%eax
4103db:	83 f8 05             	cmp    $0x5,%eax
4103de:	0f 8d 6e 9f 06 00    	jge    0x47a352
4103e4:	8b 44 24 48          	mov    0x48(%esp),%eax
4103e8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4103ef:	89 06                	mov    %eax,(%esi)
4103f1:	8b 75 0c             	mov    0xc(%ebp),%esi
4103f4:	ff 06                	incl   (%esi)
4103f6:	e9 3d fb ff ff       	jmp    0x40ff38
4103fb:	8b 44 24 30          	mov    0x30(%esp),%eax
4103ff:	8b 35 e0 20 4c 00    	mov    0x4c20e0,%esi
410405:	85 f6                	test   %esi,%esi
410407:	0f 84 f7 a4 06 00    	je     0x47a904
41040d:	8b 0d f0 21 4c 00    	mov    0x4c21f0,%ecx
410413:	c6 44 24 1f 00       	movb   $0x0,0x1f(%esp)
410418:	f6 c1 01             	test   $0x1,%cl
41041b:	0f 84 ef a1 06 00    	je     0x47a610
410421:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
410428:	00 00 00
41042b:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
410432:	00 00 00
410435:	c7 44 24 3c f4 21 4c 	movl   $0x4c21f4,0x3c(%esp)
41043c:	00
41043d:	c7 44 24 68 f4 21 4c 	movl   $0x4c21f4,0x68(%esp)
410444:	00
410445:	8b 50 04             	mov    0x4(%eax),%edx
410448:	8b 4e 04             	mov    0x4(%esi),%ecx
41044b:	89 54 24 44          	mov    %edx,0x44(%esp)
41044f:	85 d2                	test   %edx,%edx
410451:	0f 84 e8 a1 06 00    	je     0x47a63f
410457:	85 c9                	test   %ecx,%ecx
410459:	0f 84 e8 a1 06 00    	je     0x47a647
41045f:	3b d1                	cmp    %ecx,%edx
410461:	0f 82 96 01 00 00    	jb     0x4105fd
410467:	8b 0e                	mov    (%esi),%ecx
410469:	8b c2                	mov    %edx,%eax
41046b:	8b 54 24 30          	mov    0x30(%esp),%edx
41046f:	89 44 24 48          	mov    %eax,0x48(%esp)
410473:	8b 12                	mov    (%edx),%edx
410475:	85 c0                	test   %eax,%eax
410477:	74 1f                	je     0x410498
410479:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
410480:	66 8b 02             	mov    (%edx),%ax
410483:	66 3b 01             	cmp    (%ecx),%ax
410486:	0f 85 c1 01 00 00    	jne    0x41064d
41048c:	83 c2 02             	add    $0x2,%edx
41048f:	83 c1 02             	add    $0x2,%ecx
410492:	ff 4c 24 48          	decl   0x48(%esp)
410496:	75 e8                	jne    0x410480
410498:	33 c0                	xor    %eax,%eax
41049a:	8b 54 24 44          	mov    0x44(%esp),%edx
41049e:	85 c0                	test   %eax,%eax
4104a0:	0f 88 b8 01 00 00    	js     0x41065e
4104a6:	0f 8f 90 00 00 00    	jg     0x41053c
4104ac:	c6 44 24 1f 01       	movb   $0x1,0x1f(%esp)
4104b1:	80 7c 24 1f 00       	cmpb   $0x0,0x1f(%esp)
4104b6:	8b 46 18             	mov    0x18(%esi),%eax
4104b9:	8b 4c 24 68          	mov    0x68(%esp),%ecx
4104bd:	89 41 1c             	mov    %eax,0x1c(%ecx)
4104c0:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
4104c5:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
4104c9:	8b 40 1c             	mov    0x1c(%eax),%eax
4104cc:	89 41 18             	mov    %eax,0x18(%ecx)
4104cf:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
4104d5:	a1 10 22 4c 00       	mov    0x4c2210,%eax
4104da:	89 41 18             	mov    %eax,0x18(%ecx)
4104dd:	8b 0d e0 20 4c 00    	mov    0x4c20e0,%ecx
4104e3:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
4104e8:	89 41 1c             	mov    %eax,0x1c(%ecx)
4104eb:	0f 84 13 a4 06 00    	je     0x47a904
4104f1:	a1 e0 20 4c 00       	mov    0x4c20e0,%eax
4104f6:	85 c0                	test   %eax,%eax
4104f8:	0f 84 06 a4 06 00    	je     0x47a904
4104fe:	8b 40 14             	mov    0x14(%eax),%eax
410501:	85 c0                	test   %eax,%eax
410503:	0f 85 10 fa ff ff    	jne    0x40ff19
410509:	e9 f6 a3 06 00       	jmp    0x47a904
41050e:	83 c0 02             	add    $0x2,%eax
410511:	83 c2 02             	add    $0x2,%edx
410514:	ff 4c 24 3c          	decl   0x3c(%esp)
410518:	89 44 24 44          	mov    %eax,0x44(%esp)
41051c:	0f 85 fe fc ff ff    	jne    0x410220
410522:	8b 44 24 60          	mov    0x60(%esp),%eax
410526:	3b 41 04             	cmp    0x4(%ecx),%eax
410529:	0f 83 24 fd ff ff    	jae    0x410253
41052f:	e9 04 fd ff ff       	jmp    0x410238
410534:	8b 43 04             	mov    0x4(%ebx),%eax
410537:	e9 72 fa ff ff       	jmp    0x40ffae
41053c:	8d 46 1c             	lea    0x1c(%esi),%eax
41053f:	89 44 24 38          	mov    %eax,0x38(%esp)
410543:	8b 00                	mov    (%eax),%eax
410545:	85 c0                	test   %eax,%eax
410547:	0f 84 64 ff ff ff    	je     0x4104b1
41054d:	8b 48 04             	mov    0x4(%eax),%ecx
410550:	89 4c 24 40          	mov    %ecx,0x40(%esp)
410554:	3b ca                	cmp    %edx,%ecx
410556:	76 06                	jbe    0x41055e