40fd8a:	8b 8f 9c fc ff ff    	mov    -0x364(%edi),%ecx
40fd90:	85 c9                	test   %ecx,%ecx
40fd92:	0f 85 87 4d 03 00    	jne    0x444b1f
40fd98:	89 9f a4 fc ff ff    	mov    %ebx,-0x35c(%edi)
40fd9e:	8b 8f 90 fc ff ff    	mov    -0x370(%edi),%ecx
40fda4:	85 c9                	test   %ecx,%ecx
40fda6:	0f 85 87 4d 03 00    	jne    0x444b33
40fdac:	8d 8f 4c fc ff ff    	lea    -0x3b4(%edi),%ecx
40fdb2:	89 9f 98 fc ff ff    	mov    %ebx,-0x368(%edi)
40fdb8:	e8 a7 5c ff ff       	call   0x405a64
40fdbd:	8d 8f 3c fc ff ff    	lea    -0x3c4(%edi),%ecx
40fdc3:	e8 9c 5c ff ff       	call   0x405a64
40fdc8:	8d 8f 2c fc ff ff    	lea    -0x3d4(%edi),%ecx
40fdce:	e8 91 5c ff ff       	call   0x405a64
40fdd3:	8d 8f fc fb ff ff    	lea    -0x404(%edi),%ecx
40fdd9:	e8 cb 03 01 00       	call   0x4201a9
40fdde:	5f                   	pop    %edi
40fddf:	5e                   	pop    %esi
40fde0:	5b                   	pop    %ebx
40fde1:	8b e5                	mov    %ebp,%esp
40fde3:	5d                   	pop    %ebp
40fde4:	c3                   	ret
40fde5:	8b 87 38 fd ff ff    	mov    -0x2c8(%edi),%eax
40fdeb:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40fdee:	8b 00                	mov    (%eax),%eax
40fdf0:	85 c0                	test   %eax,%eax
40fdf2:	74 23                	je     0x40fe17
40fdf4:	ff 30                	push   (%eax)
40fdf6:	ff 35 ac 62 4c 00    	push   0x4c62ac
40fdfc:	ff 15 f4 f6 48 00    	call   *0x48f6f4
40fe02:	8b 87 38 fd ff ff    	mov    -0x2c8(%edi),%eax
40fe08:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40fe0b:	8b 08                	mov    (%eax),%ecx
40fe0d:	85 c9                	test   %ecx,%ecx
40fe0f:	74 06                	je     0x40fe17
40fe11:	51                   	push   %ecx
40fe12:	e8 ca 0f 01 00       	call   0x420de1
40fe17:	46                   	inc    %esi
40fe18:	3b b7 3c fd ff ff    	cmp    -0x2c4(%edi),%esi
40fe1e:	0f 83 f4 fd ff ff    	jae    0x40fc18
40fe24:	eb bf                	jmp    0x40fde5
40fe26:	8b 71 04             	mov    0x4(%ecx),%esi
40fe29:	51                   	push   %ecx
40fe2a:	e8 9d 0c 01 00       	call   0x420acc
40fe2f:	8b ce                	mov    %esi,%ecx
40fe31:	85 f6                	test   %esi,%esi
40fe33:	0f 84 98 fe ff ff    	je     0x40fcd1
40fe39:	eb eb                	jmp    0x40fe26
40fe3b:	cc                   	int3
40fe3c:	cc                   	int3
40fe3d:	cc                   	int3
40fe3e:	cc                   	int3
40fe3f:	cc                   	int3
40fe40:	55                   	push   %ebp
40fe41:	8b ec                	mov    %esp,%ebp
40fe43:	83 e4 f8             	and    $0xfffffff8,%esp
40fe46:	81 ec b4 00 00 00    	sub    $0xb4,%esp
40fe4c:	53                   	push   %ebx
40fe4d:	56                   	push   %esi
40fe4e:	8b 75 0c             	mov    0xc(%ebp),%esi
40fe51:	8b d9                	mov    %ecx,%ebx
40fe53:	57                   	push   %edi
40fe54:	8b 7d 10             	mov    0x10(%ebp),%edi
40fe57:	83 ec 10             	sub    $0x10,%esp
40fe5a:	89 5c 24 28          	mov    %ebx,0x28(%esp)
40fe5e:	8b 46 04             	mov    0x4(%esi),%eax
40fe61:	c7 44 24 30 03 00 00 	movl   $0x3,0x30(%esp)
40fe68:	00
40fe69:	8b 17                	mov    (%edi),%edx
40fe6b:	8b 04 90             	mov    (%eax,%edx,4),%eax
40fe6e:	8b d4                	mov    %esp,%edx
40fe70:	0f bf 48 0a          	movswl 0xa(%eax),%ecx
40fe74:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
40fe78:	8b 08                	mov    (%eax),%ecx
40fe7a:	8b 01                	mov    (%ecx),%eax
40fe7c:	89 02                	mov    %eax,(%edx)
40fe7e:	8b 41 04             	mov    0x4(%ecx),%eax
40fe81:	89 42 04             	mov    %eax,0x4(%edx)
40fe84:	8b 41 08             	mov    0x8(%ecx),%eax
40fe87:	89 42 08             	mov    %eax,0x8(%edx)
40fe8a:	8b 41 0c             	mov    0xc(%ecx),%eax
40fe8d:	8d 8b 34 01 00 00    	lea    0x134(%ebx),%ecx
40fe93:	89 42 0c             	mov    %eax,0xc(%edx)
40fe96:	ff 00                	incl   (%eax)
40fe98:	e8 43 84 ff ff       	call   0x4082e0
40fe9d:	89 44 24 44          	mov    %eax,0x44(%esp)
40fea1:	85 c0                	test   %eax,%eax
40fea3:	0f 84 9e 4c 03 00    	je     0x444b47
40fea9:	8b 83 48 01 00 00    	mov    0x148(%ebx),%eax
40feaf:	33 c9                	xor    %ecx,%ecx
40feb1:	89 84 24 84 00 00 00 	mov    %eax,0x84(%esp)
40feb8:	33 c0                	xor    %eax,%eax
40feba:	89 4c 24 64          	mov    %ecx,0x64(%esp)
40febe:	8b 0f                	mov    (%edi),%ecx
40fec0:	89 44 24 70          	mov    %eax,0x70(%esp)
40fec4:	41                   	inc    %ecx
40fec5:	89 44 24 78          	mov    %eax,0x78(%esp)
40fec9:	89 44 24 38          	mov    %eax,0x38(%esp)
40fecd:	89 44 24 58          	mov    %eax,0x58(%esp)
40fed1:	89 44 24 60          	mov    %eax,0x60(%esp)
40fed5:	89 44 24 48          	mov    %eax,0x48(%esp)
40fed9:	89 44 24 68          	mov    %eax,0x68(%esp)
40fedd:	8b 46 04             	mov    0x4(%esi),%eax
40fee0:	c7 44 24 7c 01 00 00 	movl   $0x1,0x7c(%esp)
40fee7:	00
40fee8:	c7 44 24 4c 84 fb 48 	movl   $0x48fb84,0x4c(%esp)
40feef:	00
40fef0:	c7 44 24 50 00 00 00 	movl   $0x0,0x50(%esp)
40fef7:	00
40fef8:	8b 04 88             	mov    (%eax,%ecx,4),%eax
40fefb:	c7 44 24 54 00 00 00 	movl   $0x0,0x54(%esp)
40ff02:	00
40ff03:	c7 44 24 5c c0 1c 49 	movl   $0x491cc0,0x5c(%esp)
40ff0a:	00
40ff0b:	89 0f                	mov    %ecx,(%edi)
40ff0d:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40ff12:	0f 85 47 4c 03 00    	jne    0x444b5f
40ff18:	8d 44 24 14          	lea    0x14(%esp),%eax
40ff1c:	89 4c 24 24          	mov    %ecx,0x24(%esp)
40ff20:	50                   	push   %eax
40ff21:	8d 44 24 28          	lea    0x28(%esp),%eax
40ff25:	89 4c 24 18          	mov    %ecx,0x18(%esp)
40ff29:	50                   	push   %eax
40ff2a:	57                   	push   %edi
40ff2b:	56                   	push   %esi
40ff2c:	8b cb                	mov    %ebx,%ecx
40ff2e:	e8 61 f4 ff ff       	call   0x40f394
40ff33:	85 c0                	test   %eax,%eax
40ff35:	0f 88 87 50 03 00    	js     0x444fc2
40ff3b:	8b 4c 24 44          	mov    0x44(%esp),%ecx
40ff3f:	8b 41 10             	mov    0x10(%ecx),%eax
40ff42:	3b 05 a0 72 4c 00    	cmp    0x4c72a0,%eax
40ff48:	0f 8f de 08 00 00    	jg     0x41082c
40ff4e:	85 c0                	test   %eax,%eax
40ff50:	0f 8e d6 08 00 00    	jle    0x41082c
40ff56:	c1 e0 04             	shl    $0x4,%eax
40ff59:	03 05 dc 72 4c 00    	add    0x4c72dc,%eax
40ff5f:	8b 78 04             	mov    0x4(%eax),%edi
40ff62:	89 44 24 28          	mov    %eax,0x28(%esp)
40ff66:	8b 07                	mov    (%edi),%eax
40ff68:	66 83 78 08 00       	cmpw   $0x0,0x8(%eax)
40ff6d:	75 09                	jne    0x40ff78
40ff6f:	83 38 2b             	cmpl   $0x2b,(%eax)
40ff72:	0f 84 f9 4b 03 00    	je     0x444b71
40ff78:	ba 03 00 00 00       	mov    $0x3,%edx
40ff7d:	33 db                	xor    %ebx,%ebx
40ff7f:	8b f2                	mov    %edx,%esi
40ff81:	39 59 14             	cmp    %ebx,0x14(%ecx)
40ff84:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40ff88:	8b 54 24 24          	mov    0x24(%esp),%edx
40ff8c:	89 74 24 10          	mov    %esi,0x10(%esp)
40ff90:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
40ff94:	89 5c 24 30          	mov    %ebx,0x30(%esp)
40ff98:	0f 8f 62 05 00 00    	jg     0x410500
40ff9e:	8b 7d 0c             	mov    0xc(%ebp),%edi
40ffa1:	8a 5d 08             	mov    0x8(%ebp),%bl
40ffa4:	84 db                	test   %bl,%bl
40ffa6:	0f 85 a3 4c 03 00    	jne    0x444c4f
40ffac:	8b 74 24 18          	mov    0x18(%esp),%esi
40ffb0:	8b 7c 24 44          	mov    0x44(%esp),%edi
40ffb4:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40ffb8:	3b 47 18             	cmp    0x18(%edi),%eax
40ffbb:	0f 8c e8 4f 03 00    	jl     0x444fa9
40ffc1:	3b 47 14             	cmp    0x14(%edi),%eax
40ffc4:	0f 8f df 4f 03 00    	jg     0x444fa9
40ffca:	3b d1                	cmp    %ecx,%edx
40ffcc:	0f 85 d7 4f 03 00    	jne    0x444fa9
40ffd2:	8b 47 10             	mov    0x10(%edi),%eax
40ffd5:	c7 44 24 30 00 00 00 	movl   $0x0,0x30(%esp)
40ffdc:	00
40ffdd:	89 44 24 34          	mov    %eax,0x34(%esp)
40ffe1:	85 c0                	test   %eax,%eax
40ffe3:	0f 88 3a 4d 03 00    	js     0x444d23
40ffe9:	8d 44 24 30          	lea    0x30(%esp),%eax
40ffed:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
40fff2:	50                   	push   %eax
40fff3:	e8 e4 84 ff ff       	call   0x4084dc
40fff8:	8b 74 24 30          	mov    0x30(%esp),%esi
40fffc:	85 f6                	test   %esi,%esi
40fffe:	0f 85 2c 4d 03 00    	jne    0x444d30
410004:	83 7f 14 01          	cmpl   $0x1,0x14(%edi)
410008:	0f 8d cb 02 00 00    	jge    0x4102d9
41000e:	8b 5c 24 18          	mov    0x18(%esp),%ebx
410012:	8b 44 24 2c          	mov    0x2c(%esp),%eax
410016:	c7 84 24 88 00 00 00 	movl   $0x0,0x88(%esp)
41001d:	00 00 00 00
410021:	c7 84 24 90 00 00 00 	movl   $0x0,0x90(%esp)
410028:	00 00 00 00
41002c:	89 83 48 01 00 00    	mov    %eax,0x148(%ebx)
410032:	8b 03                	mov    (%ebx),%eax
410034:	c7 84 24 94 00 00 00 	movl   $0x1,0x94(%esp)
41003b:	01 00 00 00
41003f:	c6 84 24 98 00 00 00 	movb   $0x0,0x98(%esp)
410046:	00
410047:	c7 84 24 9c 00 00 00 	movl   $0x0,0x9c(%esp)
41004e:	00 00 00 00
410052:	8b 78 04             	mov    0x4(%eax),%edi
410055:	03 fb                	add    %ebx,%edi
410057:	c6 84 24 a0 00 00 00 	movb   $0x0,0xa0(%esp)
41005e:	00
41005f:	c7 84 24 a8 00 00 00 	movl   $0x0,0xa8(%esp)
410066:	00 00 00 00
41006a:	c7 84 24 b0 00 00 00 	movl   $0x0,0xb0(%esp)
410071:	00 00 00 00
410075:	c7 84 24 b4 00 00 00 	movl   $0x1,0xb4(%esp)
41007c:	01 00 00 00
410080:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
410084:	c6 84 24 b8 00 00 00 	movb   $0x0,0xb8(%esp)
41008b:	00
41008c:	0f 85 6e 4e 03 00    	jne    0x444f00
410092:	6a 40                	push   $0x40
410094:	e8 5d 0f 01 00       	call   0x420ff6
410099:	8b f0                	mov    %eax,%esi
41009b:	83 c4 04             	add    $0x4,%esp
41009e:	85 f6                	test   %esi,%esi
4100a0:	0f 84 c5 07 00 00    	je     0x41086b
4100a6:	8d 84 24 88 00 00 00 	lea    0x88(%esp),%eax
4100ad:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4100b4:	50                   	push   %eax
4100b5:	8b ce                	mov    %esi,%ecx
4100b7:	e8 04 9a ff ff       	call   0x409ac0
4100bc:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
4100c3:	c6 46 10 00          	movb   $0x0,0x10(%esi)
4100c7:	8d 4e 20             	lea    0x20(%esi),%ecx
4100ca:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
4100d1:	c6 46 18 00          	movb   $0x0,0x18(%esi)
4100d5:	50                   	push   %eax
4100d6:	c7 41 08 00 00 00 00 	movl   $0x0,0x8(%ecx)
4100dd:	e8 de 99 ff ff       	call   0x409ac0
4100e2:	c6 46 30 00          	movb   $0x0,0x30(%esi)
4100e6:	8b 47 08             	mov    0x8(%edi),%eax
4100e9:	89 46 38             	mov    %eax,0x38(%esi)
4100ec:	89 77 08             	mov    %esi,0x8(%edi)
4100ef:	8b 44 24 44          	mov    0x44(%esp),%eax
4100f3:	8d b3 5c 01 00 00    	lea    0x15c(%ebx),%esi
4100f9:	ff 47 04             	incl   0x4(%edi)
4100fc:	8b bb f4 00 00 00    	mov    0xf4(%ebx),%edi
410102:	8b 4c 24 18          	mov    0x18(%esp),%ecx
410106:	8b 40 10             	mov    0x10(%eax),%eax
410109:	8b 1e                	mov    (%esi),%ebx
41010b:	40                   	inc    %eax
41010c:	50                   	push   %eax
41010d:	e8 1e 0a 00 00       	call   0x410b30
410112:	3b 1e                	cmp    (%esi),%ebx
410114:	0f 82 ff 4d 03 00    	jb     0x444f19
41011a:	8b 5c 24 18          	mov    0x18(%esp),%ebx
41011e:	8b 03                	mov    (%ebx),%eax
410120:	89 bb f4 00 00 00    	mov    %edi,0xf4(%ebx)
410126:	8b 48 04             	mov    0x4(%eax),%ecx
410129:	8b 44 19 08          	mov    0x8(%ecx,%ebx,1),%eax
41012d:	03 cb                	add    %ebx,%ecx
41012f:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
410133:	0f 85 39 07 00 00    	jne    0x410872
410139:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
41013d:	8b 45 18             	mov    0x18(%ebp),%eax
410140:	0f 84 2e 06 00 00    	je     0x410774
410146:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
41014a:	c6 00 01             	movb   $0x1,(%eax)
41014d:	0f 85 d6 4d 03 00    	jne    0x444f29
410153:	8b 79 08             	mov    0x8(%ecx),%edi
410156:	8b 75 14             	mov    0x14(%ebp),%esi
410159:	3b f7                	cmp    %edi,%esi
41015b:	74 19                	je     0x410176
41015d:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
410161:	0f 84 cd 4d 03 00    	je     0x444f34
410167:	8b ce                	mov    %esi,%ecx
410169:	e8 b2 98 ff ff       	call   0x409a20
41016e:	57                   	push   %edi
41016f:	8b ce                	mov    %esi,%ecx
410171:	e8 4a 99 ff ff       	call   0x409ac0
410176:	8b 03                	mov    (%ebx),%eax
410178:	8b 70 04             	mov    0x4(%eax),%esi
41017b:	8b 44 1e 08          	mov    0x8(%esi,%ebx,1),%eax
41017f:	03 f3                	add    %ebx,%esi
410181:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410185:	0f 85 ef 06 00 00    	jne    0x41087a
41018b:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
41018f:	0f 85 b9 4d 03 00    	jne    0x444f4e
410195:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410199:	8b 46 08             	mov    0x8(%esi),%eax
41019c:	0f 85 e0 06 00 00    	jne    0x410882
4101a2:	80 78 30 00          	cmpb   $0x0,0x30(%eax)
4101a6:	0f 85 b9 4d 03 00    	jne    0x444f65
4101ac:	8b 03                	mov    (%ebx),%eax
4101ae:	8b 70 04             	mov    0x4(%eax),%esi
4101b1:	03 f3                	add    %ebx,%esi
4101b3:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4101b7:	0f 85 c5 4d 03 00    	jne    0x444f82
4101bd:	80 7e 0c 00          	cmpb   $0x0,0xc(%esi)
4101c1:	0f 85 c3 06 00 00    	jne    0x41088a
4101c7:	8b 7e 08             	mov    0x8(%esi),%edi
4101ca:	8b 5f 38             	mov    0x38(%edi),%ebx
4101cd:	85 ff                	test   %edi,%edi
4101cf:	74 18                	je     0x4101e9
4101d1:	8d 4f 20             	lea    0x20(%edi),%ecx
4101d4:	e8 47 98 ff ff       	call   0x409a20
4101d9:	8b cf                	mov    %edi,%ecx
4101db:	e8 40 98 ff ff       	call   0x409a20
4101e0:	57                   	push   %edi
4101e1:	e8 86 0e 01 00       	call   0x42106c
4101e6:	83 c4 04             	add    $0x4,%esp
4101e9:	89 5e 08             	mov    %ebx,0x8(%esi)
4101ec:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4101f0:	c6 46 0d 00          	movb   $0x0,0xd(%esi)
4101f4:	ff 4e 04             	decl   0x4(%esi)
4101f7:	8b 03                	mov    (%ebx),%eax
4101f9:	8b 48 04             	mov    0x4(%eax),%ecx
4101fc:	8b 44 19 08          	mov    0x8(%ecx,%ebx,1),%eax
410200:	03 cb                	add    %ebx,%ecx
410202:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
410206:	0f 85 87 06 00 00    	jne    0x410893
41020c:	8b 94 24 9c 00 00 00 	mov    0x9c(%esp),%edx
410213:	89 50 14             	mov    %edx,0x14(%eax)
410216:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
41021a:	8b 41 08             	mov    0x8(%ecx),%eax
41021d:	0f 85 78 06 00 00    	jne    0x41089b
410223:	c6 40 18 00          	movb   $0x0,0x18(%eax)
410227:	8b 03                	mov    (%ebx),%eax
410229:	8b 70 04             	mov    0x4(%eax),%esi
41022c:	03 f3                	add    %ebx,%esi
41022e:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
410232:	0f 85 66 4d 03 00    	jne    0x444f9e
410238:	8b 4e 08             	mov    0x8(%esi),%ecx
41023b:	8d 84 24 a8 00 00 00 	lea    0xa8(%esp),%eax
410242:	83 c1 20             	add    $0x20,%ecx
410245:	50                   	push   %eax
410246:	e8 51 9c ff ff       	call   0x409e9c
41024b:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
41024f:	8b 46 08             	mov    0x8(%esi),%eax
410252:	0f 85 4b 06 00 00    	jne    0x4108a3
410258:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
41025d:	c6 40 30 00          	movb   $0x0,0x30(%eax)
410261:	e8 d9 81 ff ff       	call   0x40843f
410266:	8b 84 24 84 00 00 00 	mov    0x84(%esp),%eax
41026d:	8d 8c 24 a8 00 00 00 	lea    0xa8(%esp),%ecx
410274:	89 83 48 01 00 00    	mov    %eax,0x148(%ebx)
41027a:	33 db                	xor    %ebx,%ebx
41027c:	89 5c 24 30          	mov    %ebx,0x30(%esp)
410280:	e8 9b 97 ff ff       	call   0x409a20
410285:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
41028c:	e8 8f 97 ff ff       	call   0x409a20
410291:	8d 4c 24 70          	lea    0x70(%esp),%ecx
410295:	e8 86 97 ff ff       	call   0x409a20
41029a:	8b 7c 24 64          	mov    0x64(%esp),%edi
41029e:	33 f6                	xor    %esi,%esi
4102a0:	85 ff                	test   %edi,%edi
4102a2:	0f 85 63 04 00 00    	jne    0x41070b
4102a8:	ff 74 24 60          	push   0x60(%esp)
4102ac:	e8 bb 0d 01 00       	call   0x42106c
4102b1:	8b 44 24 58          	mov    0x58(%esp),%eax