408c4c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408c4f:	e8 44 b3 ff ff       	call   0x403f98
408c54:	58                   	pop    %eax
408c55:	5b                   	pop    %ebx
408c56:	c3                   	ret
408c57:	e8 eb ff ff ff       	call   0x408c47
408c5c:	5f                   	pop    %edi
408c5d:	5e                   	pop    %esi
408c5e:	5b                   	pop    %ebx
408c5f:	5b                   	pop    %ebx
408c60:	8b e5                	mov    %ebp,%esp
408c62:	5d                   	pop    %ebp
408c63:	c2 0c 00             	ret    $0xc
408c66:	8b c0                	mov    %eax,%eax
408c68:	55                   	push   %ebp
408c69:	8b ec                	mov    %esp,%ebp
408c6b:	53                   	push   %ebx
408c6c:	56                   	push   %esi
408c6d:	57                   	push   %edi
408c6e:	8b f9                	mov    %ecx,%edi
408c70:	8b f2                	mov    %edx,%esi
408c72:	8b d8                	mov    %eax,%ebx
408c74:	85 db                	test   %ebx,%ebx
408c76:	74 27                	je     0x408c9f
408c78:	85 f6                	test   %esi,%esi
408c7a:	74 23                	je     0x408c9f
408c7c:	8b c6                	mov    %esi,%eax
408c7e:	e8 89 f9 ff ff       	call   0x40860c
408c83:	50                   	push   %eax
408c84:	57                   	push   %edi
408c85:	8b 45 08             	mov    0x8(%ebp),%eax
408c88:	50                   	push   %eax
408c89:	8b ce                	mov    %esi,%ecx
408c8b:	8b c3                	mov    %ebx,%eax
408c8d:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
408c92:	e8 59 fc ff ff       	call   0x4088f0
408c97:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
408c9b:	8b c3                	mov    %ebx,%eax
408c9d:	eb 02                	jmp    0x408ca1
408c9f:	33 c0                	xor    %eax,%eax
408ca1:	5f                   	pop    %edi
408ca2:	5e                   	pop    %esi
408ca3:	5b                   	pop    %ebx
408ca4:	5d                   	pop    %ebp
408ca5:	c2 04 00             	ret    $0x4
408ca8:	55                   	push   %ebp
408ca9:	8b ec                	mov    %esp,%ebp
408cab:	53                   	push   %ebx
408cac:	56                   	push   %esi
408cad:	57                   	push   %edi
408cae:	8b f1                	mov    %ecx,%esi
408cb0:	8b fa                	mov    %edx,%edi
408cb2:	8b d8                	mov    %eax,%ebx
408cb4:	85 db                	test   %ebx,%ebx
408cb6:	74 27                	je     0x408cdf
408cb8:	85 f6                	test   %esi,%esi
408cba:	74 23                	je     0x408cdf
408cbc:	8b c6                	mov    %esi,%eax
408cbe:	e8 49 f9 ff ff       	call   0x40860c
408cc3:	50                   	push   %eax
408cc4:	8b 45 0c             	mov    0xc(%ebp),%eax
408cc7:	50                   	push   %eax
408cc8:	8b 45 08             	mov    0x8(%ebp),%eax
408ccb:	50                   	push   %eax
408ccc:	8b ce                	mov    %esi,%ecx
408cce:	8b c3                	mov    %ebx,%eax
408cd0:	8b d7                	mov    %edi,%edx
408cd2:	e8 19 fc ff ff       	call   0x4088f0
408cd7:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
408cdb:	8b c3                	mov    %ebx,%eax
408cdd:	eb 02                	jmp    0x408ce1
408cdf:	33 c0                	xor    %eax,%eax
408ce1:	5f                   	pop    %edi
408ce2:	5e                   	pop    %esi
408ce3:	5b                   	pop    %ebx
408ce4:	5d                   	pop    %ebp
408ce5:	c2 08 00             	ret    $0x8
408ce8:	55                   	push   %ebp
408ce9:	8b ec                	mov    %esp,%ebp
408ceb:	51                   	push   %ecx
408cec:	8b 4d 08             	mov    0x8(%ebp),%ecx
408cef:	91                   	xchg   %eax,%ecx
408cf0:	87 d1                	xchg   %edx,%ecx
408cf2:	e8 05 00 00 00       	call   0x408cfc
408cf7:	5d                   	pop    %ebp
408cf8:	c2 04 00             	ret    $0x4
408cfb:	90                   	nop
408cfc:	55                   	push   %ebp
408cfd:	8b ec                	mov    %esp,%ebp
408cff:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
408d05:	50                   	push   %eax
408d06:	83 c4 f8             	add    $0xfffffff8,%esp
408d09:	53                   	push   %ebx
408d0a:	56                   	push   %esi
408d0b:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408d0e:	89 55 fc             	mov    %edx,-0x4(%ebp)
408d11:	8b f0                	mov    %eax,%esi
408d13:	bb 00 10 00 00       	mov    $0x1000,%ebx
408d18:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d1b:	e8 38 b5 ff ff       	call   0x404258
408d20:	3d 00 0c 00 00       	cmp    $0xc00,%eax
408d25:	7d 26                	jge    0x408d4d
408d27:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d2a:	e8 29 b5 ff ff       	call   0x404258
408d2f:	50                   	push   %eax
408d30:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d33:	50                   	push   %eax
408d34:	8b 45 08             	mov    0x8(%ebp),%eax
408d37:	50                   	push   %eax
408d38:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408d3b:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
408d41:	ba ff 0f 00 00       	mov    $0xfff,%edx
408d46:	e8 a5 fb ff ff       	call   0x4088f0
408d4b:	eb 0c                	jmp    0x408d59
408d4d:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d50:	e8 03 b5 ff ff       	call   0x404258
408d55:	8b d8                	mov    %eax,%ebx
408d57:	8b c3                	mov    %ebx,%eax
408d59:	8b d3                	mov    %ebx,%edx
408d5b:	4a                   	dec    %edx
408d5c:	3b c2                	cmp    %edx,%eax
408d5e:	7c 43                	jl     0x408da3
408d60:	eb 30                	jmp    0x408d92
408d62:	03 db                	add    %ebx,%ebx
408d64:	8b c6                	mov    %esi,%eax
408d66:	e8 2d b2 ff ff       	call   0x403f98
408d6b:	8b c6                	mov    %esi,%eax
408d6d:	8b d3                	mov    %ebx,%edx
408d6f:	e8 70 b8 ff ff       	call   0x4045e4
408d74:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d77:	e8 dc b4 ff ff       	call   0x404258
408d7c:	50                   	push   %eax
408d7d:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d80:	50                   	push   %eax
408d81:	8b 45 08             	mov    0x8(%ebp),%eax
408d84:	50                   	push   %eax
408d85:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408d88:	8b d3                	mov    %ebx,%edx
408d8a:	4a                   	dec    %edx
408d8b:	8b 06                	mov    (%esi),%eax
408d8d:	e8 5e fb ff ff       	call   0x4088f0
408d92:	8b d3                	mov    %ebx,%edx
408d94:	4a                   	dec    %edx
408d95:	3b c2                	cmp    %edx,%eax
408d97:	7d c9                	jge    0x408d62
408d99:	8b d6                	mov    %esi,%edx
408d9b:	92                   	xchg   %eax,%edx
408d9c:	e8 43 b8 ff ff       	call   0x4045e4
408da1:	eb 0e                	jmp    0x408db1
408da3:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
408da9:	8b ce                	mov    %esi,%ecx
408dab:	91                   	xchg   %eax,%ecx
408dac:	e8 d7 b2 ff ff       	call   0x404088
408db1:	5e                   	pop    %esi
408db2:	5b                   	pop    %ebx
408db3:	8b e5                	mov    %ebp,%esp
408db5:	5d                   	pop    %ebp
408db6:	c2 04 00             	ret    $0x4
408db9:	8d 40 00             	lea    0x0(%eax),%eax
408dbc:	56                   	push   %esi
408dbd:	31 f6                	xor    %esi,%esi
408dbf:	aa                   	stos   %al,%es:(%edi)
408dc0:	08 db                	or     %bl,%bl
408dc2:	75 04                	jne    0x408dc8
408dc4:	31 d2                	xor    %edx,%edx
408dc6:	eb 0a                	jmp    0x408dd2
408dc8:	09 d2                	or     %edx,%edx
408dca:	7d 06                	jge    0x408dd2
408dcc:	b0 2d                	mov    $0x2d,%al
408dce:	f7 da                	neg    %edx
408dd0:	eb 06                	jmp    0x408dd8
408dd2:	08 e4                	or     %ah,%ah
408dd4:	74 03                	je     0x408dd9
408dd6:	88 e0                	mov    %ah,%al
408dd8:	aa                   	stos   %al,%es:(%edi)
408dd9:	92                   	xchg   %eax,%edx
408dda:	50                   	push   %eax
408ddb:	89 e3                	mov    %esp,%ebx
408ddd:	31 d2                	xor    %edx,%edx
408ddf:	f7 b6 74 31 46 00    	divl   0x463174(%esi)
408de5:	80 c2 30             	add    $0x30,%dl
408de8:	88 13                	mov    %dl,(%ebx)
408dea:	43                   	inc    %ebx
408deb:	49                   	dec    %ecx
408dec:	09 c0                	or     %eax,%eax
408dee:	75 ed                	jne    0x408ddd
408df0:	09 c9                	or     %ecx,%ecx
408df2:	7f e9                	jg     0x408ddd
408df4:	4b                   	dec    %ebx
408df5:	8a 03                	mov    (%ebx),%al
408df7:	aa                   	stos   %al,%es:(%edi)
408df8:	39 e3                	cmp    %esp,%ebx
408dfa:	75 f8                	jne    0x408df4
408dfc:	58                   	pop    %eax
408dfd:	5e                   	pop    %esi
408dfe:	c3                   	ret
408dff:	90                   	nop
408e00:	55                   	push   %ebp
408e01:	8b ec                	mov    %esp,%ebp
408e03:	83 c4 d4             	add    $0xffffffd4,%esp
408e06:	57                   	push   %edi
408e07:	56                   	push   %esi
408e08:	53                   	push   %ebx
408e09:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e0c:	a0 87 e6 46 00       	mov    0x46e687,%al
408e11:	88 45 fb             	mov    %al,-0x5(%ebp)
408e14:	a0 86 e6 46 00       	mov    0x46e686,%al
408e19:	88 45 fa             	mov    %al,-0x6(%ebp)
408e1c:	a1 80 e6 46 00       	mov    0x46e680,%eax
408e21:	89 45 f4             	mov    %eax,-0xc(%ebp)
408e24:	a0 84 e6 46 00       	mov    0x46e684,%al
408e29:	88 45 f3             	mov    %al,-0xd(%ebp)
408e2c:	a0 85 e6 46 00       	mov    0x46e685,%al
408e31:	88 45 f2             	mov    %al,-0xe(%ebp)
408e34:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
408e3b:	b8 13 00 00 00       	mov    $0x13,%eax
408e40:	80 f9 00             	cmp    $0x0,%cl
408e43:	75 17                	jne    0x408e5c
408e45:	8b 45 0c             	mov    0xc(%ebp),%eax
408e48:	83 f8 02             	cmp    $0x2,%eax
408e4b:	7d 05                	jge    0x408e52
408e4d:	b8 02 00 00 00       	mov    $0x2,%eax
408e52:	83 f8 12             	cmp    $0x12,%eax
408e55:	7e 05                	jle    0x408e5c
408e57:	b8 12 00 00 00       	mov    $0x12,%eax
408e5c:	89 45 0c             	mov    %eax,0xc(%ebp)
408e5f:	50                   	push   %eax
408e60:	b8 0f 27 00 00       	mov    $0x270f,%eax
408e65:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
408e69:	72 03                	jb     0x408e6e
408e6b:	8b 45 08             	mov    0x8(%ebp),%eax
408e6e:	50                   	push   %eax
408e6f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408e72:	e8 5d 02 00 00       	call   0x4090d4
408e77:	8b 7d fc             	mov    -0x4(%ebp),%edi
408e7a:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
408e7e:	2d ff 7f 00 00       	sub    $0x7fff,%eax
408e83:	83 f8 02             	cmp    $0x2,%eax
408e86:	73 1a                	jae    0x408ea2
408e88:	89 c1                	mov    %eax,%ecx
408e8a:	e8 70 00 00 00       	call   0x408eff
408e8f:	8d b4 49 f0 8e 40 00 	lea    0x408ef0(%ecx,%ecx,2),%esi
408e96:	03 75 ec             	add    -0x14(%ebp),%esi
408e99:	b9 03 00 00 00       	mov    $0x3,%ecx
408e9e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
408ea0:	eb 2d                	jmp    0x408ecf
408ea2:	8d 75 d7             	lea    -0x29(%ebp),%esi
408ea5:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
408ea9:	80 fb 01             	cmp    $0x1,%bl
408eac:	74 10                	je     0x408ebe
408eae:	80 fb 04             	cmp    $0x4,%bl
408eb1:	77 09                	ja     0x408ebc
408eb3:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
408eb7:	3b 45 0c             	cmp    0xc(%ebp),%eax
408eba:	7e 02                	jle    0x408ebe
408ebc:	b3 00                	mov    $0x0,%bl
408ebe:	8d 1c 9d dc 8e 40 00 	lea    0x408edc(,%ebx,4),%ebx
408ec5:	03 5d ec             	add    -0x14(%ebp),%ebx
408ec8:	8b 1b                	mov    (%ebx),%ebx
408eca:	03 5d ec             	add    -0x14(%ebp),%ebx
408ecd:	ff d3                	call   *%ebx
408ecf:	89 f8                	mov    %edi,%eax
408ed1:	2b 45 fc             	sub    -0x4(%ebp),%eax
408ed4:	5b                   	pop    %ebx
408ed5:	5e                   	pop    %esi
408ed6:	5f                   	pop    %edi
408ed7:	e9 f1 01 00 00       	jmp    0x4090cd
408edc:	09 8f 40 00 65 8f    	or     %ecx,-0x709affc0(%edi)
408ee2:	40                   	inc    %eax
408ee3:	00 9c 8f 40 00 9c 8f 	add    %bl,-0x7063ffc0(%edi,%ecx,4)
408eea:	40                   	inc    %eax
408eeb:	00 06                	add    %al,(%esi)
408eed:	90                   	nop
408eee:	40                   	inc    %eax
408eef:	00 49 4e             	add    %cl,0x4e(%ecx)
408ef2:	46                   	inc    %esi
408ef3:	4e                   	dec    %esi
408ef4:	41                   	inc    %ecx
408ef5:	4e                   	dec    %esi
408ef6:	ac                   	lods   %ds:(%esi),%al
408ef7:	08 c0                	or     %al,%al
408ef9:	75 03                	jne    0x408efe
408efb:	b0 30                	mov    $0x30,%al
408efd:	4e                   	dec    %esi
408efe:	c3                   	ret
408eff:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
408f03:	74 03                	je     0x408f08
408f05:	b0 2d                	mov    $0x2d,%al
408f07:	aa                   	stos   %al,%es:(%edi)
408f08:	c3                   	ret
408f09:	e8 f1 ff ff ff       	call   0x408eff
408f0e:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
408f12:	31 d2                	xor    %edx,%edx
408f14:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
408f17:	7f 1d                	jg     0x408f36
408f19:	83 f9 fd             	cmp    $0xfffffffd,%ecx
408f1c:	7c 18                	jl     0x408f36
408f1e:	09 c9                	or     %ecx,%ecx
408f20:	7f 1a                	jg     0x408f3c
408f22:	b0 30                	mov    $0x30,%al
408f24:	aa                   	stos   %al,%es:(%edi)
408f25:	80 3e 00             	cmpb   $0x0,(%esi)
408f28:	74 3a                	je     0x408f64
408f2a:	8a 45 fb             	mov    -0x5(%ebp),%al
408f2d:	aa                   	stos   %al,%es:(%edi)
408f2e:	f7 d9                	neg    %ecx
408f30:	b0 30                	mov    $0x30,%al
408f32:	f3 aa                	rep stos %al,%es:(%edi)
408f34:	eb 1a                	jmp    0x408f50
408f36:	b9 01 00 00 00       	mov    $0x1,%ecx
408f3b:	42                   	inc    %edx
408f3c:	ac                   	lods   %ds:(%esi),%al
408f3d:	08 c0                	or     %al,%al
408f3f:	74 17                	je     0x408f58
408f41:	aa                   	stos   %al,%es:(%edi)
408f42:	e2 f8                	loop   0x408f3c
408f44:	ac                   	lods   %ds:(%esi),%al
408f45:	08 c0                	or     %al,%al
408f47:	74 13                	je     0x408f5c
408f49:	88 c4                	mov    %al,%ah
408f4b:	8a 45 fb             	mov    -0x5(%ebp),%al
408f4e:	66 ab                	stos   %ax,%es:(%edi)
408f50:	ac                   	lods   %ds:(%esi),%al
408f51:	08 c0                	or     %al,%al
408f53:	74 07                	je     0x408f5c
408f55:	aa                   	stos   %al,%es:(%edi)
408f56:	eb f8                	jmp    0x408f50
408f58:	b0 30                	mov    $0x30,%al
408f5a:	f3 aa                	rep stos %al,%es:(%edi)
408f5c:	09 d2                	or     %edx,%edx
408f5e:	74 04                	je     0x408f64
408f60:	31 c0                	xor    %eax,%eax
408f62:	eb 1e                	jmp    0x408f82
408f64:	c3                   	ret
408f65:	e8 95 ff ff ff       	call   0x408eff
408f6a:	e8 87 ff ff ff       	call   0x408ef6
408f6f:	8a 65 fb             	mov    -0x5(%ebp),%ah
408f72:	66 ab                	stos   %ax,%es:(%edi)
408f74:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408f77:	49                   	dec    %ecx
408f78:	e8 79 ff ff ff       	call   0x408ef6
408f7d:	aa                   	stos   %al,%es:(%edi)
408f7e:	e2 f8                	loop   0x408f78
408f80:	b4 2b                	mov    $0x2b,%ah
408f82:	8b 4d 08             	mov    0x8(%ebp),%ecx
408f85:	83 f9 04             	cmp    $0x4,%ecx
408f88:	76 02                	jbe    0x408f8c
408f8a:	31 c9                	xor    %ecx,%ecx
408f8c:	b0 45                	mov    $0x45,%al
408f8e:	8a 5d d7             	mov    -0x29(%ebp),%bl