594ebb:	ba ac 53 59 00       	mov    $0x5953ac,%edx
594ec0:	8b c6                	mov    %esi,%eax
594ec2:	e8 fd 3b ff ff       	call   0x588ac4
594ec7:	33 c0                	xor    %eax,%eax
594ec9:	89 45 c8             	mov    %eax,-0x38(%ebp)
594ecc:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
594ed2:	8b 95 d8 0b ff ff    	mov    -0xf428(%ebp),%edx
594ed8:	2b 95 08 0c ff ff    	sub    -0xf3f8(%ebp),%edx
594ede:	4a                   	dec    %edx
594edf:	2b d0                	sub    %eax,%edx
594ee1:	0f 8c d2 00 00 00    	jl     0x594fb9
594ee7:	42                   	inc    %edx
594ee8:	89 55 c0             	mov    %edx,-0x40(%ebp)
594eeb:	89 45 f4             	mov    %eax,-0xc(%ebp)
594eee:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
594ef4:	8b 95 dc 0b ff ff    	mov    -0xf424(%ebp),%edx
594efa:	2b d0                	sub    %eax,%edx
594efc:	4a                   	dec    %edx
594efd:	2b d0                	sub    %eax,%edx
594eff:	7c 73                	jl     0x594f74
594f01:	42                   	inc    %edx
594f02:	89 55 bc             	mov    %edx,-0x44(%ebp)
594f05:	89 45 f0             	mov    %eax,-0x10(%ebp)
594f08:	8b 45 f4             	mov    -0xc(%ebp),%eax
594f0b:	f7 ad dc 0b ff ff    	imull  -0xf424(%ebp)
594f11:	03 45 f0             	add    -0x10(%ebp),%eax
594f14:	8b 95 e0 0a ff ff    	mov    -0xf520(%ebp),%edx
594f1a:	8d 04 c2             	lea    (%edx,%eax,8),%eax
594f1d:	89 45 d0             	mov    %eax,-0x30(%ebp)
594f20:	33 db                	xor    %ebx,%ebx
594f22:	8b 45 d0             	mov    -0x30(%ebp),%eax
594f25:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
594f29:	89 85 d0 0a ff ff    	mov    %eax,-0xf530(%ebp)
594f2f:	db 85 d0 0a ff ff    	fildl  -0xf530(%ebp)
594f35:	8b 45 d0             	mov    -0x30(%ebp),%eax
594f38:	0f b7 40 06          	movzwl 0x6(%eax),%eax
594f3c:	8b 55 d4             	mov    -0x2c(%ebp),%edx
594f3f:	dc 0c c2             	fmull  (%edx,%eax,8)
594f42:	e8 85 dd e6 ff       	call   0x402ccc
594f47:	3d ff ff 00 00       	cmp    $0xffff,%eax
594f4c:	7e 05                	jle    0x594f53
594f4e:	b8 ff ff 00 00       	mov    $0xffff,%eax
594f53:	8b 55 f0             	mov    -0x10(%ebp),%edx
594f56:	2b 95 08 0c ff ff    	sub    -0xf3f8(%ebp),%edx
594f5c:	8d 14 52             	lea    (%edx,%edx,2),%edx
594f5f:	8d 14 56             	lea    (%esi,%edx,2),%edx
594f62:	66 89 04 5a          	mov    %ax,(%edx,%ebx,2)
594f66:	43                   	inc    %ebx
594f67:	83 fb 03             	cmp    $0x3,%ebx
594f6a:	75 b6                	jne    0x594f22
594f6c:	ff 45 f0             	incl   -0x10(%ebp)
594f6f:	ff 4d bc             	decl   -0x44(%ebp)
594f72:	75 94                	jne    0x594f08
594f74:	8b 55 c8             	mov    -0x38(%ebp),%edx
594f77:	8b 45 fc             	mov    -0x4(%ebp),%eax
594f7a:	8b 08                	mov    (%eax),%ecx
594f7c:	ff 11                	call   *(%ecx)
594f7e:	8b d8                	mov    %eax,%ebx
594f80:	8b fe                	mov    %esi,%edi
594f82:	8b 45 fc             	mov    -0x4(%ebp),%eax
594f85:	8b 10                	mov    (%eax),%edx
594f87:	ff 52 0c             	call   *0xc(%edx)
594f8a:	48                   	dec    %eax
594f8b:	85 c0                	test   %eax,%eax
594f8d:	7c 1b                	jl     0x594faa
594f8f:	40                   	inc    %eax
594f90:	89 45 bc             	mov    %eax,-0x44(%ebp)
594f93:	8b 07                	mov    (%edi),%eax
594f95:	89 03                	mov    %eax,(%ebx)
594f97:	66 8b 47 04          	mov    0x4(%edi),%ax
594f9b:	66 89 43 04          	mov    %ax,0x4(%ebx)
594f9f:	83 c3 06             	add    $0x6,%ebx
594fa2:	83 c7 06             	add    $0x6,%edi
594fa5:	ff 4d bc             	decl   -0x44(%ebp)
594fa8:	75 e9                	jne    0x594f93
594faa:	ff 45 c8             	incl   -0x38(%ebp)
594fad:	ff 45 f4             	incl   -0xc(%ebp)
594fb0:	ff 4d c0             	decl   -0x40(%ebp)
594fb3:	0f 85 35 ff ff ff    	jne    0x594eee
594fb9:	8b c6                	mov    %esi,%eax
594fbb:	e8 0c d8 e6 ff       	call   0x4027cc
594fc0:	8b 85 e0 0a ff ff    	mov    -0xf520(%ebp),%eax
594fc6:	e8 01 d8 e6 ff       	call   0x4027cc
594fcb:	66 83 7d 8a 00       	cmpw   $0x0,-0x76(%ebp)
594fd0:	74 0e                	je     0x594fe0
594fd2:	b9 5a 00 00 00       	mov    $0x5a,%ecx
594fd7:	8b 55 90             	mov    -0x70(%ebp),%edx
594fda:	8b 45 8c             	mov    -0x74(%ebp),%eax
594fdd:	ff 55 88             	call   *-0x78(%ebp)
594fe0:	80 7d 80 00          	cmpb   $0x0,-0x80(%ebp)
594fe4:	0f 84 ce 02 00 00    	je     0x5952b8
594fea:	8b 45 fc             	mov    -0x4(%ebp),%eax
594fed:	e8 3a f0 ff ff       	call   0x59402c
594ff2:	e9 c1 02 00 00       	jmp    0x5952b8
594ff7:	8b 45 f8             	mov    -0x8(%ebp),%eax
594ffa:	8b 00                	mov    (%eax),%eax
594ffc:	c7 40 08 08 00 00 00 	movl   $0x8,0x8(%eax)
595003:	8b 45 f8             	mov    -0x8(%ebp),%eax
595006:	8b 00                	mov    (%eax),%eax
595008:	c7 40 10 03 00 00 00 	movl   $0x3,0x10(%eax)
59500f:	68 e1 7a 84 3f       	push   $0x3f847ae1
595014:	68 7b 14 ae 47       	push   $0x47ae147b
595019:	68 e1 7a 74 3f       	push   $0x3f747ae1
59501e:	68 7b 14 ae 47       	push   $0x47ae147b
595023:	ba 8c 53 59 00       	mov    $0x59538c,%edx
595028:	8d 85 ea 0a ff ff    	lea    -0xf516(%ebp),%eax
59502e:	e8 79 39 ff ff       	call   0x5889ac
595033:	85 c0                	test   %eax,%eax
595035:	0f 95 c0             	setne  %al
595038:	e8 d7 f8 06 00       	call   0x604914
59503d:	8b 85 dc 0b ff ff    	mov    -0xf424(%ebp),%eax
595043:	f7 ad d8 0b ff ff    	imull  -0xf428(%ebp)
595049:	89 85 d0 0a ff ff    	mov    %eax,-0xf530(%ebp)
59504f:	db 85 d0 0a ff ff    	fildl  -0xf530(%ebp)
595055:	de c9                	fmulp  %st,%st(1)
595057:	e8 70 dc e6 ff       	call   0x402ccc
59505c:	8b f0                	mov    %eax,%esi
59505e:	33 c0                	xor    %eax,%eax
595060:	ba 00 20 00 00       	mov    $0x2000,%edx
595065:	4a                   	dec    %edx
595066:	85 d2                	test   %edx,%edx
595068:	74 0b                	je     0x595075
59506a:	03 84 95 14 0d ff ff 	add    -0xf2ec(%ebp,%edx,4),%eax
595071:	3b f0                	cmp    %eax,%esi
595073:	7d f0                	jge    0x595065
595075:	c1 e2 04             	shl    $0x4,%edx
595078:	89 95 d0 0a ff ff    	mov    %edx,-0xf530(%ebp)
59507e:	db 85 d0 0a ff ff    	fildl  -0xf530(%ebp)
595084:	dd 5d e8             	fstpl  -0x18(%ebp)
595087:	9b                   	fwait
595088:	6a 05                	push   $0x5
59508a:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
595090:	03 c0                	add    %eax,%eax
595092:	8b 8d d8 0b ff ff    	mov    -0xf428(%ebp),%ecx
595098:	2b c8                	sub    %eax,%ecx
59509a:	0f af 8d 14 0c ff ff 	imul   -0xf3ec(%ebp),%ecx
5950a1:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
5950a7:	03 c0                	add    %eax,%eax
5950a9:	8b 95 dc 0b ff ff    	mov    -0xf424(%ebp),%edx
5950af:	2b d0                	sub    %eax,%edx
5950b1:	0f af 95 10 0c ff ff 	imul   -0xf3f0(%ebp),%edx
5950b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
5950bb:	8b 18                	mov    (%eax),%ebx
5950bd:	ff 53 24             	call   *0x24(%ebx)
5950c0:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
5950c6:	03 c0                	add    %eax,%eax
5950c8:	8b 95 dc 0b ff ff    	mov    -0xf424(%ebp),%edx
5950ce:	2b d0                	sub    %eax,%edx
5950d0:	8d 04 52             	lea    (%edx,%edx,2),%eax
5950d3:	f7 ad 10 0c ff ff    	imull  -0xf3f0(%ebp)
5950d9:	83 c0 0a             	add    $0xa,%eax
5950dc:	e8 d3 3f e7 ff       	call   0x4090b4
5950e1:	89 45 cc             	mov    %eax,-0x34(%ebp)
5950e4:	ba bc 53 59 00       	mov    $0x5953bc,%edx
5950e9:	8b 45 cc             	mov    -0x34(%ebp),%eax
5950ec:	e8 d3 39 ff ff       	call   0x588ac4
5950f1:	dd 45 e8             	fldl   -0x18(%ebp)
5950f4:	d8 1d 98 53 59 00    	fcomps 0x595398
5950fa:	df e0                	fnstsw %ax
5950fc:	9e                   	sahf
5950fd:	75 0c                	jne    0x59510b
5950ff:	33 c0                	xor    %eax,%eax
595101:	89 45 e8             	mov    %eax,-0x18(%ebp)
595104:	c7 45 ec 00 00 f0 3f 	movl   $0x3ff00000,-0x14(%ebp)
59510b:	d9 85 a8 0c ff ff    	flds   -0xf358(%ebp)
595111:	d8 0d 9c 53 59 00    	fmuls  0x59539c
595117:	dc 75 e8             	fdivl  -0x18(%ebp)
59511a:	dd 5d e0             	fstpl  -0x20(%ebp)
59511d:	9b                   	fwait
59511e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
595121:	33 d2                	xor    %edx,%edx
595123:	89 10                	mov    %edx,(%eax)
595125:	89 50 04             	mov    %edx,0x4(%eax)
595128:	be 01 00 00 00       	mov    $0x1,%esi
59512d:	8b c6                	mov    %esi,%eax
59512f:	03 c0                	add    %eax,%eax
595131:	89 85 d0 0a ff ff    	mov    %eax,-0xf530(%ebp)
595137:	db 85 d0 0a ff ff    	fildl  -0xf530(%ebp)
59513d:	dc 75 e8             	fdivl  -0x18(%ebp)
595140:	83 c4 f4             	add    $0xfffffff4,%esp
595143:	db 3c 24             	fstpt  (%esp)
595146:	9b d9 85 a4 0c ff ff 	flds   -0xf35c(%ebp)
59514d:	d8 25 a0 53 59 00    	fsubs  0x5953a0
595153:	83 c4 f4             	add    $0xfffffff4,%esp
595156:	db 3c 24             	fstpt  (%esp)
595159:	9b                   	fwait
59515a:	e8 c1 ba 05 00       	call   0x5f0c20
59515f:	dc 4d e0             	fmull  -0x20(%ebp)
595162:	8b 45 d4             	mov    -0x2c(%ebp),%eax
595165:	dd 1c f0             	fstpl  (%eax,%esi,8)
595168:	9b                   	fwait
595169:	46                   	inc    %esi
59516a:	81 fe 00 00 01 00    	cmp    $0x10000,%esi
595170:	75 bb                	jne    0x59512d
595172:	33 c0                	xor    %eax,%eax
595174:	89 45 c8             	mov    %eax,-0x38(%ebp)
595177:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
59517d:	8b 95 d8 0b ff ff    	mov    -0xf428(%ebp),%edx
595183:	2b 95 08 0c ff ff    	sub    -0xf3f8(%ebp),%edx
595189:	4a                   	dec    %edx
59518a:	2b d0                	sub    %eax,%edx
59518c:	0f 8c f0 00 00 00    	jl     0x595282
595192:	42                   	inc    %edx
595193:	89 55 c0             	mov    %edx,-0x40(%ebp)
595196:	89 45 f4             	mov    %eax,-0xc(%ebp)
595199:	8b 85 08 0c ff ff    	mov    -0xf3f8(%ebp),%eax
59519f:	8b 95 dc 0b ff ff    	mov    -0xf424(%ebp),%edx
5951a5:	2b d0                	sub    %eax,%edx
5951a7:	4a                   	dec    %edx
5951a8:	2b d0                	sub    %eax,%edx
5951aa:	0f 8c 9a 00 00 00    	jl     0x59524a
5951b0:	42                   	inc    %edx
5951b1:	89 55 bc             	mov    %edx,-0x44(%ebp)
5951b4:	89 45 f0             	mov    %eax,-0x10(%ebp)
5951b7:	8b 45 f4             	mov    -0xc(%ebp),%eax
5951ba:	f7 ad dc 0b ff ff    	imull  -0xf424(%ebp)
5951c0:	03 45 f0             	add    -0x10(%ebp),%eax
5951c3:	8b 95 e0 0a ff ff    	mov    -0xf520(%ebp),%edx
5951c9:	8d 04 c2             	lea    (%edx,%eax,8),%eax
5951cc:	89 45 d0             	mov    %eax,-0x30(%ebp)
5951cf:	33 db                	xor    %ebx,%ebx
5951d1:	8b 45 d0             	mov    -0x30(%ebp),%eax
5951d4:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
5951d8:	89 85 d0 0a ff ff    	mov    %eax,-0xf530(%ebp)
5951de:	db 85 d0 0a ff ff    	fildl  -0xf530(%ebp)
5951e4:	8b 45 d0             	mov    -0x30(%ebp),%eax
5951e7:	0f b7 40 06          	movzwl 0x6(%eax),%eax
5951eb:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5951ee:	dc 0c c2             	fmull  (%edx,%eax,8)
5951f1:	e8 d6 da e6 ff       	call   0x402ccc
5951f6:	8b d0                	mov    %eax,%edx
5951f8:	81 fa ff 00 00 00    	cmp    $0xff,%edx
5951fe:	7e 05                	jle    0x595205
595200:	ba ff 00 00 00       	mov    $0xff,%edx
595205:	8b 85 10 0c ff ff    	mov    -0xf3f0(%ebp),%eax
59520b:	48                   	dec    %eax
59520c:	85 c0                	test   %eax,%eax
59520e:	7c 28                	jl     0x595238
595210:	40                   	inc    %eax
595211:	33 f6                	xor    %esi,%esi
595213:	8b 4d f0             	mov    -0x10(%ebp),%ecx
595216:	2b 8d 08 0c ff ff    	sub    -0xf3f8(%ebp),%ecx
59521c:	0f af 8d 10 0c ff ff 	imul   -0xf3f0(%ebp),%ecx
595223:	03 ce                	add    %esi,%ecx
595225:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
595228:	8b 7d cc             	mov    -0x34(%ebp),%edi
59522b:	8d 0c 0f             	lea    (%edi,%ecx,1),%ecx
59522e:	03 cb                	add    %ebx,%ecx
595230:	51                   	push   %ecx
595231:	59                   	pop    %ecx
595232:	88 11                	mov    %dl,(%ecx)
595234:	46                   	inc    %esi
595235:	48                   	dec    %eax
595236:	75 db                	jne    0x595213
595238:	43                   	inc    %ebx
595239:	83 fb 03             	cmp    $0x3,%ebx
59523c:	75 93                	jne    0x5951d1
59523e:	ff 45 f0             	incl   -0x10(%ebp)
595241:	ff 4d bc             	decl   -0x44(%ebp)
595244:	0f 85 6d ff ff ff    	jne    0x5951b7
59524a:	8b 55 c8             	mov    -0x38(%ebp),%edx
59524d:	8b 45 fc             	mov    -0x4(%ebp),%eax
595250:	8b 08                	mov    (%eax),%ecx
595252:	ff 11                	call   *(%ecx)
595254:	8b 95 08 0c ff ff    	mov    -0xf3f8(%ebp),%edx
59525a:	03 d2                	add    %edx,%edx
59525c:	8b 8d dc 0b ff ff    	mov    -0xf424(%ebp),%ecx
595262:	2b ca                	sub    %edx,%ecx
595264:	0f af 8d 10 0c ff ff 	imul   -0xf3f0(%ebp),%ecx
59526b:	8b 55 cc             	mov    -0x34(%ebp),%edx
59526e:	e8 09 c7 01 00       	call   0x5b197c
595273:	ff 45 c8             	incl   -0x38(%ebp)
595276:	ff 45 f4             	incl   -0xc(%ebp)
595279:	ff 4d c0             	decl   -0x40(%ebp)
59527c:	0f 85 17 ff ff ff    	jne    0x595199
595282:	8b 45 cc             	mov    -0x34(%ebp),%eax
595285:	e8 42 d5 e6 ff       	call   0x4027cc
59528a:	8b 85 e0 0a ff ff    	mov    -0xf520(%ebp),%eax
595290:	e8 37 d5 e6 ff       	call   0x4027cc
595295:	66 83 7d 8a 00       	cmpw   $0x0,-0x76(%ebp)
59529a:	74 0e                	je     0x5952aa
59529c:	b9 5a 00 00 00       	mov    $0x5a,%ecx
5952a1:	8b 55 90             	mov    -0x70(%ebp),%edx
5952a4:	8b 45 8c             	mov    -0x74(%ebp),%eax
5952a7:	ff 55 88             	call   *-0x78(%ebp)
5952aa:	80 7d 80 00          	cmpb   $0x0,-0x80(%ebp)
5952ae:	74 08                	je     0x5952b8
5952b0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5952b3:	e8 6c f1 ff ff       	call   0x594424
5952b8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5952bb:	8b 00                	mov    (%eax),%eax
5952bd:	80 b8 99 03 00 00 00 	cmpb   $0x0,0x399(%eax)
5952c4:	74 35                	je     0x5952fb
5952c6:	8b 45 f8             	mov    -0x8(%ebp),%eax
5952c9:	8b 00                	mov    (%eax),%eax
5952cb:	83 b8 74 01 00 00 00 	cmpl   $0x0,0x174(%eax)
5952d2:	74 27                	je     0x5952fb
5952d4:	8b 45 f8             	mov    -0x8(%ebp),%eax
5952d7:	8b 00                	mov    (%eax),%eax
5952d9:	8b 80 74 01 00 00    	mov    0x174(%eax),%eax
5952df:	e8 d0 2f 06 00       	call   0x5f82b4
5952e4:	84 c0                	test   %al,%al
5952e6:	75 13                	jne    0x5952fb
5952e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5952eb:	8b 00                	mov    (%eax),%eax
5952ed:	8b 80 74 01 00 00    	mov    0x174(%eax),%eax
5952f3:	8b 55 fc             	mov    -0x4(%ebp),%edx
5952f6:	e8 05 8f 02 00       	call   0x5be200
5952fb:	66 83 7d 8a 00       	cmpw   $0x0,-0x76(%ebp)
595300:	74 0e                	je     0x595310
595302:	b9 64 00 00 00       	mov    $0x64,%ecx
595307:	8b 55 90             	mov    -0x70(%ebp),%edx
59530a:	8b 45 8c             	mov    -0x74(%ebp),%eax
59530d:	ff 55 88             	call   *-0x78(%ebp)
595310:	33 c0                	xor    %eax,%eax
595312:	5a                   	pop    %edx
595313:	59                   	pop    %ecx
595314:	59                   	pop    %ecx
595315:	64 89 10             	mov    %edx,%fs:(%eax)
595318:	68 2d 53 59 00       	push   $0x59532d
59531d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
595320:	e8 a7 d4 e6 ff       	call   0x4027cc
595325:	c3                   	ret
595326:	e9 e1 ee e6 ff       	jmp    0x40420c
59532b:	eb f0                	jmp    0x59531d
59532d:	33 c0                	xor    %eax,%eax
59532f:	5a                   	pop    %edx
595330:	59                   	pop    %ecx
595331:	59                   	pop    %ecx
595332:	64 89 10             	mov    %edx,%fs:(%eax)
595335:	68 50 53 59 00       	push   $0x595350
59533a:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
59533e:	74 08                	je     0x595348
595340:	8b 45 c4             	mov    -0x3c(%ebp),%eax
595343:	e8 30 e7 e6 ff       	call   0x403a78
595348:	c3                   	ret
595349:	e9 be ee e6 ff       	jmp    0x40420c
59534e:	eb ea                	jmp    0x59533a
595350:	33 c0                	xor    %eax,%eax
595352:	5a                   	pop    %edx
595353:	59                   	pop    %ecx
595354:	59                   	pop    %ecx
595355:	64 89 10             	mov    %edx,%fs:(%eax)
595358:	68 75 53 59 00       	push   $0x595375
59535d:	8d 85 d4 0a ff ff    	lea    -0xf52c(%ebp),%eax
595363:	ba 03 00 00 00       	mov    $0x3,%edx
595368:	e8 1f f5 e6 ff       	call   0x40488c
59536d:	c3                   	ret
59536e:	e9 99 ee e6 ff       	jmp    0x40420c
595373:	eb e8                	jmp    0x59535d