404ead:	89 45 fc             	mov    %eax,-0x4(%ebp)
404eb0:	53                   	push   %ebx
404eb1:	56                   	push   %esi
404eb2:	57                   	push   %edi
404eb3:	89 95 d8 fe ff ff    	mov    %edx,-0x128(%ebp)
404eb9:	89 8d d4 fe ff ff    	mov    %ecx,-0x12c(%ebp)
404ebf:	8b 45 18             	mov    0x18(%ebp),%eax
404ec2:	89 85 dc fe ff ff    	mov    %eax,-0x124(%ebp)
404ec8:	8b 45 20             	mov    0x20(%ebp),%eax
404ecb:	89 85 e0 fe ff ff    	mov    %eax,-0x120(%ebp)
404ed1:	8b 45 28             	mov    0x28(%ebp),%eax
404ed4:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
404eda:	8b 45 30             	mov    0x30(%ebp),%eax
404edd:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
404ee3:	8b 45 40             	mov    0x40(%ebp),%eax
404ee6:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
404eea:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
404eee:	83 65 a0 00          	andl   $0x0,-0x60(%ebp)
404ef2:	83 65 a8 00          	andl   $0x0,-0x58(%ebp)
404ef6:	83 65 80 00          	andl   $0x0,-0x80(%ebp)
404efa:	83 65 88 00          	andl   $0x0,-0x78(%ebp)
404efe:	83 a5 60 ff ff ff 00 	andl   $0x0,-0xa0(%ebp)
404f05:	83 a5 68 ff ff ff 00 	andl   $0x0,-0x98(%ebp)
404f0c:	83 a5 40 ff ff ff 00 	andl   $0x0,-0xc0(%ebp)
404f13:	83 a5 48 ff ff ff 00 	andl   $0x0,-0xb8(%ebp)
404f1a:	83 a5 20 ff ff ff 00 	andl   $0x0,-0xe0(%ebp)
404f21:	89 45 cc             	mov    %eax,-0x34(%ebp)
404f24:	8b 45 34             	mov    0x34(%ebp),%eax
404f27:	89 45 9c             	mov    %eax,-0x64(%ebp)
404f2a:	8b 45 2c             	mov    0x2c(%ebp),%eax
404f2d:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
404f33:	8b 45 24             	mov    0x24(%ebp),%eax
404f36:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
404f3c:	8b 45 1c             	mov    0x1c(%ebp),%eax
404f3f:	8b 5d 38             	mov    0x38(%ebp),%ebx
404f42:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
404f48:	8b 45 14             	mov    0x14(%ebp),%eax
404f4b:	8b 75 44             	mov    0x44(%ebp),%esi
404f4e:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
404f54:	8b 45 10             	mov    0x10(%ebp),%eax
404f57:	8b 7d 3c             	mov    0x3c(%ebp),%edi
404f5a:	6a 04                	push   $0x4
404f5c:	8b 00                	mov    (%eax),%eax
404f5e:	5a                   	pop    %edx
404f5f:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
404f65:	8d 45 ec             	lea    -0x14(%ebp),%eax
404f68:	89 55 d4             	mov    %edx,-0x2c(%ebp)
404f6b:	89 55 a4             	mov    %edx,-0x5c(%ebp)
404f6e:	89 55 84             	mov    %edx,-0x7c(%ebp)
404f71:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
404f77:	89 95 44 ff ff ff    	mov    %edx,-0xbc(%ebp)
404f7d:	89 95 24 ff ff ff    	mov    %edx,-0xdc(%ebp)
404f83:	33 d2                	xor    %edx,%edx
404f85:	8b 4d 48             	mov    0x48(%ebp),%ecx
404f88:	50                   	push   %eax
404f89:	89 95 28 ff ff ff    	mov    %edx,-0xd8(%ebp)
404f8f:	89 95 10 ff ff ff    	mov    %edx,-0xf0(%ebp)
404f95:	c7 85 14 ff ff ff 08 	movl   $0x8,-0xec(%ebp)
404f9c:	00 00 00
404f9f:	89 95 18 ff ff ff    	mov    %edx,-0xe8(%ebp)
404fa5:	e8 95 00 00 00       	call   0x40503f
404faa:	8d 45 dc             	lea    -0x24(%ebp),%eax
404fad:	8b ce                	mov    %esi,%ecx
404faf:	50                   	push   %eax
404fb0:	e8 00 03 00 00       	call   0x4052b5
404fb5:	8d 45 bc             	lea    -0x44(%ebp),%eax
404fb8:	8b cf                	mov    %edi,%ecx
404fba:	50                   	push   %eax
404fbb:	e8 7f 00 00 00       	call   0x40503f
404fc0:	8d 45 ac             	lea    -0x54(%ebp),%eax
404fc3:	8b cb                	mov    %ebx,%ecx
404fc5:	50                   	push   %eax
404fc6:	e8 ea 02 00 00       	call   0x4052b5
404fcb:	8b 8d e8 fe ff ff    	mov    -0x118(%ebp),%ecx
404fd1:	8d 45 8c             	lea    -0x74(%ebp),%eax
404fd4:	50                   	push   %eax
404fd5:	e8 db 02 00 00       	call   0x4052b5
404fda:	8b 8d e4 fe ff ff    	mov    -0x11c(%ebp),%ecx
404fe0:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
404fe6:	50                   	push   %eax
404fe7:	e8 53 00 00 00       	call   0x40503f
404fec:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
404ff2:	50                   	push   %eax
404ff3:	8b 8d e0 fe ff ff    	mov    -0x120(%ebp),%ecx
404ff9:	e8 b7 02 00 00       	call   0x4052b5
404ffe:	8b 8d dc fe ff ff    	mov    -0x124(%ebp),%ecx
405004:	8d 85 2c ff ff ff    	lea    -0xd4(%ebp),%eax
40500a:	50                   	push   %eax
40500b:	e8 a5 02 00 00       	call   0x4052b5
405010:	8d 85 ec fe ff ff    	lea    -0x114(%ebp),%eax
405016:	50                   	push   %eax
405017:	6a 11                	push   $0x11
405019:	6a 00                	push   $0x0
40501b:	6a 00                	push   $0x0
40501d:	ff b5 d8 fe ff ff    	push   -0x128(%ebp)
405023:	ff b5 d4 fe ff ff    	push   -0x12c(%ebp)
405029:	e8 c1 02 00 00       	call   0x4052ef
40502e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405031:	5f                   	pop    %edi
405032:	5e                   	pop    %esi
405033:	33 cd                	xor    %ebp,%ecx
405035:	5b                   	pop    %ebx
405036:	e8 a5 e8 00 00       	call   0x4138e0
40503b:	c9                   	leave
40503c:	c2 44 00             	ret    $0x44
40503f:	8b ff                	mov    %edi,%edi
405041:	55                   	push   %ebp
405042:	8b ec                	mov    %esp,%ebp
405044:	8b 11                	mov    (%ecx),%edx
405046:	57                   	push   %edi
405047:	33 ff                	xor    %edi,%edi
405049:	85 d2                	test   %edx,%edx
40504b:	74 1f                	je     0x40506c
40504d:	8b ca                	mov    %edx,%ecx
40504f:	56                   	push   %esi
405050:	8d 71 02             	lea    0x2(%ecx),%esi
405053:	66 8b 01             	mov    (%ecx),%ax
405056:	83 c1 02             	add    $0x2,%ecx
405059:	66 3b c7             	cmp    %di,%ax
40505c:	75 f5                	jne    0x405053
40505e:	2b ce                	sub    %esi,%ecx
405060:	d1 f9                	sar    $1,%ecx
405062:	5e                   	pop    %esi
405063:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40506a:	eb 08                	jmp    0x405074
40506c:	6a 02                	push   $0x2
40506e:	ba e0 3c 40 00       	mov    $0x403ce0,%edx
405073:	59                   	pop    %ecx
405074:	8b 45 08             	mov    0x8(%ebp),%eax
405077:	89 78 04             	mov    %edi,0x4(%eax)
40507a:	89 78 0c             	mov    %edi,0xc(%eax)
40507d:	89 10                	mov    %edx,(%eax)
40507f:	89 48 08             	mov    %ecx,0x8(%eax)
405082:	5f                   	pop    %edi
405083:	5d                   	pop    %ebp
405084:	c2 04 00             	ret    $0x4
405087:	8b ff                	mov    %edi,%edi
405089:	55                   	push   %ebp
40508a:	8b ec                	mov    %esp,%ebp
40508c:	81 ec 60 01 00 00    	sub    $0x160,%esp
405092:	a1 18 51 41 00       	mov    0x415118,%eax
405097:	33 c5                	xor    %ebp,%eax
405099:	89 45 fc             	mov    %eax,-0x4(%ebp)
40509c:	53                   	push   %ebx
40509d:	56                   	push   %esi
40509e:	57                   	push   %edi
40509f:	89 95 a4 fe ff ff    	mov    %edx,-0x15c(%ebp)
4050a5:	89 8d a0 fe ff ff    	mov    %ecx,-0x160(%ebp)
4050ab:	8b 45 18             	mov    0x18(%ebp),%eax
4050ae:	89 85 a8 fe ff ff    	mov    %eax,-0x158(%ebp)
4050b4:	8b 45 20             	mov    0x20(%ebp),%eax
4050b7:	89 85 ac fe ff ff    	mov    %eax,-0x154(%ebp)
4050bd:	8b 45 28             	mov    0x28(%ebp),%eax
4050c0:	89 85 b0 fe ff ff    	mov    %eax,-0x150(%ebp)
4050c6:	8b 45 30             	mov    0x30(%ebp),%eax
4050c9:	89 85 b4 fe ff ff    	mov    %eax,-0x14c(%ebp)
4050cf:	8b 45 38             	mov    0x38(%ebp),%eax
4050d2:	89 85 b8 fe ff ff    	mov    %eax,-0x148(%ebp)
4050d8:	8b 45 50             	mov    0x50(%ebp),%eax
4050db:	89 45 dc             	mov    %eax,-0x24(%ebp)
4050de:	8b 45 4c             	mov    0x4c(%ebp),%eax
4050e1:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
4050e5:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4050e9:	89 45 cc             	mov    %eax,-0x34(%ebp)
4050ec:	8b 45 40             	mov    0x40(%ebp),%eax
4050ef:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
4050f3:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
4050f7:	83 65 a0 00          	andl   $0x0,-0x60(%ebp)
4050fb:	83 65 a8 00          	andl   $0x0,-0x58(%ebp)
4050ff:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
405106:	83 a5 78 ff ff ff 00 	andl   $0x0,-0x88(%ebp)
40510d:	83 a5 50 ff ff ff 00 	andl   $0x0,-0xb0(%ebp)
405114:	83 a5 58 ff ff ff 00 	andl   $0x0,-0xa8(%ebp)
40511b:	83 a5 30 ff ff ff 00 	andl   $0x0,-0xd0(%ebp)
405122:	83 a5 38 ff ff ff 00 	andl   $0x0,-0xc8(%ebp)
405129:	83 a5 10 ff ff ff 00 	andl   $0x0,-0xf0(%ebp)
405130:	83 a5 18 ff ff ff 00 	andl   $0x0,-0xe8(%ebp)
405137:	83 a5 f0 fe ff ff 00 	andl   $0x0,-0x110(%ebp)
40513e:	89 45 9c             	mov    %eax,-0x64(%ebp)
405141:	8b 45 34             	mov    0x34(%ebp),%eax
405144:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
40514a:	8b 45 2c             	mov    0x2c(%ebp),%eax
40514d:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
405153:	8b 45 24             	mov    0x24(%ebp),%eax
405156:	89 85 2c ff ff ff    	mov    %eax,-0xd4(%ebp)
40515c:	8b 45 1c             	mov    0x1c(%ebp),%eax
40515f:	8b 5d 3c             	mov    0x3c(%ebp),%ebx
405162:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
405168:	8b 45 14             	mov    0x14(%ebp),%eax
40516b:	8b 75 48             	mov    0x48(%ebp),%esi
40516e:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
405174:	8b 45 10             	mov    0x10(%ebp),%eax
405177:	8b 7d 44             	mov    0x44(%ebp),%edi
40517a:	6a 04                	push   $0x4
40517c:	8b 00                	mov    (%eax),%eax
40517e:	5a                   	pop    %edx
40517f:	89 85 dc fe ff ff    	mov    %eax,-0x124(%ebp)
405185:	8d 45 ec             	lea    -0x14(%ebp),%eax
405188:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40518b:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40518e:	89 55 a4             	mov    %edx,-0x5c(%ebp)
405191:	89 95 74 ff ff ff    	mov    %edx,-0x8c(%ebp)
405197:	89 95 54 ff ff ff    	mov    %edx,-0xac(%ebp)
40519d:	89 95 34 ff ff ff    	mov    %edx,-0xcc(%ebp)
4051a3:	89 95 14 ff ff ff    	mov    %edx,-0xec(%ebp)
4051a9:	89 95 f4 fe ff ff    	mov    %edx,-0x10c(%ebp)
4051af:	33 d2                	xor    %edx,%edx
4051b1:	8b 4d 54             	mov    0x54(%ebp),%ecx
4051b4:	50                   	push   %eax
4051b5:	89 95 f8 fe ff ff    	mov    %edx,-0x108(%ebp)
4051bb:	89 95 e0 fe ff ff    	mov    %edx,-0x120(%ebp)
4051c1:	c7 85 e4 fe ff ff 08 	movl   $0x8,-0x11c(%ebp)
4051c8:	00 00 00
4051cb:	89 95 e8 fe ff ff    	mov    %edx,-0x118(%ebp)
4051d1:	e8 df 00 00 00       	call   0x4052b5
4051d6:	8d 45 bc             	lea    -0x44(%ebp),%eax
4051d9:	8b ce                	mov    %esi,%ecx
4051db:	50                   	push   %eax
4051dc:	e8 5e fe ff ff       	call   0x40503f
4051e1:	8d 45 ac             	lea    -0x54(%ebp),%eax
4051e4:	8b cf                	mov    %edi,%ecx
4051e6:	50                   	push   %eax
4051e7:	e8 c9 00 00 00       	call   0x4052b5
4051ec:	8d 45 8c             	lea    -0x74(%ebp),%eax
4051ef:	50                   	push   %eax
4051f0:	8b cb                	mov    %ebx,%ecx
4051f2:	e8 48 fe ff ff       	call   0x40503f
4051f7:	8b 8d b8 fe ff ff    	mov    -0x148(%ebp),%ecx
4051fd:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
405203:	50                   	push   %eax
405204:	e8 ac 00 00 00       	call   0x4052b5
405209:	8b 8d b4 fe ff ff    	mov    -0x14c(%ebp),%ecx
40520f:	8d 85 5c ff ff ff    	lea    -0xa4(%ebp),%eax
405215:	50                   	push   %eax
405216:	e8 9a 00 00 00       	call   0x4052b5
40521b:	8b 8d b0 fe ff ff    	mov    -0x150(%ebp),%ecx
405221:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
405227:	50                   	push   %eax
405228:	e8 12 fe ff ff       	call   0x40503f
40522d:	8b 8d ac fe ff ff    	mov    -0x154(%ebp),%ecx
405233:	8d 85 1c ff ff ff    	lea    -0xe4(%ebp),%eax
405239:	50                   	push   %eax
40523a:	e8 76 00 00 00       	call   0x4052b5
40523f:	8b 8d a8 fe ff ff    	mov    -0x158(%ebp),%ecx
405245:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40524b:	50                   	push   %eax
40524c:	e8 64 00 00 00       	call   0x4052b5
405251:	8d 85 bc fe ff ff    	lea    -0x144(%ebp),%eax
405257:	50                   	push   %eax
405258:	6a 14                	push   $0x14
40525a:	6a 00                	push   $0x0
40525c:	6a 00                	push   $0x0
40525e:	ff b5 a4 fe ff ff    	push   -0x15c(%ebp)
405264:	ff b5 a0 fe ff ff    	push   -0x160(%ebp)
40526a:	e8 80 00 00 00       	call   0x4052ef
40526f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405272:	5f                   	pop    %edi
405273:	5e                   	pop    %esi
405274:	33 cd                	xor    %ebp,%ecx
405276:	5b                   	pop    %ebx
405277:	e8 64 e6 00 00       	call   0x4138e0
40527c:	c9                   	leave
40527d:	c2 50 00             	ret    $0x50
405280:	8b ff                	mov    %edi,%edi
405282:	55                   	push   %ebp
405283:	8b ec                	mov    %esp,%ebp
405285:	8b 51 08             	mov    0x8(%ecx),%edx
405288:	8b 41 0c             	mov    0xc(%ecx),%eax
40528b:	23 55 08             	and    0x8(%ebp),%edx
40528e:	23 45 0c             	and    0xc(%ebp),%eax
405291:	0b d0                	or     %eax,%edx
405293:	74 1a                	je     0x4052af
405295:	8b 41 10             	mov    0x10(%ecx),%eax
405298:	8b 51 14             	mov    0x14(%ecx),%edx
40529b:	23 45 08             	and    0x8(%ebp),%eax
40529e:	23 55 0c             	and    0xc(%ebp),%edx
4052a1:	3b 41 10             	cmp    0x10(%ecx),%eax
4052a4:	75 09                	jne    0x4052af
4052a6:	3b 51 14             	cmp    0x14(%ecx),%edx
4052a9:	75 04                	jne    0x4052af
4052ab:	b0 01                	mov    $0x1,%al
4052ad:	eb 02                	jmp    0x4052b1
4052af:	32 c0                	xor    %al,%al
4052b1:	5d                   	pop    %ebp
4052b2:	c2 08 00             	ret    $0x8
4052b5:	8b ff                	mov    %edi,%edi
4052b7:	55                   	push   %ebp
4052b8:	8b ec                	mov    %esp,%ebp
4052ba:	8b 11                	mov    (%ecx),%edx
4052bc:	85 d2                	test   %edx,%edx
4052be:	74 13                	je     0x4052d3
4052c0:	8b ca                	mov    %edx,%ecx
4052c2:	56                   	push   %esi
4052c3:	8d 71 01             	lea    0x1(%ecx),%esi
4052c6:	8a 01                	mov    (%ecx),%al
4052c8:	41                   	inc    %ecx
4052c9:	84 c0                	test   %al,%al
4052cb:	75 f9                	jne    0x4052c6
4052cd:	2b ce                	sub    %esi,%ecx
4052cf:	41                   	inc    %ecx
4052d0:	5e                   	pop    %esi
4052d1:	eb 08                	jmp    0x4052db
4052d3:	33 c9                	xor    %ecx,%ecx
4052d5:	ba 18 25 40 00       	mov    $0x402518,%edx
4052da:	41                   	inc    %ecx
4052db:	8b 45 08             	mov    0x8(%ebp),%eax
4052de:	83 60 04 00          	andl   $0x0,0x4(%eax)
4052e2:	83 60 0c 00          	andl   $0x0,0xc(%eax)
4052e6:	89 10                	mov    %edx,(%eax)
4052e8:	89 48 08             	mov    %ecx,0x8(%eax)
4052eb:	5d                   	pop    %ebp
4052ec:	c2 04 00             	ret    $0x4
4052ef:	8b ff                	mov    %edi,%edi
4052f1:	55                   	push   %ebp
4052f2:	8b ec                	mov    %esp,%ebp
4052f4:	83 ec 14             	sub    $0x14,%esp
4052f7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4052fa:	56                   	push   %esi
4052fb:	8b 75 08             	mov    0x8(%ebp),%esi
4052fe:	0f b6 01             	movzbl (%ecx),%eax
405301:	8d 51 01             	lea    0x1(%ecx),%edx
405304:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
405307:	c1 e0 18             	shl    $0x18,%eax
40530a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40530d:	0f b7 02             	movzwl (%edx),%eax
405310:	89 45 f0             	mov    %eax,-0x10(%ebp)
405313:	8b 42 02             	mov    0x2(%edx),%eax
405316:	89 45 f4             	mov    %eax,-0xc(%ebp)
405319:	8b 42 06             	mov    0x6(%edx),%eax
40531c:	83 c2 0a             	add    $0xa,%edx
40531f:	89 45 f8             	mov    %eax,-0x8(%ebp)
405322:	8b 46 04             	mov    0x4(%esi),%eax
405325:	83 61 04 00          	andl   $0x0,0x4(%ecx)
405329:	89 01                	mov    %eax,(%ecx)
40532b:	8b 46 04             	mov    0x4(%esi),%eax
40532e:	51                   	push   %ecx
40532f:	ff 75 18             	push   0x18(%ebp)
405332:	0f b7 00             	movzwl (%eax),%eax
405335:	83 61 14 00          	andl   $0x0,0x14(%ecx)
405339:	ff 75 14             	push   0x14(%ebp)
40533c:	89 41 08             	mov    %eax,0x8(%ecx)
40533f:	ff 75 10             	push   0x10(%ebp)
405342:	c7 41 0c 02 00 00 00 	movl   $0x2,0xc(%ecx)
405349:	89 51 10             	mov    %edx,0x10(%ecx)
40534c:	0f b7 02             	movzwl (%edx),%eax
40534f:	89 41 18             	mov    %eax,0x18(%ecx)
405352:	b8 13 4a 40 00       	mov    $0x404a13,%eax
405357:	c7 41 1c 01 00 00 00 	movl   $0x1,0x1c(%ecx)
40535e:	2d 20 47 40 00       	sub    $0x404720,%eax
405363:	89 45 fc             	mov    %eax,-0x4(%ebp)