404eec:	55                   	push   %ebp
404eed:	8b ec                	mov    %esp,%ebp
404eef:	53                   	push   %ebx
404ef0:	56                   	push   %esi
404ef1:	8b da                	mov    %edx,%ebx
404ef3:	57                   	push   %edi
404ef4:	8b 7d 08             	mov    0x8(%ebp),%edi
404ef7:	8b f3                	mov    %ebx,%esi
404ef9:	0f af f7             	imul   %edi,%esi
404efc:	03 f1                	add    %ecx,%esi
404efe:	eb 07                	jmp    0x404f07
404f00:	2b f3                	sub    %ebx,%esi
404f02:	8b ce                	mov    %esi,%ecx
404f04:	ff 55 0c             	call   *0xc(%ebp)
404f07:	4f                   	dec    %edi
404f08:	79 f6                	jns    0x404f00
404f0a:	5f                   	pop    %edi
404f0b:	5e                   	pop    %esi
404f0c:	5b                   	pop    %ebx
404f0d:	5d                   	pop    %ebp
404f0e:	c2 08 00             	ret    $0x8
404f11:	56                   	push   %esi
404f12:	8b f1                	mov    %ecx,%esi
404f14:	c7 06 b4 dd 49 00    	movl   $0x49ddb4,(%esi)
404f1a:	e8 11 00 00 00       	call   0x404f30
404f1f:	ff 76 04             	push   0x4(%esi)
404f22:	e8 37 a6 01 00       	call   0x41f55e
404f27:	59                   	pop    %ecx
404f28:	5e                   	pop    %esi
404f29:	c3                   	ret
404f2a:	cc                   	int3
404f2b:	cc                   	int3
404f2c:	cc                   	int3
404f2d:	cc                   	int3
404f2e:	cc                   	int3
404f2f:	cc                   	int3
404f30:	55                   	push   %ebp
404f31:	8b ec                	mov    %esp,%ebp
404f33:	51                   	push   %ecx
404f34:	53                   	push   %ebx
404f35:	56                   	push   %esi
404f36:	8b d9                	mov    %ecx,%ebx
404f38:	33 f6                	xor    %esi,%esi
404f3a:	39 73 08             	cmp    %esi,0x8(%ebx)
404f3d:	76 7c                	jbe    0x404fbb
404f3f:	57                   	push   %edi
404f40:	8b 43 04             	mov    0x4(%ebx),%eax
404f43:	8b 3c b0             	mov    (%eax,%esi,4),%edi
404f46:	85 ff                	test   %edi,%edi
404f48:	74 13                	je     0x404f5d
404f4a:	0f b7 47 08          	movzwl 0x8(%edi),%eax
404f4e:	66 83 f8 3f          	cmp    $0x3f,%ax
404f52:	7e 28                	jle    0x404f7c
404f54:	57                   	push   %edi
404f55:	e8 04 a6 01 00       	call   0x41f55e
404f5a:	83 c4 04             	add    $0x4,%esp
404f5d:	8b 43 04             	mov    0x4(%ebx),%eax
404f60:	46                   	inc    %esi
404f61:	c7 44 b0 fc 00 00 00 	movl   $0x0,-0x4(%eax,%esi,4)
404f68:	00
404f69:	3b 73 08             	cmp    0x8(%ebx),%esi
404f6c:	72 d2                	jb     0x404f40
404f6e:	5f                   	pop    %edi
404f6f:	5e                   	pop    %esi
404f70:	c7 43 08 00 00 00 00 	movl   $0x0,0x8(%ebx)
404f77:	5b                   	pop    %ebx
404f78:	8b e5                	mov    %ebp,%esp
404f7a:	5d                   	pop    %ebp
404f7b:	c3                   	ret
404f7c:	66 83 f8 30          	cmp    $0x30,%ax
404f80:	7c d2                	jl     0x404f54
404f82:	8b 0f                	mov    (%edi),%ecx
404f84:	89 4d fc             	mov    %ecx,-0x4(%ebp)
404f87:	85 c9                	test   %ecx,%ecx
404f89:	74 c9                	je     0x404f54
404f8b:	8b 41 0c             	mov    0xc(%ecx),%eax
404f8e:	ff 08                	decl   (%eax)
404f90:	8b 41 0c             	mov    0xc(%ecx),%eax
404f93:	83 38 00             	cmpl   $0x0,(%eax)
404f96:	75 18                	jne    0x404fb0
404f98:	ff 31                	push   (%ecx)
404f9a:	e8 bf a5 01 00       	call   0x41f55e
404f9f:	8b 45 fc             	mov    -0x4(%ebp),%eax
404fa2:	ff 70 0c             	push   0xc(%eax)
404fa5:	e8 b4 a5 01 00       	call   0x41f55e
404faa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404fad:	83 c4 08             	add    $0x8,%esp
404fb0:	51                   	push   %ecx
404fb1:	e8 a8 a5 01 00       	call   0x41f55e
404fb6:	83 c4 04             	add    $0x4,%esp
404fb9:	eb 99                	jmp    0x404f54
404fbb:	89 73 08             	mov    %esi,0x8(%ebx)
404fbe:	5e                   	pop    %esi
404fbf:	5b                   	pop    %ebx
404fc0:	8b e5                	mov    %ebp,%esp
404fc2:	5d                   	pop    %ebp
404fc3:	c3                   	ret
404fc4:	55                   	push   %ebp
404fc5:	8b ec                	mov    %esp,%ebp
404fc7:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
404fcb:	56                   	push   %esi
404fcc:	8b f1                	mov    %ecx,%esi
404fce:	0f 84 48 de 06 00    	je     0x472e1c
404fd4:	57                   	push   %edi
404fd5:	68 11 4f 40 00       	push   $0x404f11
404fda:	8d 7e fc             	lea    -0x4(%esi),%edi
404fdd:	ff 37                	push   (%edi)
404fdf:	6a 10                	push   $0x10
404fe1:	5a                   	pop    %edx
404fe2:	e8 05 ff ff ff       	call   0x404eec
404fe7:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
404feb:	74 07                	je     0x404ff4
404fed:	57                   	push   %edi
404fee:	e8 6b a5 01 00       	call   0x41f55e
404ff3:	59                   	pop    %ecx
404ff4:	8b c7                	mov    %edi,%eax
404ff6:	5f                   	pop    %edi
404ff7:	5e                   	pop    %esi
404ff8:	5d                   	pop    %ebp
404ff9:	c2 04 00             	ret    $0x4
404ffc:	55                   	push   %ebp
404ffd:	8b ec                	mov    %esp,%ebp
404fff:	83 e4 f8             	and    $0xfffffff8,%esp
405002:	81 ec bc 03 00 00    	sub    $0x3bc,%esp
405008:	53                   	push   %ebx
405009:	56                   	push   %esi
40500a:	57                   	push   %edi
40500b:	68 b4 03 00 00       	push   $0x3b4
405010:	33 db                	xor    %ebx,%ebx
405012:	8d 44 24 18          	lea    0x18(%esp),%eax
405016:	53                   	push   %ebx
405017:	50                   	push   %eax
405018:	8b f1                	mov    %ecx,%esi
40501a:	c7 44 24 1c a8 03 00 	movl   $0x3a8,0x1c(%esp)
405021:	00
405022:	e8 29 bd 01 00       	call   0x420d50
405027:	83 c4 0c             	add    $0xc,%esp
40502a:	39 9e 98 01 00 00    	cmp    %ebx,0x198(%esi)
405030:	75 0b                	jne    0x40503d
405032:	a1 14 11 4c 00       	mov    0x4c1114,%eax
405037:	89 86 98 01 00 00    	mov    %eax,0x198(%esi)
40503d:	39 9e a4 01 00 00    	cmp    %ebx,0x1a4(%esi)
405043:	75 11                	jne    0x405056
405045:	a1 18 11 4c 00       	mov    0x4c1118,%eax
40504a:	89 86 a4 01 00 00    	mov    %eax,0x1a4(%esi)
405050:	89 86 a8 01 00 00    	mov    %eax,0x1a8(%esi)
405056:	39 9e b0 01 00 00    	cmp    %ebx,0x1b0(%esi)
40505c:	75 0b                	jne    0x405069
40505e:	a1 1c 11 4c 00       	mov    0x4c111c,%eax
405063:	89 86 b0 01 00 00    	mov    %eax,0x1b0(%esi)
405069:	8d 9e a0 01 00 00    	lea    0x1a0(%esi),%ebx
40506f:	53                   	push   %ebx
405070:	8d be 9c 01 00 00    	lea    0x19c(%esi),%edi
405076:	57                   	push   %edi
405077:	e8 b4 fb ff ff       	call   0x404c30
40507c:	a1 e8 10 4c 00       	mov    0x4c10e8,%eax
405081:	33 c9                	xor    %ecx,%ecx
405083:	89 44 24 14          	mov    %eax,0x14(%esp)
405087:	c7 44 24 18 01 00 00 	movl   $0x1,0x18(%esp)
40508e:	00
40508f:	c7 44 24 1c 03 00 00 	movl   $0x3,0x1c(%esp)
405096:	00
405097:	c7 44 24 20 01 04 00 	movl   $0x401,0x20(%esp)
40509e:	00
40509f:	89 4c 24 24          	mov    %ecx,0x24(%esp)
4050a3:	39 4e 40             	cmp    %ecx,0x40(%esi)
4050a6:	0f 85 50 ec 06 00    	jne    0x473cfc
4050ac:	8b 86 98 01 00 00    	mov    0x198(%esi),%eax
4050b2:	89 44 24 24          	mov    %eax,0x24(%esp)
4050b6:	89 07                	mov    %eax,(%edi)
4050b8:	80 3d c6 10 4c 00 01 	cmpb   $0x1,0x4c10c6
4050bf:	8d 44 24 10          	lea    0x10(%esp),%eax
4050c3:	50                   	push   %eax
4050c4:	0f 84 5e ec 06 00    	je     0x473d28
4050ca:	51                   	push   %ecx
4050cb:	ff 15 a4 d4 48 00    	call   *0x48d4a4
4050d1:	c6 05 c6 10 4c 00 01 	movb   $0x1,0x4c10c6
4050d8:	8b ce                	mov    %esi,%ecx
4050da:	e8 d0 00 00 00       	call   0x4051af
4050df:	5f                   	pop    %edi
4050e0:	5e                   	pop    %esi
4050e1:	5b                   	pop    %ebx
4050e2:	8b e5                	mov    %ebp,%esp
4050e4:	5d                   	pop    %ebp
4050e5:	c3                   	ret
4050e6:	55                   	push   %ebp
4050e7:	8b ec                	mov    %esp,%ebp
4050e9:	56                   	push   %esi
4050ea:	8b 75 08             	mov    0x8(%ebp),%esi
4050ed:	57                   	push   %edi
4050ee:	8b f9                	mov    %ecx,%edi
4050f0:	85 f6                	test   %esi,%esi
4050f2:	74 15                	je     0x405109
4050f4:	8d 46 ff             	lea    -0x1(%esi),%eax
4050f7:	50                   	push   %eax
4050f8:	52                   	push   %edx
4050f9:	57                   	push   %edi
4050fa:	e8 ad d2 01 00       	call   0x4223ac
4050ff:	83 c4 0c             	add    $0xc,%esp
405102:	33 c0                	xor    %eax,%eax
405104:	66 89 44 77 fe       	mov    %ax,-0x2(%edi,%esi,2)
405109:	5f                   	pop    %edi
40510a:	5e                   	pop    %esi
40510b:	5d                   	pop    %ebp
40510c:	c3                   	ret
40510d:	55                   	push   %ebp
40510e:	8b ec                	mov    %esp,%ebp
405110:	83 ec 18             	sub    $0x18,%esp
405113:	56                   	push   %esi
405114:	8b f1                	mov    %ecx,%esi
405116:	3b 75 08             	cmp    0x8(%ebp),%esi
405119:	0f 84 c8 ca 06 00    	je     0x471be7
40511f:	6a ff                	push   $0xffffffff
405121:	6a 00                	push   $0x0
405123:	ff 75 08             	push   0x8(%ebp)
405126:	e8 59 62 00 00       	call   0x40b384
40512b:	5e                   	pop    %esi
40512c:	c9                   	leave
40512d:	c2 04 00             	ret    $0x4
405130:	55                   	push   %ebp
405131:	8b ec                	mov    %esp,%ebp
405133:	53                   	push   %ebx
405134:	57                   	push   %edi
405135:	ff 75 08             	push   0x8(%ebp)
405138:	8b f9                	mov    %ecx,%edi
40513a:	e8 9c bb 01 00       	call   0x420cdb
40513f:	59                   	pop    %ecx
405140:	8b cf                	mov    %edi,%ecx
405142:	8b d8                	mov    %eax,%ebx
405144:	e8 a1 19 00 00       	call   0x406aea
405149:	84 c0                	test   %al,%al
40514b:	0f 85 d6 c9 06 00    	jne    0x471b27
405151:	8b 47 04             	mov    0x4(%edi),%eax
405154:	03 c3                	add    %ebx,%eax
405156:	50                   	push   %eax
405157:	8b cf                	mov    %edi,%ecx
405159:	e8 27 6a 00 00       	call   0x40bb85
40515e:	8b 4f 04             	mov    0x4(%edi),%ecx
405161:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
405164:	50                   	push   %eax
405165:	8b 07                	mov    (%edi),%eax
405167:	ff 75 08             	push   0x8(%ebp)
40516a:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40516d:	50                   	push   %eax
40516e:	e8 0d 9d 01 00       	call   0x41ee80
405173:	01 5f 04             	add    %ebx,0x4(%edi)
405176:	8b 07                	mov    (%edi),%eax
405178:	8b 4f 04             	mov    0x4(%edi),%ecx
40517b:	83 c4 0c             	add    $0xc,%esp
40517e:	33 d2                	xor    %edx,%edx
405180:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
405184:	8b c7                	mov    %edi,%eax
405186:	5f                   	pop    %edi
405187:	5b                   	pop    %ebx
405188:	5d                   	pop    %ebp
405189:	c2 08 00             	ret    $0x8
40518c:	55                   	push   %ebp
40518d:	8b ec                	mov    %esp,%ebp
40518f:	57                   	push   %edi
405190:	8b f9                	mov    %ecx,%edi
405192:	e8 53 19 00 00       	call   0x406aea
405197:	84 c0                	test   %al,%al
405199:	0f 85 2f c9 06 00    	jne    0x471ace
40519f:	51                   	push   %ecx
4051a0:	ff 75 08             	push   0x8(%ebp)
4051a3:	8b cf                	mov    %edi,%ecx
4051a5:	e8 86 ff ff ff       	call   0x405130
4051aa:	5f                   	pop    %edi
4051ab:	5d                   	pop    %ebp
4051ac:	c2 04 00             	ret    $0x4
4051af:	55                   	push   %ebp
4051b0:	8b ec                	mov    %esp,%ebp
4051b2:	83 e4 f8             	and    $0xfffffff8,%esp
4051b5:	81 ec cc 04 00 00    	sub    $0x4cc,%esp
4051bb:	80 3d c6 10 4c 00 00 	cmpb   $0x0,0x4c10c6
4051c2:	56                   	push   %esi
4051c3:	8b f1                	mov    %ecx,%esi
4051c5:	0f 84 d7 00 00 00    	je     0x4052a2
4051cb:	68 04 01 00 00       	push   $0x104
4051d0:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4051d4:	e8 36 19 00 00       	call   0x406b0f
4051d9:	80 3d c5 10 4c 00 01 	cmpb   $0x1,0x4c10c5
4051e0:	0f 84 bb ea 06 00    	je     0x473ca1
4051e6:	33 c0                	xor    %eax,%eax
4051e8:	66 89 44 24 18       	mov    %ax,0x18(%esp)
4051ed:	8d 44 24 18          	lea    0x18(%esp),%eax
4051f1:	50                   	push   %eax
4051f2:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
4051f6:	e8 68 18 00 00       	call   0x406a63
4051fb:	80 3d c3 10 4c 00 00 	cmpb   $0x0,0x4c10c3
405202:	8d 4c 24 08          	lea    0x8(%esp),%ecx
405206:	0f 85 af ea 06 00    	jne    0x473cbb
40520c:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
405210:	0f 85 91 00 00 00    	jne    0x4052a7
405216:	68 20 11 4c 00       	push   $0x4c1120
40521b:	e8 ed fe ff ff       	call   0x40510d
405220:	68 b4 03 00 00       	push   $0x3b4
405225:	8d 84 24 20 01 00 00 	lea    0x120(%esp),%eax
40522c:	6a 00                	push   $0x0
40522e:	50                   	push   %eax
40522f:	e8 1c bb 01 00       	call   0x420d50
405234:	a1 e8 10 4c 00       	mov    0x4c10e8,%eax
405239:	8b 54 24 14          	mov    0x14(%esp),%edx
40523d:	83 c4 0c             	add    $0xc,%esp
405240:	33 f6                	xor    %esi,%esi
405242:	46                   	inc    %esi
405243:	68 80 00 00 00       	push   $0x80
405248:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
40524c:	c7 84 24 1c 01 00 00 	movl   $0x3a8,0x11c(%esp)
405253:	a8 03 00 00
405257:	89 84 24 20 01 00 00 	mov    %eax,0x120(%esp)
40525e:	89 b4 24 24 01 00 00 	mov    %esi,0x124(%esp)
405265:	c7 84 24 28 01 00 00 	movl   $0x4,0x128(%esp)
40526c:	04 00 00 00
405270:	e8 71 fe ff ff       	call   0x4050e6
405275:	59                   	pop    %ecx
405276:	8d 44 24 18          	lea    0x18(%esp),%eax
40527a:	50                   	push   %eax
40527b:	8d 84 24 34 01 00 00 	lea    0x134(%esp),%eax
405282:	50                   	push   %eax
405283:	e8 9b ba 01 00       	call   0x420d23
405288:	59                   	pop    %ecx
405289:	59                   	pop    %ecx
40528a:	8d 84 24 18 01 00 00 	lea    0x118(%esp),%eax
405291:	50                   	push   %eax
405292:	56                   	push   %esi
405293:	ff 15 a4 d4 48 00    	call   *0x48d4a4
405299:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40529d:	e8 95 78 00 00       	call   0x40cb37
4052a2:	5e                   	pop    %esi
4052a3:	8b e5                	mov    %ebp,%esp
4052a5:	5d                   	pop    %ebp
4052a6:	c3                   	ret
4052a7:	8d 46 5c             	lea    0x5c(%esi),%eax
4052aa:	50                   	push   %eax
4052ab:	e8 3d 1c 00 00       	call   0x406eed
4052b0:	e9 6b ff ff ff       	jmp    0x405220
4052b5:	53                   	push   %ebx
4052b6:	57                   	push   %edi
4052b7:	8b f9                	mov    %ecx,%edi
4052b9:	8b 5f 08             	mov    0x8(%edi),%ebx
4052bc:	85 db                	test   %ebx,%ebx
4052be:	74 1a                	je     0x4052da
4052c0:	56                   	push   %esi
4052c1:	ff 33                	push   (%ebx)
4052c3:	8b 73 0c             	mov    0xc(%ebx),%esi
4052c6:	e8 93 a2 01 00       	call   0x41f55e
4052cb:	53                   	push   %ebx
4052cc:	e8 8d a2 01 00       	call   0x41f55e
4052d1:	59                   	pop    %ecx