405e41:	0f 84 66 ff ff ff    	je     0x405dad
405e47:	48                   	dec    %eax
405e48:	83 e8 01             	sub    $0x1,%eax
405e4b:	74 d0                	je     0x405e1d
405e4d:	83 e8 03             	sub    $0x3,%eax
405e50:	0f 85 66 ff ff ff    	jne    0x405dbc
405e56:	53                   	push   %ebx
405e57:	e9 69 ff ff ff       	jmp    0x405dc5
405e5c:	38 5e 30             	cmp    %bl,0x30(%esi)
405e5f:	0f 85 40 01 00 00    	jne    0x405fa5
405e65:	8b 56 20             	mov    0x20(%esi),%edx
405e68:	33 c9                	xor    %ecx,%ecx
405e6a:	57                   	push   %edi
405e6b:	8b c2                	mov    %edx,%eax
405e6d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
405e70:	c1 e8 04             	shr    $0x4,%eax
405e73:	41                   	inc    %ecx
405e74:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
405e78:	6a 20                	push   $0x20
405e7a:	5f                   	pop    %edi
405e7b:	84 c1                	test   %al,%cl
405e7d:	74 28                	je     0x405ea7
405e7f:	8b c2                	mov    %edx,%eax
405e81:	c1 e8 06             	shr    $0x6,%eax
405e84:	84 c1                	test   %al,%cl
405e86:	74 09                	je     0x405e91
405e88:	6a 2d                	push   $0x2d
405e8a:	58                   	pop    %eax
405e8b:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
405e8f:	eb 14                	jmp    0x405ea5
405e91:	84 d1                	test   %dl,%cl
405e93:	74 04                	je     0x405e99
405e95:	6a 2b                	push   $0x2b
405e97:	eb f1                	jmp    0x405e8a
405e99:	8b c2                	mov    %edx,%eax
405e9b:	d1 e8                	shr    $1,%eax
405e9d:	84 c1                	test   %al,%cl
405e9f:	74 06                	je     0x405ea7
405ea1:	66 89 7d f4          	mov    %di,-0xc(%ebp)
405ea5:	8b d9                	mov    %ecx,%ebx
405ea7:	0f b7 4e 32          	movzwl 0x32(%esi),%ecx
405eab:	83 f9 78             	cmp    $0x78,%ecx
405eae:	74 08                	je     0x405eb8
405eb0:	6a 58                	push   $0x58
405eb2:	58                   	pop    %eax
405eb3:	66 3b c8             	cmp    %ax,%cx
405eb6:	75 0d                	jne    0x405ec5
405eb8:	8b c2                	mov    %edx,%eax
405eba:	c1 e8 05             	shr    $0x5,%eax
405ebd:	a8 01                	test   $0x1,%al
405ebf:	74 04                	je     0x405ec5
405ec1:	b4 01                	mov    $0x1,%ah
405ec3:	eb 02                	jmp    0x405ec7
405ec5:	32 e4                	xor    %ah,%ah
405ec7:	83 f9 61             	cmp    $0x61,%ecx
405eca:	74 0c                	je     0x405ed8
405ecc:	6a 41                	push   $0x41
405ece:	5f                   	pop    %edi
405ecf:	66 3b cf             	cmp    %di,%cx
405ed2:	74 04                	je     0x405ed8
405ed4:	32 c0                	xor    %al,%al
405ed6:	eb 02                	jmp    0x405eda
405ed8:	b0 01                	mov    $0x1,%al
405eda:	6a 30                	push   $0x30
405edc:	5f                   	pop    %edi
405edd:	84 e4                	test   %ah,%ah
405edf:	75 04                	jne    0x405ee5
405ee1:	84 c0                	test   %al,%al
405ee3:	74 30                	je     0x405f15
405ee5:	6a 58                	push   $0x58
405ee7:	58                   	pop    %eax
405ee8:	66 89 7c 5d f4       	mov    %di,-0xc(%ebp,%ebx,2)
405eed:	66 3b c8             	cmp    %ax,%cx
405ef0:	74 0c                	je     0x405efe
405ef2:	6a 41                	push   $0x41
405ef4:	58                   	pop    %eax
405ef5:	66 3b c8             	cmp    %ax,%cx
405ef8:	74 04                	je     0x405efe
405efa:	32 c0                	xor    %al,%al
405efc:	eb 02                	jmp    0x405f00
405efe:	b0 01                	mov    $0x1,%al
405f00:	84 c0                	test   %al,%al
405f02:	0f 94 c0             	sete   %al
405f05:	fe c8                	dec    %al
405f07:	24 e0                	and    $0xe0,%al
405f09:	04 78                	add    $0x78,%al
405f0b:	66 98                	cbtw
405f0d:	66 89 44 5d f6       	mov    %ax,-0xa(%ebp,%ebx,2)
405f12:	83 c3 02             	add    $0x2,%ebx
405f15:	8b 7e 24             	mov    0x24(%esi),%edi
405f18:	2b 7e 38             	sub    0x38(%esi),%edi
405f1b:	2b fb                	sub    %ebx,%edi
405f1d:	f6 c2 0c             	test   $0xc,%dl
405f20:	75 16                	jne    0x405f38
405f22:	8d 46 18             	lea    0x18(%esi),%eax
405f25:	50                   	push   %eax
405f26:	57                   	push   %edi
405f27:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
405f2d:	6a 20                	push   $0x20
405f2f:	50                   	push   %eax
405f30:	e8 8e f6 ff ff       	call   0x4055c3
405f35:	83 c4 10             	add    $0x10,%esp
405f38:	ff 76 0c             	push   0xc(%esi)
405f3b:	8d 46 18             	lea    0x18(%esi),%eax
405f3e:	50                   	push   %eax
405f3f:	53                   	push   %ebx
405f40:	8d 45 f4             	lea    -0xc(%ebp),%eax
405f43:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
405f49:	50                   	push   %eax
405f4a:	e8 f8 06 00 00       	call   0x406647
405f4f:	8b 4e 20             	mov    0x20(%esi),%ecx
405f52:	8d 5e 18             	lea    0x18(%esi),%ebx
405f55:	8b c1                	mov    %ecx,%eax
405f57:	c1 e8 03             	shr    $0x3,%eax
405f5a:	a8 01                	test   $0x1,%al
405f5c:	74 1b                	je     0x405f79
405f5e:	c1 e9 02             	shr    $0x2,%ecx
405f61:	f6 c1 01             	test   $0x1,%cl
405f64:	75 13                	jne    0x405f79
405f66:	53                   	push   %ebx
405f67:	57                   	push   %edi
405f68:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
405f6e:	6a 30                	push   $0x30
405f70:	50                   	push   %eax
405f71:	e8 4d f6 ff ff       	call   0x4055c3
405f76:	83 c4 10             	add    $0x10,%esp
405f79:	6a 00                	push   $0x0
405f7b:	8b ce                	mov    %esi,%ecx
405f7d:	e8 3a 06 00 00       	call   0x4065bc
405f82:	83 3b 00             	cmpl   $0x0,(%ebx)
405f85:	7c 1d                	jl     0x405fa4
405f87:	8b 46 20             	mov    0x20(%esi),%eax
405f8a:	c1 e8 02             	shr    $0x2,%eax
405f8d:	a8 01                	test   $0x1,%al
405f8f:	74 13                	je     0x405fa4
405f91:	53                   	push   %ebx
405f92:	57                   	push   %edi
405f93:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
405f99:	6a 20                	push   $0x20
405f9b:	50                   	push   %eax
405f9c:	e8 22 f6 ff ff       	call   0x4055c3
405fa1:	83 c4 10             	add    $0x10,%esp
405fa4:	5f                   	pop    %edi
405fa5:	b0 01                	mov    $0x1,%al
405fa7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405faa:	5e                   	pop    %esi
405fab:	33 cd                	xor    %ebp,%ecx
405fad:	5b                   	pop    %ebx
405fae:	e8 a3 cf ff ff       	call   0x402f56
405fb3:	8b e5                	mov    %ebp,%esp
405fb5:	5d                   	pop    %ebp
405fb6:	c3                   	ret
405fb7:	66 83 79 32 2a       	cmpw   $0x2a,0x32(%ecx)
405fbc:	74 0a                	je     0x405fc8
405fbe:	8d 41 24             	lea    0x24(%ecx),%eax
405fc1:	50                   	push   %eax
405fc2:	e8 c9 f8 ff ff       	call   0x405890
405fc7:	c3                   	ret
405fc8:	83 41 14 04          	addl   $0x4,0x14(%ecx)
405fcc:	8b 41 14             	mov    0x14(%ecx),%eax
405fcf:	8b 40 fc             	mov    -0x4(%eax),%eax
405fd2:	89 41 24             	mov    %eax,0x24(%ecx)
405fd5:	85 c0                	test   %eax,%eax
405fd7:	79 07                	jns    0x405fe0
405fd9:	83 49 20 04          	orl    $0x4,0x20(%ecx)
405fdd:	f7 59 24             	negl   0x24(%ecx)
405fe0:	b0 01                	mov    $0x1,%al
405fe2:	c3                   	ret
405fe3:	8b ff                	mov    %edi,%edi
405fe5:	55                   	push   %ebp
405fe6:	8b ec                	mov    %esp,%ebp
405fe8:	8b 45 08             	mov    0x8(%ebp),%eax
405feb:	83 f8 0b             	cmp    $0xb,%eax
405fee:	77 19                	ja     0x406009
405ff0:	ff 24 85 0f 60 40 00 	jmp    *0x40600f(,%eax,4)
405ff7:	6a 04                	push   $0x4
405ff9:	58                   	pop    %eax
405ffa:	5d                   	pop    %ebp
405ffb:	c3                   	ret
405ffc:	33 c0                	xor    %eax,%eax
405ffe:	40                   	inc    %eax
405fff:	5d                   	pop    %ebp
406000:	c3                   	ret
406001:	6a 02                	push   $0x2
406003:	eb f4                	jmp    0x405ff9
406005:	6a 08                	push   $0x8
406007:	eb f0                	jmp    0x405ff9
406009:	33 c0                	xor    %eax,%eax
40600b:	5d                   	pop    %ebp
40600c:	c3                   	ret
40600d:	8b ff                	mov    %edi,%edi
40600f:	f7 5f 40             	negl   0x40(%edi)
406012:	00 fc                	add    %bh,%ah
406014:	5f                   	pop    %edi
406015:	40                   	inc    %eax
406016:	00 01                	add    %al,(%ecx)
406018:	60                   	pusha
406019:	40                   	inc    %eax
40601a:	00 f7                	add    %dh,%bh
40601c:	5f                   	pop    %edi
40601d:	40                   	inc    %eax
40601e:	00 05 60 40 00 05    	add    %al,0x5004060
406024:	60                   	pusha
406025:	40                   	inc    %eax
406026:	00 f7                	add    %dh,%bh
406028:	5f                   	pop    %edi
406029:	40                   	inc    %eax
40602a:	00 f7                	add    %dh,%bh
40602c:	5f                   	pop    %edi
40602d:	40                   	inc    %eax
40602e:	00 09                	add    %cl,(%ecx)
406030:	60                   	pusha
406031:	40                   	inc    %eax
406032:	00 f7                	add    %dh,%bh
406034:	5f                   	pop    %edi
406035:	40                   	inc    %eax
406036:	00 f7                	add    %dh,%bh
406038:	5f                   	pop    %edi
406039:	40                   	inc    %eax
40603a:	00 05 60 40 00 8b    	add    %al,0x8b004060
406040:	ff 53 56             	call   *0x56(%ebx)
406043:	8b f1                	mov    %ecx,%esi
406045:	57                   	push   %edi
406046:	83 46 14 04          	addl   $0x4,0x14(%esi)
40604a:	8b 46 14             	mov    0x14(%esi),%eax
40604d:	8b 78 fc             	mov    -0x4(%eax),%edi
406050:	85 ff                	test   %edi,%edi
406052:	74 36                	je     0x40608a
406054:	8b 5f 04             	mov    0x4(%edi),%ebx
406057:	85 db                	test   %ebx,%ebx
406059:	74 2f                	je     0x40608a
40605b:	ff 76 2c             	push   0x2c(%esi)
40605e:	0f b7 46 32          	movzwl 0x32(%esi),%eax
406062:	50                   	push   %eax
406063:	ff 76 04             	push   0x4(%esi)
406066:	ff 36                	push   (%esi)
406068:	e8 ec f3 ff ff       	call   0x405459
40606d:	83 c4 10             	add    $0x10,%esp
406070:	89 5e 34             	mov    %ebx,0x34(%esi)
406073:	84 c0                	test   %al,%al
406075:	0f b7 07             	movzwl (%edi),%eax
406078:	74 0b                	je     0x406085
40607a:	d1 e8                	shr    $1,%eax
40607c:	89 46 38             	mov    %eax,0x38(%esi)
40607f:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
406083:	eb 17                	jmp    0x40609c
406085:	89 46 38             	mov    %eax,0x38(%esi)
406088:	eb 0e                	jmp    0x406098
40608a:	c7 46 34 e4 bc 41 00 	movl   $0x41bce4,0x34(%esi)
406091:	c7 46 38 06 00 00 00 	movl   $0x6,0x38(%esi)
406098:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40609c:	5f                   	pop    %edi
40609d:	5e                   	pop    %esi
40609e:	b0 01                	mov    $0x1,%al
4060a0:	5b                   	pop    %ebx
4060a1:	c3                   	ret
4060a2:	8b ff                	mov    %edi,%edi
4060a4:	55                   	push   %ebp
4060a5:	8b ec                	mov    %esp,%ebp
4060a7:	51                   	push   %ecx
4060a8:	51                   	push   %ecx
4060a9:	56                   	push   %esi
4060aa:	57                   	push   %edi
4060ab:	8b f1                	mov    %ecx,%esi
4060ad:	6a 67                	push   $0x67
4060af:	59                   	pop    %ecx
4060b0:	6a 47                	push   $0x47
4060b2:	83 4e 20 10          	orl    $0x10,0x20(%esi)
4060b6:	8b 46 28             	mov    0x28(%esi),%eax
4060b9:	5a                   	pop    %edx
4060ba:	85 c0                	test   %eax,%eax
4060bc:	79 20                	jns    0x4060de
4060be:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4060c2:	83 f8 61             	cmp    $0x61,%eax
4060c5:	74 0e                	je     0x4060d5
4060c7:	83 f8 41             	cmp    $0x41,%eax
4060ca:	74 09                	je     0x4060d5
4060cc:	c7 46 28 06 00 00 00 	movl   $0x6,0x28(%esi)
4060d3:	eb 20                	jmp    0x4060f5
4060d5:	c7 46 28 0d 00 00 00 	movl   $0xd,0x28(%esi)
4060dc:	eb 17                	jmp    0x4060f5
4060de:	75 15                	jne    0x4060f5
4060e0:	0f b7 46 32          	movzwl 0x32(%esi),%eax
4060e4:	66 3b c1             	cmp    %cx,%ax
4060e7:	74 05                	je     0x4060ee
4060e9:	66 3b c2             	cmp    %dx,%ax
4060ec:	75 07                	jne    0x4060f5
4060ee:	c7 46 28 01 00 00 00 	movl   $0x1,0x28(%esi)
4060f5:	8b 46 28             	mov    0x28(%esi),%eax
4060f8:	8d 7e 40             	lea    0x40(%esi),%edi
4060fb:	53                   	push   %ebx
4060fc:	bb 5d 01 00 00       	mov    $0x15d,%ebx
406101:	8b cf                	mov    %edi,%ecx
406103:	03 c3                	add    %ebx,%eax
406105:	50                   	push   %eax
406106:	e8 c8 f2 ff ff       	call   0x4053d3
40610b:	84 c0                	test   %al,%al
40610d:	75 0c                	jne    0x40611b
40610f:	8b cf                	mov    %edi,%ecx
406111:	e8 a5 f2 ff ff       	call   0x4053bb
406116:	2b c3                	sub    %ebx,%eax
406118:	89 46 28             	mov    %eax,0x28(%esi)
40611b:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
406121:	85 c0                	test   %eax,%eax
406123:	75 02                	jne    0x406127
406125:	8b c7                	mov    %edi,%eax
406127:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40612b:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40612f:	89 46 34             	mov    %eax,0x34(%esi)
406132:	83 46 14 08          	addl   $0x8,0x14(%esi)
406136:	8b 4e 14             	mov    0x14(%esi),%ecx
406139:	8b 41 f8             	mov    -0x8(%ecx),%eax
40613c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40613f:	8b 41 fc             	mov    -0x4(%ecx),%eax
406142:	8b cf                	mov    %edi,%ecx
406144:	89 45 fc             	mov    %eax,-0x4(%ebp)
406147:	e8 6f f2 ff ff       	call   0x4053bb
40614c:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
406152:	8b c8                	mov    %eax,%ecx
406154:	85 db                	test   %ebx,%ebx
406156:	75 02                	jne    0x40615a
406158:	8b df                	mov    %edi,%ebx
40615a:	ff 76 08             	push   0x8(%esi)
40615d:	0f be 46 32          	movsbl 0x32(%esi),%eax
406161:	ff 76 04             	push   0x4(%esi)
406164:	ff 36                	push   (%esi)
406166:	ff 76 28             	push   0x28(%esi)
406169:	50                   	push   %eax
40616a:	51                   	push   %ecx
40616b:	8b cf                	mov    %edi,%ecx
40616d:	e8 36 f3 ff ff       	call   0x4054a8
406172:	50                   	push   %eax
406173:	8b cf                	mov    %edi,%ecx
406175:	e8 41 f2 ff ff       	call   0x4053bb
40617a:	50                   	push   %eax
40617b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40617e:	53                   	push   %ebx
40617f:	50                   	push   %eax
406180:	e8 11 53 00 00       	call   0x40b496
406185:	8b 46 20             	mov    0x20(%esi),%eax
406188:	83 c4 28             	add    $0x28,%esp
40618b:	c1 e8 05             	shr    $0x5,%eax
40618e:	5b                   	pop    %ebx
40618f:	a8 01                	test   $0x1,%al
406191:	74 13                	je     0x4061a6
406193:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
406197:	75 0d                	jne    0x4061a6
406199:	ff 76 08             	push   0x8(%esi)
40619c:	ff 76 34             	push   0x34(%esi)
40619f:	e8 90 f6 ff ff       	call   0x405834