404df0:	8b 4e 14             	mov    0x14(%esi),%ecx
404df3:	8d 95 6c ff ff ff    	lea    -0x94(%ebp),%edx
404df9:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
404dff:	89 bd 6c ff ff ff    	mov    %edi,-0x94(%ebp)
404e05:	e8 c8 e1 ff ff       	call   0x402fd2
404e0a:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
404e10:	8b f0                	mov    %eax,%esi
404e12:	85 db                	test   %ebx,%ebx
404e14:	0f 84 24 01 00 00    	je     0x404f3e
404e1a:	85 f6                	test   %esi,%esi
404e1c:	75 68                	jne    0x404e86
404e1e:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404e24:	3c 01                	cmp    $0x1,%al
404e26:	74 65                	je     0x404e8d
404e28:	76 48                	jbe    0x404e72
404e2a:	3c 03                	cmp    $0x3,%al
404e2c:	76 34                	jbe    0x404e62
404e2e:	3c 05                	cmp    $0x5,%al
404e30:	75 40                	jne    0x404e72
404e32:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
404e38:	c7 85 70 ff ff ff 04 	movl   $0x4,-0x90(%ebp)
404e3f:	00 00 00
404e42:	50                   	push   %eax
404e43:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
404e49:	50                   	push   %eax
404e4a:	57                   	push   %edi
404e4b:	6a 17                	push   $0x17
404e4d:	53                   	push   %ebx
404e4e:	ff 15 c0 f0 40 00    	call   *0x40f0c0
404e54:	8b f0                	mov    %eax,%esi
404e56:	85 f6                	test   %esi,%esi
404e58:	75 25                	jne    0x404e7f
404e5a:	6a 10                	push   $0x10
404e5c:	8d 5d 80             	lea    -0x80(%ebp),%ebx
404e5f:	5e                   	pop    %esi
404e60:	eb 72                	jmp    0x404ed4
404e62:	8b f3                	mov    %ebx,%esi
404e64:	8d 4e 01             	lea    0x1(%esi),%ecx
404e67:	8a 06                	mov    (%esi),%al
404e69:	46                   	inc    %esi
404e6a:	84 c0                	test   %al,%al
404e6c:	75 f9                	jne    0x404e67
404e6e:	2b f1                	sub    %ecx,%esi
404e70:	eb 62                	jmp    0x404ed4
404e72:	68 5a 04 00 00       	push   $0x45a
404e77:	e8 13 db ff ff       	call   0x40298f
404e7c:	59                   	pop    %ecx
404e7d:	8b f7                	mov    %edi,%esi
404e7f:	53                   	push   %ebx
404e80:	ff 15 b0 f0 40 00    	call   *0x40f0b0
404e86:	8b c6                	mov    %esi,%eax
404e88:	e9 bd 00 00 00       	jmp    0x404f4a
404e8d:	6a 04                	push   $0x4
404e8f:	5e                   	pop    %esi
404e90:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
404e96:	89 b5 70 ff ff ff    	mov    %esi,-0x90(%ebp)
404e9c:	50                   	push   %eax
404e9d:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
404ea3:	50                   	push   %eax
404ea4:	57                   	push   %edi
404ea5:	6a 02                	push   $0x2
404ea7:	53                   	push   %ebx
404ea8:	ff 15 c0 f0 40 00    	call   *0x40f0c0
404eae:	8b f8                	mov    %eax,%edi
404eb0:	85 ff                	test   %edi,%edi
404eb2:	74 0e                	je     0x404ec2
404eb4:	53                   	push   %ebx
404eb5:	ff 15 b0 f0 40 00    	call   *0x40f0b0
404ebb:	8b c7                	mov    %edi,%eax
404ebd:	e9 88 00 00 00       	jmp    0x404f4a
404ec2:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
404ec8:	8d 9d 60 ff ff ff    	lea    -0xa0(%ebp),%ebx
404ece:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
404ed4:	6a 0a                	push   $0xa
404ed6:	59                   	pop    %ecx
404ed7:	33 c0                	xor    %eax,%eax
404ed9:	8d bd 38 ff ff ff    	lea    -0xc8(%ebp),%edi
404edf:	f3 ab                	rep stos %eax,%es:(%edi)
404ee1:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404ee7:	88 85 48 ff ff ff    	mov    %al,-0xb8(%ebp)
404eed:	8d 85 38 ff ff ff    	lea    -0xc8(%ebp),%eax
404ef3:	50                   	push   %eax
404ef4:	6a 00                	push   $0x0
404ef6:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
404efc:	c7 85 38 ff ff ff 01 	movl   $0x1,-0xc8(%ebp)
404f03:	00 00 00
404f06:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
404f0c:	89 b5 4c ff ff ff    	mov    %esi,-0xb4(%ebp)
404f12:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
404f18:	ff 15 7c f0 40 00    	call   *0x40f07c
404f1e:	8b f0                	mov    %eax,%esi
404f20:	85 f6                	test   %esi,%esi
404f22:	0f 85 5e ff ff ff    	jne    0x404e86
404f28:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
404f2e:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
404f34:	e8 52 e1 ff ff       	call   0x40308b
404f39:	e9 48 ff ff ff       	jmp    0x404e86
404f3e:	6a 2a                	push   $0x2a
404f40:	5a                   	pop    %edx
404f41:	8b ca                	mov    %edx,%ecx
404f43:	e8 17 db ff ff       	call   0x402a5f
404f48:	33 c0                	xor    %eax,%eax
404f4a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404f4d:	5f                   	pop    %edi
404f4e:	5e                   	pop    %esi
404f4f:	33 cd                	xor    %ebp,%ecx
404f51:	5b                   	pop    %ebx
404f52:	e8 79 3b 00 00       	call   0x408ad0
404f57:	c9                   	leave
404f58:	c3                   	ret
404f59:	8b ff                	mov    %edi,%edi
404f5b:	55                   	push   %ebp
404f5c:	8b ec                	mov    %esp,%ebp
404f5e:	81 ec dc 00 00 00    	sub    $0xdc,%esp
404f64:	a1 04 a0 40 00       	mov    0x40a004,%eax
404f69:	33 c5                	xor    %ebp,%eax
404f6b:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f6e:	53                   	push   %ebx
404f6f:	8b da                	mov    %edx,%ebx
404f71:	56                   	push   %esi
404f72:	57                   	push   %edi
404f73:	83 f9 09             	cmp    $0x9,%ecx
404f76:	74 0f                	je     0x404f87
404f78:	6a 1e                	push   $0x1e
404f7a:	59                   	pop    %ecx
404f7b:	e8 df da ff ff       	call   0x402a5f
404f80:	33 c0                	xor    %eax,%eax
404f82:	e9 42 02 00 00       	jmp    0x4051c9
404f87:	8b 43 08             	mov    0x8(%ebx),%eax
404f8a:	6a 2a                	push   $0x2a
404f8c:	5a                   	pop    %edx
404f8d:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
404f93:	66 39 10             	cmp    %dx,(%eax)
404f96:	75 07                	jne    0x404f9f
404f98:	83 a5 5c ff ff ff 00 	andl   $0x0,-0xa4(%ebp)
404f9f:	8b 4b 0c             	mov    0xc(%ebx),%ecx
404fa2:	66 39 11             	cmp    %dx,(%ecx)
404fa5:	75 09                	jne    0x404fb0
404fa7:	83 8d 60 ff ff ff ff 	orl    $0xffffffff,-0xa0(%ebp)
404fae:	eb 0b                	jmp    0x404fbb
404fb0:	e8 c1 ec ff ff       	call   0x403c76
404fb5:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
404fbb:	8b 4b 10             	mov    0x10(%ebx),%ecx
404fbe:	e8 b3 ec ff ff       	call   0x403c76
404fc3:	8b 4b 14             	mov    0x14(%ebx),%ecx
404fc6:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
404fcc:	e8 a5 ec ff ff       	call   0x403c76
404fd1:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
404fd8:	8d 95 70 ff ff ff    	lea    -0x90(%ebp),%edx
404fde:	51                   	push   %ecx
404fdf:	8b 4b 18             	mov    0x18(%ebx),%ecx
404fe2:	88 85 77 ff ff ff    	mov    %al,-0x89(%ebp)
404fe8:	e8 e5 df ff ff       	call   0x402fd2
404fed:	8b f8                	mov    %eax,%edi
404fef:	85 ff                	test   %edi,%edi
404ff1:	0f 85 d0 01 00 00    	jne    0x4051c7
404ff7:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
404ffd:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
405003:	3c 01                	cmp    $0x1,%al
405005:	74 73                	je     0x40507a
405007:	76 5f                	jbe    0x405068
405009:	3c 03                	cmp    $0x3,%al
40500b:	76 3d                	jbe    0x40504a
40500d:	3c 05                	cmp    $0x5,%al
40500f:	75 57                	jne    0x405068
405011:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
405017:	c7 85 68 ff ff ff 04 	movl   $0x4,-0x98(%ebp)
40501e:	00 00 00
405021:	50                   	push   %eax
405022:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405028:	50                   	push   %eax
405029:	57                   	push   %edi
40502a:	6a 17                	push   $0x17
40502c:	56                   	push   %esi
40502d:	ff 15 c0 f0 40 00    	call   *0x40f0c0
405033:	8b f8                	mov    %eax,%edi
405035:	85 ff                	test   %edi,%edi
405037:	0f 85 83 01 00 00    	jne    0x4051c0
40503d:	8d 55 80             	lea    -0x80(%ebp),%edx
405040:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
405046:	6a 10                	push   $0x10
405048:	eb 77                	jmp    0x4050c1
40504a:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
405050:	8b d6                	mov    %esi,%edx
405052:	8b fa                	mov    %edx,%edi
405054:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
40505a:	8d 4f 01             	lea    0x1(%edi),%ecx
40505d:	8a 07                	mov    (%edi),%al
40505f:	47                   	inc    %edi
405060:	84 c0                	test   %al,%al
405062:	75 f9                	jne    0x40505d
405064:	2b f9                	sub    %ecx,%edi
405066:	eb 5a                	jmp    0x4050c2
405068:	68 5a 04 00 00       	push   $0x45a
40506d:	e8 1d d9 ff ff       	call   0x40298f
405072:	59                   	pop    %ecx
405073:	33 ff                	xor    %edi,%edi
405075:	e9 46 01 00 00       	jmp    0x4051c0
40507a:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
405080:	c7 85 68 ff ff ff 80 	movl   $0x80,-0x98(%ebp)
405087:	00 00 00
40508a:	50                   	push   %eax
40508b:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
405091:	50                   	push   %eax
405092:	6a 00                	push   $0x0
405094:	6a 02                	push   $0x2
405096:	56                   	push   %esi
405097:	ff 15 c0 f0 40 00    	call   *0x40f0c0
40509d:	8b f8                	mov    %eax,%edi
40509f:	85 ff                	test   %edi,%edi
4050a1:	0f 85 19 01 00 00    	jne    0x4051c0
4050a7:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
4050ad:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
4050b3:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
4050b9:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
4050bf:	6a 04                	push   $0x4
4050c1:	5f                   	pop    %edi
4050c2:	8b 43 1c             	mov    0x1c(%ebx),%eax
4050c5:	33 c9                	xor    %ecx,%ecx
4050c7:	6a 2a                	push   $0x2a
4050c9:	5a                   	pop    %edx
4050ca:	89 8d 70 ff ff ff    	mov    %ecx,-0x90(%ebp)
4050d0:	66 39 10             	cmp    %dx,(%eax)
4050d3:	75 04                	jne    0x4050d9
4050d5:	33 d2                	xor    %edx,%edx
4050d7:	eb 40                	jmp    0x405119
4050d9:	51                   	push   %ecx
4050da:	8d 95 70 ff ff ff    	lea    -0x90(%ebp),%edx
4050e0:	8b c8                	mov    %eax,%ecx
4050e2:	e8 eb de ff ff       	call   0x402fd2
4050e7:	8b 95 70 ff ff ff    	mov    -0x90(%ebp),%edx
4050ed:	8b c8                	mov    %eax,%ecx
4050ef:	89 8d 50 ff ff ff    	mov    %ecx,-0xb0(%ebp)
4050f5:	8d 42 01             	lea    0x1(%edx),%eax
4050f8:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
4050fe:	8a 02                	mov    (%edx),%al
405100:	42                   	inc    %edx
405101:	84 c0                	test   %al,%al
405103:	75 f9                	jne    0x4050fe
405105:	2b 95 6c ff ff ff    	sub    -0x94(%ebp),%edx
40510b:	85 c9                	test   %ecx,%ecx
40510d:	0f 85 a7 00 00 00    	jne    0x4051ba
405113:	8b 8d 70 ff ff ff    	mov    -0x90(%ebp),%ecx
405119:	8b 43 20             	mov    0x20(%ebx),%eax
40511c:	6a 2a                	push   $0x2a
40511e:	5b                   	pop    %ebx
40511f:	0f b7 00             	movzwl (%eax),%eax
405122:	66 3b c3             	cmp    %bx,%ax
405125:	74 11                	je     0x405138
405127:	83 f8 74             	cmp    $0x74,%eax
40512a:	74 0c                	je     0x405138
40512c:	c6 85 6c ff ff ff 00 	movb   $0x0,-0x94(%ebp)
405133:	83 f8 54             	cmp    $0x54,%eax
405136:	75 07                	jne    0x40513f
405138:	c6 85 6c ff ff ff 01 	movb   $0x1,-0x94(%ebp)
40513f:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
405145:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40514b:	83 a5 34 ff ff ff 00 	andl   $0x0,-0xcc(%ebp)
405152:	89 85 30 ff ff ff    	mov    %eax,-0xd0(%ebp)
405158:	8a 85 77 ff ff ff    	mov    -0x89(%ebp),%al
40515e:	88 85 38 ff ff ff    	mov    %al,-0xc8(%ebp)
405164:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
40516a:	89 85 40 ff ff ff    	mov    %eax,-0xc0(%ebp)
405170:	8d 85 28 ff ff ff    	lea    -0xd8(%ebp),%eax
405176:	50                   	push   %eax
405177:	ff b5 60 ff ff ff    	push   -0xa0(%ebp)
40517d:	c7 85 28 ff ff ff 01 	movl   $0x1,-0xd8(%ebp)
405184:	00 00 00
405187:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
40518d:	89 bd 3c ff ff ff    	mov    %edi,-0xc4(%ebp)
405193:	89 95 44 ff ff ff    	mov    %edx,-0xbc(%ebp)
405199:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
40519f:	ff 15 34 f0 40 00    	call   *0x40f034
4051a5:	8b f8                	mov    %eax,%edi
4051a7:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
4051ad:	85 c0                	test   %eax,%eax
4051af:	74 0f                	je     0x4051c0
4051b1:	50                   	push   %eax
4051b2:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4051b8:	eb 06                	jmp    0x4051c0
4051ba:	8b bd 50 ff ff ff    	mov    -0xb0(%ebp),%edi
4051c0:	56                   	push   %esi
4051c1:	ff 15 b0 f0 40 00    	call   *0x40f0b0
4051c7:	8b c7                	mov    %edi,%eax
4051c9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4051cc:	5f                   	pop    %edi
4051cd:	5e                   	pop    %esi
4051ce:	33 cd                	xor    %ebp,%ecx
4051d0:	5b                   	pop    %ebx
4051d1:	e8 fa 38 00 00       	call   0x408ad0
4051d6:	c9                   	leave
4051d7:	c3                   	ret
4051d8:	8b ff                	mov    %edi,%edi
4051da:	55                   	push   %ebp
4051db:	8b ec                	mov    %esp,%ebp
4051dd:	81 ec b4 00 00 00    	sub    $0xb4,%esp
4051e3:	a1 04 a0 40 00       	mov    0x40a004,%eax
4051e8:	33 c5                	xor    %ebp,%eax
4051ea:	89 45 fc             	mov    %eax,-0x4(%ebp)
4051ed:	53                   	push   %ebx
4051ee:	56                   	push   %esi
4051ef:	57                   	push   %edi
4051f0:	33 db                	xor    %ebx,%ebx
4051f2:	8d 45 a8             	lea    -0x58(%ebp),%eax
4051f5:	6a 40                	push   $0x40
4051f7:	53                   	push   %ebx
4051f8:	50                   	push   %eax
4051f9:	8b fa                	mov    %edx,%edi
4051fb:	88 9d 57 ff ff ff    	mov    %bl,-0xa9(%ebp)
405201:	8b f1                	mov    %ecx,%esi
405203:	e8 dc 3e 00 00       	call   0x4090e4
405208:	83 c4 0c             	add    $0xc,%esp
40520b:	8d 85 68 ff ff ff    	lea    -0x98(%ebp),%eax
405211:	6a 40                	push   $0x40
405213:	53                   	push   %ebx
405214:	50                   	push   %eax
405215:	e8 ca 3e 00 00       	call   0x4090e4
40521a:	83 c4 0c             	add    $0xc,%esp
40521d:	83 fe 03             	cmp    $0x3,%esi
405220:	74 0f                	je     0x405231
405222:	6a 12                	push   $0x12
405224:	59                   	pop    %ecx
405225:	e8 35 d8 ff ff       	call   0x402a5f
40522a:	8b f3                	mov    %ebx,%esi
40522c:	e9 c6 01 00 00       	jmp    0x4053f7
405231:	8b 4f 08             	mov    0x8(%edi),%ecx
405234:	8d 95 58 ff ff ff    	lea    -0xa8(%ebp),%edx
40523a:	e8 55 e8 ff ff       	call   0x403a94
40523f:	84 c0                	test   %al,%al
405241:	0f 84 7f 01 00 00    	je     0x4053c6
405247:	8d 45 e8             	lea    -0x18(%ebp),%eax
40524a:	c7 85 4c ff ff ff 12 	movl   $0x12,-0xb4(%ebp)
405251:	00 00 00
405254:	50                   	push   %eax
405255:	8d 85 4c ff ff ff    	lea    -0xb4(%ebp),%eax
40525b:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
405261:	50                   	push   %eax
405262:	53                   	push   %ebx
405263:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
405269:	50                   	push   %eax
40526a:	8d 85 57 ff ff ff    	lea    -0xa9(%ebp),%eax
405270:	50                   	push   %eax
405271:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
405277:	50                   	push   %eax
405278:	ff 15 70 f0 40 00    	call   *0x40f070
40527e:	8b f0                	mov    %eax,%esi
405280:	83 fe 7a             	cmp    $0x7a,%esi
405283:	0f 85 bc 00 00 00    	jne    0x405345
405289:	ff b5 50 ff ff ff    	push   -0xb0(%ebp)
40528f:	ff 15 a4 f0 40 00    	call   *0x40f0a4