408d93:	e8 e4 b4 ff ff       	call   0x40427c
408d98:	50                   	push   %eax
408d99:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d9c:	50                   	push   %eax
408d9d:	8b 45 08             	mov    0x8(%ebp),%eax
408da0:	50                   	push   %eax
408da1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408da4:	8b d3                	mov    %ebx,%edx
408da6:	4a                   	dec    %edx
408da7:	8b 06                	mov    (%esi),%eax
408da9:	e8 5e fb ff ff       	call   0x40890c
408dae:	8b d3                	mov    %ebx,%edx
408db0:	4a                   	dec    %edx
408db1:	3b c2                	cmp    %edx,%eax
408db3:	7d c9                	jge    0x408d7e
408db5:	8b d6                	mov    %esi,%edx
408db7:	92                   	xchg   %eax,%edx
408db8:	e8 4b b8 ff ff       	call   0x404608
408dbd:	eb 0e                	jmp    0x408dcd
408dbf:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
408dc5:	8b ce                	mov    %esi,%ecx
408dc7:	91                   	xchg   %eax,%ecx
408dc8:	e8 df b2 ff ff       	call   0x4040ac
408dcd:	5e                   	pop    %esi
408dce:	5b                   	pop    %ebx
408dcf:	8b e5                	mov    %ebp,%esp
408dd1:	5d                   	pop    %ebp
408dd2:	c2 04 00             	ret    $0x4
408dd5:	8d 40 00             	lea    0x0(%eax),%eax
408dd8:	56                   	push   %esi
408dd9:	31 f6                	xor    %esi,%esi
408ddb:	aa                   	stos   %al,%es:(%edi)
408ddc:	08 db                	or     %bl,%bl
408dde:	75 04                	jne    0x408de4
408de0:	31 d2                	xor    %edx,%edx
408de2:	eb 0a                	jmp    0x408dee
408de4:	09 d2                	or     %edx,%edx
408de6:	7d 06                	jge    0x408dee
408de8:	b0 2d                	mov    $0x2d,%al
408dea:	f7 da                	neg    %edx
408dec:	eb 06                	jmp    0x408df4
408dee:	08 e4                	or     %ah,%ah
408df0:	74 03                	je     0x408df5
408df2:	88 e0                	mov    %ah,%al
408df4:	aa                   	stos   %al,%es:(%edi)
408df5:	92                   	xchg   %eax,%edx
408df6:	50                   	push   %eax
408df7:	89 e3                	mov    %esp,%ebx
408df9:	31 d2                	xor    %edx,%edx
408dfb:	f7 b6 74 d1 45 00    	divl   0x45d174(%esi)
408e01:	80 c2 30             	add    $0x30,%dl
408e04:	88 13                	mov    %dl,(%ebx)
408e06:	43                   	inc    %ebx
408e07:	49                   	dec    %ecx
408e08:	09 c0                	or     %eax,%eax
408e0a:	75 ed                	jne    0x408df9
408e0c:	09 c9                	or     %ecx,%ecx
408e0e:	7f e9                	jg     0x408df9
408e10:	4b                   	dec    %ebx
408e11:	8a 03                	mov    (%ebx),%al
408e13:	aa                   	stos   %al,%es:(%edi)
408e14:	39 e3                	cmp    %esp,%ebx
408e16:	75 f8                	jne    0x408e10
408e18:	58                   	pop    %eax
408e19:	5e                   	pop    %esi
408e1a:	c3                   	ret
408e1b:	90                   	nop
408e1c:	55                   	push   %ebp
408e1d:	8b ec                	mov    %esp,%ebp
408e1f:	83 c4 d4             	add    $0xffffffd4,%esp
408e22:	57                   	push   %edi
408e23:	56                   	push   %esi
408e24:	53                   	push   %ebx
408e25:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e28:	a0 87 96 46 00       	mov    0x469687,%al
408e2d:	88 45 fb             	mov    %al,-0x5(%ebp)
408e30:	a0 86 96 46 00       	mov    0x469686,%al
408e35:	88 45 fa             	mov    %al,-0x6(%ebp)
408e38:	a1 80 96 46 00       	mov    0x469680,%eax
408e3d:	89 45 f4             	mov    %eax,-0xc(%ebp)
408e40:	a0 84 96 46 00       	mov    0x469684,%al
408e45:	88 45 f3             	mov    %al,-0xd(%ebp)
408e48:	a0 85 96 46 00       	mov    0x469685,%al
408e4d:	88 45 f2             	mov    %al,-0xe(%ebp)
408e50:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
408e57:	b8 13 00 00 00       	mov    $0x13,%eax
408e5c:	80 f9 00             	cmp    $0x0,%cl
408e5f:	75 17                	jne    0x408e78
408e61:	8b 45 0c             	mov    0xc(%ebp),%eax
408e64:	83 f8 02             	cmp    $0x2,%eax
408e67:	7d 05                	jge    0x408e6e
408e69:	b8 02 00 00 00       	mov    $0x2,%eax
408e6e:	83 f8 12             	cmp    $0x12,%eax
408e71:	7e 05                	jle    0x408e78
408e73:	b8 12 00 00 00       	mov    $0x12,%eax
408e78:	89 45 0c             	mov    %eax,0xc(%ebp)
408e7b:	50                   	push   %eax
408e7c:	b8 0f 27 00 00       	mov    $0x270f,%eax
408e81:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
408e85:	72 03                	jb     0x408e8a
408e87:	8b 45 08             	mov    0x8(%ebp),%eax
408e8a:	50                   	push   %eax
408e8b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408e8e:	e8 5d 02 00 00       	call   0x4090f0
408e93:	8b 7d fc             	mov    -0x4(%ebp),%edi
408e96:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
408e9a:	2d ff 7f 00 00       	sub    $0x7fff,%eax
408e9f:	83 f8 02             	cmp    $0x2,%eax
408ea2:	73 1a                	jae    0x408ebe
408ea4:	89 c1                	mov    %eax,%ecx
408ea6:	e8 70 00 00 00       	call   0x408f1b
408eab:	8d b4 49 0c 8f 40 00 	lea    0x408f0c(%ecx,%ecx,2),%esi
408eb2:	03 75 ec             	add    -0x14(%ebp),%esi
408eb5:	b9 03 00 00 00       	mov    $0x3,%ecx
408eba:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
408ebc:	eb 2d                	jmp    0x408eeb
408ebe:	8d 75 d7             	lea    -0x29(%ebp),%esi
408ec1:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
408ec5:	80 fb 01             	cmp    $0x1,%bl
408ec8:	74 10                	je     0x408eda
408eca:	80 fb 04             	cmp    $0x4,%bl
408ecd:	77 09                	ja     0x408ed8
408ecf:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
408ed3:	3b 45 0c             	cmp    0xc(%ebp),%eax
408ed6:	7e 02                	jle    0x408eda
408ed8:	b3 00                	mov    $0x0,%bl
408eda:	8d 1c 9d f8 8e 40 00 	lea    0x408ef8(,%ebx,4),%ebx
408ee1:	03 5d ec             	add    -0x14(%ebp),%ebx
408ee4:	8b 1b                	mov    (%ebx),%ebx
408ee6:	03 5d ec             	add    -0x14(%ebp),%ebx
408ee9:	ff d3                	call   *%ebx
408eeb:	89 f8                	mov    %edi,%eax
408eed:	2b 45 fc             	sub    -0x4(%ebp),%eax
408ef0:	5b                   	pop    %ebx
408ef1:	5e                   	pop    %esi
408ef2:	5f                   	pop    %edi
408ef3:	e9 f1 01 00 00       	jmp    0x4090e9
408ef8:	25 8f 40 00 81       	and    $0x8100408f,%eax
408efd:	8f 40 00             	pop    0x0(%eax)
408f00:	b8 8f 40 00 b8       	mov    $0xb800408f,%eax
408f05:	8f 40 00             	pop    0x0(%eax)
408f08:	22 90 40 00 49 4e    	and    0x4e490040(%eax),%dl
408f0e:	46                   	inc    %esi
408f0f:	4e                   	dec    %esi
408f10:	41                   	inc    %ecx
408f11:	4e                   	dec    %esi
408f12:	ac                   	lods   %ds:(%esi),%al
408f13:	08 c0                	or     %al,%al
408f15:	75 03                	jne    0x408f1a
408f17:	b0 30                	mov    $0x30,%al
408f19:	4e                   	dec    %esi
408f1a:	c3                   	ret
408f1b:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
408f1f:	74 03                	je     0x408f24
408f21:	b0 2d                	mov    $0x2d,%al
408f23:	aa                   	stos   %al,%es:(%edi)
408f24:	c3                   	ret
408f25:	e8 f1 ff ff ff       	call   0x408f1b
408f2a:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
408f2e:	31 d2                	xor    %edx,%edx
408f30:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
408f33:	7f 1d                	jg     0x408f52
408f35:	83 f9 fd             	cmp    $0xfffffffd,%ecx
408f38:	7c 18                	jl     0x408f52
408f3a:	09 c9                	or     %ecx,%ecx
408f3c:	7f 1a                	jg     0x408f58
408f3e:	b0 30                	mov    $0x30,%al
408f40:	aa                   	stos   %al,%es:(%edi)
408f41:	80 3e 00             	cmpb   $0x0,(%esi)
408f44:	74 3a                	je     0x408f80
408f46:	8a 45 fb             	mov    -0x5(%ebp),%al
408f49:	aa                   	stos   %al,%es:(%edi)
408f4a:	f7 d9                	neg    %ecx
408f4c:	b0 30                	mov    $0x30,%al
408f4e:	f3 aa                	rep stos %al,%es:(%edi)
408f50:	eb 1a                	jmp    0x408f6c
408f52:	b9 01 00 00 00       	mov    $0x1,%ecx
408f57:	42                   	inc    %edx
408f58:	ac                   	lods   %ds:(%esi),%al
408f59:	08 c0                	or     %al,%al
408f5b:	74 17                	je     0x408f74
408f5d:	aa                   	stos   %al,%es:(%edi)
408f5e:	e2 f8                	loop   0x408f58
408f60:	ac                   	lods   %ds:(%esi),%al
408f61:	08 c0                	or     %al,%al
408f63:	74 13                	je     0x408f78
408f65:	88 c4                	mov    %al,%ah
408f67:	8a 45 fb             	mov    -0x5(%ebp),%al
408f6a:	66 ab                	stos   %ax,%es:(%edi)
408f6c:	ac                   	lods   %ds:(%esi),%al
408f6d:	08 c0                	or     %al,%al
408f6f:	74 07                	je     0x408f78
408f71:	aa                   	stos   %al,%es:(%edi)
408f72:	eb f8                	jmp    0x408f6c
408f74:	b0 30                	mov    $0x30,%al
408f76:	f3 aa                	rep stos %al,%es:(%edi)
408f78:	09 d2                	or     %edx,%edx
408f7a:	74 04                	je     0x408f80
408f7c:	31 c0                	xor    %eax,%eax
408f7e:	eb 1e                	jmp    0x408f9e
408f80:	c3                   	ret
408f81:	e8 95 ff ff ff       	call   0x408f1b
408f86:	e8 87 ff ff ff       	call   0x408f12
408f8b:	8a 65 fb             	mov    -0x5(%ebp),%ah
408f8e:	66 ab                	stos   %ax,%es:(%edi)
408f90:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408f93:	49                   	dec    %ecx
408f94:	e8 79 ff ff ff       	call   0x408f12
408f99:	aa                   	stos   %al,%es:(%edi)
408f9a:	e2 f8                	loop   0x408f94
408f9c:	b4 2b                	mov    $0x2b,%ah
408f9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
408fa1:	83 f9 04             	cmp    $0x4,%ecx
408fa4:	76 02                	jbe    0x408fa8
408fa6:	31 c9                	xor    %ecx,%ecx
408fa8:	b0 45                	mov    $0x45,%al
408faa:	8a 5d d7             	mov    -0x29(%ebp),%bl
408fad:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
408fb1:	4a                   	dec    %edx
408fb2:	e8 21 fe ff ff       	call   0x408dd8
408fb7:	c3                   	ret
408fb8:	e8 5e ff ff ff       	call   0x408f1b
408fbd:	8b 55 08             	mov    0x8(%ebp),%edx
408fc0:	83 fa 12             	cmp    $0x12,%edx
408fc3:	72 05                	jb     0x408fca
408fc5:	ba 12 00 00 00       	mov    $0x12,%edx
408fca:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
408fce:	09 c9                	or     %ecx,%ecx
408fd0:	7f 05                	jg     0x408fd7
408fd2:	b0 30                	mov    $0x30,%al
408fd4:	aa                   	stos   %al,%es:(%edi)
408fd5:	eb 2a                	jmp    0x409001
408fd7:	31 db                	xor    %ebx,%ebx
408fd9:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
408fdd:	74 0a                	je     0x408fe9
408fdf:	89 c8                	mov    %ecx,%eax
408fe1:	48                   	dec    %eax
408fe2:	b3 03                	mov    $0x3,%bl
408fe4:	f6 f3                	div    %bl
408fe6:	88 e3                	mov    %ah,%bl
408fe8:	43                   	inc    %ebx
408fe9:	e8 24 ff ff ff       	call   0x408f12
408fee:	aa                   	stos   %al,%es:(%edi)
408fef:	49                   	dec    %ecx
408ff0:	74 0f                	je     0x409001
408ff2:	4b                   	dec    %ebx
408ff3:	75 f4                	jne    0x408fe9
408ff5:	8a 45 fa             	mov    -0x6(%ebp),%al
408ff8:	84 c0                	test   %al,%al
408ffa:	74 ed                	je     0x408fe9
408ffc:	aa                   	stos   %al,%es:(%edi)
408ffd:	b3 03                	mov    $0x3,%bl
408fff:	eb e8                	jmp    0x408fe9
409001:	09 d2                	or     %edx,%edx
409003:	74 1c                	je     0x409021
409005:	8a 45 fb             	mov    -0x5(%ebp),%al
409008:	84 c0                	test   %al,%al
40900a:	74 01                	je     0x40900d
40900c:	aa                   	stos   %al,%es:(%edi)
40900d:	e3 09                	jecxz  0x409018
40900f:	b0 30                	mov    $0x30,%al
409011:	aa                   	stos   %al,%es:(%edi)
409012:	4a                   	dec    %edx
409013:	74 0c                	je     0x409021
409015:	41                   	inc    %ecx
409016:	75 f9                	jne    0x409011
409018:	e8 f5 fe ff ff       	call   0x408f12
40901d:	aa                   	stos   %al,%es:(%edi)
40901e:	4a                   	dec    %edx
40901f:	75 f7                	jne    0x409018
409021:	c3                   	ret
409022:	31 db                	xor    %ebx,%ebx
409024:	8a 5d f3             	mov    -0xd(%ebp),%bl
409027:	b9 03 00 00 00       	mov    $0x3,%ecx
40902c:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409030:	74 08                	je     0x40903a
409032:	8a 5d f2             	mov    -0xe(%ebp),%bl
409035:	b9 0f 04 00 00       	mov    $0x40f,%ecx
40903a:	38 cb                	cmp    %cl,%bl
40903c:	76 02                	jbe    0x409040
40903e:	88 cb                	mov    %cl,%bl
409040:	00 eb                	add    %ch,%bl
409042:	8d 9c 9b 85 90 40 00 	lea    0x409085(%ebx,%ebx,4),%ebx
409049:	03 5d ec             	add    -0x14(%ebp),%ebx
40904c:	b9 05 00 00 00       	mov    $0x5,%ecx
409051:	8a 03                	mov    (%ebx),%al
409053:	3c 40                	cmp    $0x40,%al
409055:	74 1e                	je     0x409075
409057:	51                   	push   %ecx
409058:	53                   	push   %ebx
409059:	3c 24                	cmp    $0x24,%al
40905b:	74 07                	je     0x409064
40905d:	3c 2a                	cmp    $0x2a,%al
40905f:	74 0a                	je     0x40906b
409061:	aa                   	stos   %al,%es:(%edi)
409062:	eb 0c                	jmp    0x409070
409064:	e8 0d 00 00 00       	call   0x409076
409069:	eb 05                	jmp    0x409070
40906b:	e8 4d ff ff ff       	call   0x408fbd
409070:	5b                   	pop    %ebx
409071:	59                   	pop    %ecx
409072:	43                   	inc    %ebx
409073:	e2 dc                	loop   0x409051
409075:	c3                   	ret
409076:	56                   	push   %esi
409077:	8b 75 f4             	mov    -0xc(%ebp),%esi
40907a:	85 f6                	test   %esi,%esi
40907c:	74 05                	je     0x409083
40907e:	8b 4e fc             	mov    -0x4(%esi),%ecx
409081:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409083:	5e                   	pop    %esi
409084:	c3                   	ret
409085:	24 2a                	and    $0x2a,%al
409087:	40                   	inc    %eax
409088:	40                   	inc    %eax
409089:	40                   	inc    %eax
40908a:	2a 24 40             	sub    (%eax,%eax,2),%ah
40908d:	40                   	inc    %eax
40908e:	40                   	inc    %eax
40908f:	24 20                	and    $0x20,%al
409091:	2a 40 40             	sub    0x40(%eax),%al
409094:	2a 20                	sub    (%eax),%ah
409096:	24 40                	and    $0x40,%al
409098:	40                   	inc    %eax
409099:	28 24 2a             	sub    %ah,(%edx,%ebp,1)
40909c:	29 40 2d             	sub    %eax,0x2d(%eax)
40909f:	24 2a                	and    $0x2a,%al
4090a1:	40                   	inc    %eax
4090a2:	40                   	inc    %eax
4090a3:	24 2d                	and    $0x2d,%al
4090a5:	2a 40 40             	sub    0x40(%eax),%al
4090a8:	24 2a                	and    $0x2a,%al
4090aa:	2d 40 40 28 2a       	sub    $0x2a284040,%eax
4090af:	24 29                	and    $0x29,%al
4090b1:	40                   	inc    %eax
4090b2:	2d 2a 24 40 40       	sub    $0x4040242a,%eax
4090b7:	2a 2d 24 40 40 2a    	sub    0x2a404024,%ch
4090bd:	24 2d                	and    $0x2d,%al
4090bf:	40                   	inc    %eax
4090c0:	40                   	inc    %eax
4090c1:	2d 2a 20 24 40       	sub    $0x4024202a,%eax
4090c6:	2d 24 20 2a 40       	sub    $0x402a2024,%eax
4090cb:	2a 20                	sub    (%eax),%ah
4090cd:	24 2d                	and    $0x2d,%al
4090cf:	40                   	inc    %eax
4090d0:	24 20                	and    $0x20,%al
4090d2:	2a 2d 40 24 20 2d    	sub    0x2d202440,%ch
4090d8:	2a 40 2a             	sub    0x2a(%eax),%al
4090db:	2d 20 24 40 28       	sub    $0x28402420,%eax
4090e0:	24 20                	and    $0x20,%al