589e21:	83 c4 0c             	add    $0xc,%esp
589e24:	83 c6 02             	add    $0x2,%esi
589e27:	3b fd                	cmp    %ebp,%edi
589e29:	72 e5                	jb     0x589e10
589e2b:	8b 4c 24 20          	mov    0x20(%esp),%ecx
589e2f:	c6 06 00             	movb   $0x0,(%esi)
589e32:	8b 74 24 10          	mov    0x10(%esp),%esi
589e36:	56                   	push   %esi
589e37:	8b 81 d0 04 00 00    	mov    0x4d0(%ecx),%eax
589e3d:	51                   	push   %ecx
589e3e:	8b 80 1c 02 00 00    	mov    0x21c(%eax),%eax
589e44:	ff d0                	call   *%eax
589e46:	68 7f 14 00 00       	push   $0x147f
589e4b:	68 3c 48 66 00       	push   $0x66483c
589e50:	ff 74 24 24          	push   0x24(%esp)
589e54:	56                   	push   %esi
589e55:	e8 e6 69 f5 ff       	call   0x4e0840
589e5a:	83 c4 18             	add    $0x18,%esp
589e5d:	b8 01 00 00 00       	mov    $0x1,%eax
589e62:	5e                   	pop    %esi
589e63:	5d                   	pop    %ebp
589e64:	5f                   	pop    %edi
589e65:	5b                   	pop    %ebx
589e66:	83 c4 08             	add    $0x8,%esp
589e69:	c3                   	ret
589e6a:	cc                   	int3
589e6b:	cc                   	int3
589e6c:	cc                   	int3
589e6d:	cc                   	int3
589e6e:	cc                   	int3
589e6f:	cc                   	int3
589e70:	55                   	push   %ebp
589e71:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
589e75:	33 c9                	xor    %ecx,%ecx
589e77:	56                   	push   %esi
589e78:	8b 74 24 14          	mov    0x14(%esp),%esi
589e7c:	85 f6                	test   %esi,%esi
589e7e:	8b 45 04             	mov    0x4(%ebp),%eax
589e81:	0f 95 c1             	setne  %cl
589e84:	83 c1 02             	add    $0x2,%ecx
589e87:	89 4c 24 14          	mov    %ecx,0x14(%esp)
589e8b:	85 c0                	test   %eax,%eax
589e8d:	75 27                	jne    0x589eb6
589e8f:	68 b0 14 00 00       	push   $0x14b0
589e94:	68 3c 48 66 00       	push   $0x66483c
589e99:	68 b7 00 00 00       	push   $0xb7
589e9e:	68 08 02 00 00       	push   $0x208
589ea3:	6a 2f                	push   $0x2f
589ea5:	ff 74 24 20          	push   0x20(%esp)
589ea9:	e8 62 52 00 00       	call   0x58f110
589eae:	83 c4 18             	add    $0x18,%esp
589eb1:	33 c0                	xor    %eax,%eax
589eb3:	5e                   	pop    %esi
589eb4:	5d                   	pop    %ebp
589eb5:	c3                   	ret
589eb6:	33 d2                	xor    %edx,%edx
589eb8:	f7 f1                	div    %ecx
589eba:	85 d2                	test   %edx,%edx
589ebc:	74 27                	je     0x589ee5
589ebe:	68 b6 14 00 00       	push   $0x14b6
589ec3:	68 3c 48 66 00       	push   $0x66483c
589ec8:	68 97 00 00 00       	push   $0x97
589ecd:	68 08 02 00 00       	push   $0x208
589ed2:	6a 32                	push   $0x32
589ed4:	ff 74 24 20          	push   0x20(%esp)
589ed8:	e8 33 52 00 00       	call   0x58f110
589edd:	83 c4 18             	add    $0x18,%esp
589ee0:	33 c0                	xor    %eax,%eax
589ee2:	5e                   	pop    %esi
589ee3:	5d                   	pop    %ebp
589ee4:	c3                   	ret
589ee5:	53                   	push   %ebx
589ee6:	8b 5c 24 10          	mov    0x10(%esp),%ebx
589eea:	57                   	push   %edi
589eeb:	68 ba 14 00 00       	push   $0x14ba
589ef0:	68 3c 48 66 00       	push   $0x66483c
589ef5:	8b 43 7c             	mov    0x7c(%ebx),%eax
589ef8:	ff b0 48 02 00 00    	push   0x248(%eax)
589efe:	e8 7d 68 f5 ff       	call   0x4e0780
589f03:	8b 43 7c             	mov    0x7c(%ebx),%eax
589f06:	83 c4 0c             	add    $0xc,%esp
589f09:	c7 80 48 02 00 00 00 	movl   $0x0,0x248(%eax)
589f10:	00 00 00
589f13:	8b 43 7c             	mov    0x7c(%ebx),%eax
589f16:	c7 80 4c 02 00 00 00 	movl   $0x0,0x24c(%eax)
589f1d:	00 00 00
589f20:	85 f6                	test   %esi,%esi
589f22:	0f 84 f0 00 00 00    	je     0x58a018
589f28:	8b 45 04             	mov    0x4(%ebp),%eax
589f2b:	33 d2                	xor    %edx,%edx
589f2d:	f7 74 24 1c          	divl   0x1c(%esp)
589f31:	8b 7d 00             	mov    0x0(%ebp),%edi
589f34:	8b 75 04             	mov    0x4(%ebp),%esi
589f37:	03 c0                	add    %eax,%eax
589f39:	68 cb 14 00 00       	push   $0x14cb
589f3e:	68 3c 48 66 00       	push   $0x66483c
589f43:	50                   	push   %eax
589f44:	e8 07 68 f5 ff       	call   0x4e0750
589f49:	8b 4b 7c             	mov    0x7c(%ebx),%ecx
589f4c:	8b d0                	mov    %eax,%edx
589f4e:	83 c4 0c             	add    $0xc,%esp
589f51:	89 91 48 02 00 00    	mov    %edx,0x248(%ecx)
589f57:	85 d2                	test   %edx,%edx
589f59:	75 11                	jne    0x589f6c
589f5b:	68 cf 14 00 00       	push   $0x14cf
589f60:	68 3c 48 66 00       	push   $0x66483c
589f65:	6a 41                	push   $0x41
589f67:	e9 0e 01 00 00       	jmp    0x58a07a
589f6c:	8b 43 7c             	mov    0x7c(%ebx),%eax
589f6f:	c7 80 4c 02 00 00 00 	movl   $0x0,0x24c(%eax)
589f76:	00 00 00
589f79:	85 f6                	test   %esi,%esi
589f7b:	0f 84 16 01 00 00    	je     0x58a097
589f81:	8b cf                	mov    %edi,%ecx
589f83:	4e                   	dec    %esi
589f84:	80 3f 00             	cmpb   $0x0,(%edi)
589f87:	75 1b                	jne    0x589fa4
589f89:	83 fe 02             	cmp    $0x2,%esi
589f8c:	72 32                	jb     0x589fc0
589f8e:	66 8b 41 01          	mov    0x1(%ecx),%ax
589f92:	83 c6 fe             	add    $0xfffffffe,%esi
589f95:	66 89 02             	mov    %ax,(%edx)
589f98:	8b 43 7c             	mov    0x7c(%ebx),%eax
589f9b:	83 80 4c 02 00 00 02 	addl   $0x2,0x24c(%eax)
589fa2:	eb 08                	jmp    0x589fac
589fa4:	83 fe 02             	cmp    $0x2,%esi
589fa7:	72 17                	jb     0x589fc0
589fa9:	83 c6 fe             	add    $0xfffffffe,%esi
589fac:	8d 79 03             	lea    0x3(%ecx),%edi
589faf:	83 c2 02             	add    $0x2,%edx
589fb2:	8b cf                	mov    %edi,%ecx
589fb4:	85 f6                	test   %esi,%esi
589fb6:	75 cb                	jne    0x589f83
589fb8:	5f                   	pop    %edi
589fb9:	5b                   	pop    %ebx
589fba:	8d 46 01             	lea    0x1(%esi),%eax
589fbd:	5e                   	pop    %esi
589fbe:	5d                   	pop    %ebp
589fbf:	c3                   	ret
589fc0:	68 dc 14 00 00       	push   $0x14dc
589fc5:	68 3c 48 66 00       	push   $0x66483c
589fca:	68 f0 00 00 00       	push   $0xf0
589fcf:	68 08 02 00 00       	push   $0x208
589fd4:	6a 32                	push   $0x32
589fd6:	53                   	push   %ebx
589fd7:	e8 34 51 00 00       	call   0x58f110
589fdc:	8b 43 7c             	mov    0x7c(%ebx),%eax
589fdf:	68 dd 14 00 00       	push   $0x14dd
589fe4:	68 3c 48 66 00       	push   $0x66483c
589fe9:	ff b0 48 02 00 00    	push   0x248(%eax)
589fef:	e8 8c 67 f5 ff       	call   0x4e0780
589ff4:	8b 43 7c             	mov    0x7c(%ebx),%eax
589ff7:	83 c4 24             	add    $0x24,%esp
589ffa:	c7 80 48 02 00 00 00 	movl   $0x0,0x248(%eax)
58a001:	00 00 00
58a004:	8b 43 7c             	mov    0x7c(%ebx),%eax
58a007:	5f                   	pop    %edi
58a008:	5b                   	pop    %ebx
58a009:	5e                   	pop    %esi
58a00a:	c7 80 4c 02 00 00 00 	movl   $0x0,0x24c(%eax)
58a011:	00 00 00
58a014:	33 c0                	xor    %eax,%eax
58a016:	5d                   	pop    %ebp
58a017:	c3                   	ret
58a018:	8b 73 7c             	mov    0x7c(%ebx),%esi
58a01b:	68 a4 01 00 00       	push   $0x1a4
58a020:	68 f8 47 66 00       	push   $0x6647f8
58a025:	ff b6 48 02 00 00    	push   0x248(%esi)
58a02b:	e8 50 67 f5 ff       	call   0x4e0780
58a030:	c7 86 48 02 00 00 00 	movl   $0x0,0x248(%esi)
58a037:	00 00 00
58a03a:	83 c4 0c             	add    $0xc,%esp
58a03d:	c7 86 4c 02 00 00 00 	movl   $0x0,0x24c(%esi)
58a044:	00 00 00
58a047:	8b 7d 04             	mov    0x4(%ebp),%edi
58a04a:	85 ff                	test   %edi,%edi
58a04c:	74 49                	je     0x58a097
58a04e:	68 ad 01 00 00       	push   $0x1ad
58a053:	68 f8 47 66 00       	push   $0x6647f8
58a058:	57                   	push   %edi
58a059:	ff 75 00             	push   0x0(%ebp)
58a05c:	e8 0f 80 f5 ff       	call   0x4e2070
58a061:	83 c4 10             	add    $0x10,%esp
58a064:	89 86 48 02 00 00    	mov    %eax,0x248(%esi)
58a06a:	85 c0                	test   %eax,%eax
58a06c:	75 23                	jne    0x58a091
58a06e:	68 e8 14 00 00       	push   $0x14e8
58a073:	68 3c 48 66 00       	push   $0x66483c
58a078:	6a 44                	push   $0x44
58a07a:	68 08 02 00 00       	push   $0x208
58a07f:	6a 50                	push   $0x50
58a081:	53                   	push   %ebx
58a082:	e8 89 50 00 00       	call   0x58f110
58a087:	83 c4 18             	add    $0x18,%esp
58a08a:	33 c0                	xor    %eax,%eax
58a08c:	5f                   	pop    %edi
58a08d:	5b                   	pop    %ebx
58a08e:	5e                   	pop    %esi
58a08f:	5d                   	pop    %ebp
58a090:	c3                   	ret
58a091:	89 be 4c 02 00 00    	mov    %edi,0x24c(%esi)
58a097:	5f                   	pop    %edi
58a098:	5b                   	pop    %ebx
58a099:	5e                   	pop    %esi
58a09a:	b8 01 00 00 00       	mov    $0x1,%eax
58a09f:	5d                   	pop    %ebp
58a0a0:	c3                   	ret
58a0a1:	cc                   	int3
58a0a2:	cc                   	int3
58a0a3:	cc                   	int3
58a0a4:	cc                   	int3
58a0a5:	cc                   	int3
58a0a6:	cc                   	int3
58a0a7:	cc                   	int3
58a0a8:	cc                   	int3
58a0a9:	cc                   	int3
58a0aa:	cc                   	int3
58a0ab:	cc                   	int3
58a0ac:	cc                   	int3
58a0ad:	cc                   	int3
58a0ae:	cc                   	int3
58a0af:	cc                   	int3
58a0b0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58a0b4:	56                   	push   %esi
58a0b5:	57                   	push   %edi
58a0b6:	33 ff                	xor    %edi,%edi
58a0b8:	33 f6                	xor    %esi,%esi
58a0ba:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
58a0c0:	74 0e                	je     0x58a0d0
58a0c2:	8b c1                	mov    %ecx,%eax
58a0c4:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a0c9:	3d 00 fe 00 00       	cmp    $0xfe00,%eax
58a0ce:	75 05                	jne    0x58a0d5
58a0d0:	bf 01 00 00 00       	mov    $0x1,%edi
58a0d5:	8b 54 24 10          	mov    0x10(%esp),%edx
58a0d9:	81 fa 00 01 00 00    	cmp    $0x100,%edx
58a0df:	74 0e                	je     0x58a0ef
58a0e1:	8b c2                	mov    %edx,%eax
58a0e3:	25 00 ff ff ff       	and    $0xffffff00,%eax
58a0e8:	3d 00 fe 00 00       	cmp    $0xfe00,%eax
58a0ed:	75 05                	jne    0x58a0f4
58a0ef:	be 01 00 00 00       	mov    $0x1,%esi
58a0f4:	85 ff                	test   %edi,%edi
58a0f6:	74 10                	je     0x58a108
58a0f8:	85 f6                	test   %esi,%esi
58a0fa:	75 04                	jne    0x58a100
58a0fc:	85 d2                	test   %edx,%edx
58a0fe:	75 3a                	jne    0x58a13a
58a100:	5f                   	pop    %edi
58a101:	b8 01 00 00 00       	mov    $0x1,%eax
58a106:	5e                   	pop    %esi
58a107:	c3                   	ret
58a108:	85 f6                	test   %esi,%esi
58a10a:	74 09                	je     0x58a115
58a10c:	85 c9                	test   %ecx,%ecx
58a10e:	74 f0                	je     0x58a100
58a110:	5f                   	pop    %edi
58a111:	33 c0                	xor    %eax,%eax
58a113:	5e                   	pop    %esi
58a114:	c3                   	ret
58a115:	85 c9                	test   %ecx,%ecx
58a117:	b8 00 03 00 00       	mov    $0x300,%eax
58a11c:	0f 45 c1             	cmovne %ecx,%eax
58a11f:	85 d2                	test   %edx,%edx
58a121:	b9 04 03 00 00       	mov    $0x304,%ecx
58a126:	0f 45 ca             	cmovne %edx,%ecx
58a129:	3d 00 03 00 00       	cmp    $0x300,%eax
58a12e:	74 d0                	je     0x58a100
58a130:	7f ce                	jg     0x58a100
58a132:	81 f9 00 03 00 00    	cmp    $0x300,%ecx
58a138:	7c c6                	jl     0x58a100
58a13a:	5f                   	pop    %edi
58a13b:	33 c0                	xor    %eax,%eax
58a13d:	5e                   	pop    %esi
58a13e:	c3                   	ret
58a13f:	cc                   	int3
58a140:	8b 44 24 08          	mov    0x8(%esp),%eax
58a144:	8b 40 7c             	mov    0x7c(%eax),%eax
58a147:	8b 80 10 02 00 00    	mov    0x210(%eax),%eax
58a14d:	f6 40 14 08          	testb  $0x8,0x14(%eax)
58a151:	74 31                	je     0x58a184
58a153:	ff 74 24 04          	push   0x4(%esp)
58a157:	e8 64 24 fd ff       	call   0x55c5c0
58a15c:	83 c4 04             	add    $0x4,%esp
58a15f:	84 c0                	test   %al,%al
58a161:	78 21                	js     0x58a184
58a163:	68 5e 0d 00 00       	push   $0xd5e
58a168:	68 3c 48 66 00       	push   $0x66483c
58a16d:	68 3e 01 00 00       	push   $0x13e
58a172:	68 17 01 00 00       	push   $0x117
58a177:	6a 14                	push   $0x14
58a179:	e8 02 ee f4 ff       	call   0x4d8f80
58a17e:	83 c4 14             	add    $0x14,%esp
58a181:	33 c0                	xor    %eax,%eax
58a183:	c3                   	ret
58a184:	b8 01 00 00 00       	mov    $0x1,%eax
58a189:	c3                   	ret
58a18a:	cc                   	int3
58a18b:	cc                   	int3
58a18c:	cc                   	int3
58a18d:	cc                   	int3
58a18e:	cc                   	int3
58a18f:	cc                   	int3
58a190:	8b 44 24 04          	mov    0x4(%esp),%eax
58a194:	8b 48 0c             	mov    0xc(%eax),%ecx
58a197:	8b 44 24 08          	mov    0x8(%esp),%eax
58a19b:	8b 40 0c             	mov    0xc(%eax),%eax
58a19e:	3b c8                	cmp    %eax,%ecx
58a1a0:	76 06                	jbe    0x58a1a8
58a1a2:	b8 01 00 00 00       	mov    $0x1,%eax
58a1a7:	c3                   	ret
58a1a8:	1b c0                	sbb    %eax,%eax
58a1aa:	c3                   	ret
58a1ab:	cc                   	int3
58a1ac:	cc                   	int3
58a1ad:	cc                   	int3
58a1ae:	cc                   	int3
58a1af:	cc                   	int3
58a1b0:	8b 44 24 04          	mov    0x4(%esp),%eax
58a1b4:	8b 00                	mov    (%eax),%eax
58a1b6:	8b 48 0c             	mov    0xc(%eax),%ecx
58a1b9:	8b 44 24 08          	mov    0x8(%esp),%eax
58a1bd:	8b 00                	mov    (%eax),%eax
58a1bf:	8b 40 0c             	mov    0xc(%eax),%eax
58a1c2:	3b c8                	cmp    %eax,%ecx
58a1c4:	76 06                	jbe    0x58a1cc
58a1c6:	b8 01 00 00 00       	mov    $0x1,%eax
58a1cb:	c3                   	ret
58a1cc:	1b c0                	sbb    %eax,%eax
58a1ce:	c3                   	ret
58a1cf:	cc                   	int3
58a1d0:	56                   	push   %esi
58a1d1:	8b 74 24 08          	mov    0x8(%esp),%esi
58a1d5:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
58a1d9:	74 1d                	je     0x58a1f8
58a1db:	ff 76 0c             	push   0xc(%esi)
58a1de:	e8 4d f0 f6 ff       	call   0x4f9230
58a1e3:	ff 76 10             	push   0x10(%esi)
58a1e6:	89 46 0c             	mov    %eax,0xc(%esi)
58a1e9:	e8 62 ea f6 ff       	call   0x4f8c50
58a1ee:	83 c4 08             	add    $0x8,%esp
58a1f1:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
58a1f8:	b8 01 00 00 00       	mov    $0x1,%eax
58a1fd:	5e                   	pop    %esi
58a1fe:	c3                   	ret
58a1ff:	cc                   	int3
58a200:	8b 4c 24 04          	mov    0x4(%esp),%ecx
58a204:	85 c9                	test   %ecx,%ecx
58a206:	74 1b                	je     0x58a223
58a208:	8b 81 c0 00 00 00    	mov    0xc0(%ecx),%eax