54f9b7:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
54f9bd:	e8 56 53 eb ff       	call   0x404d18
54f9c2:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
54f9c8:	89 42 08             	mov    %eax,0x8(%edx)
54f9cb:	8d 8d ec fb ff ff    	lea    -0x414(%ebp),%ecx
54f9d1:	8b 03                	mov    (%ebx),%eax
54f9d3:	8b 80 28 01 00 00    	mov    0x128(%eax),%eax
54f9d9:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
54f9df:	8b 38                	mov    (%eax),%edi
54f9e1:	ff 57 0c             	call   *0xc(%edi)
54f9e4:	8b 85 ec fb ff ff    	mov    -0x414(%ebp),%eax
54f9ea:	e8 31 51 eb ff       	call   0x404b20
54f9ef:	8b 95 44 ff ff ff    	mov    -0xbc(%ebp),%edx
54f9f5:	89 42 0c             	mov    %eax,0xc(%edx)
54f9f8:	83 85 44 ff ff ff 10 	addl   $0x10,-0xbc(%ebp)
54f9ff:	ff 85 64 ff ff ff    	incl   -0x9c(%ebp)
54fa05:	ff 8d 38 ff ff ff    	decl   -0xc8(%ebp)
54fa0b:	0f 85 54 ff ff ff    	jne    0x54f965
54fa11:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
54fa17:	50                   	push   %eax
54fa18:	8b 8d 48 ff ff ff    	mov    -0xb8(%ebp),%ecx
54fa1e:	8b 55 f0             	mov    -0x10(%ebp),%edx
54fa21:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fa24:	e8 5f 13 00 00       	call   0x550d88
54fa29:	8b 55 f0             	mov    -0x10(%ebp),%edx
54fa2c:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fa2f:	e8 c4 25 00 00       	call   0x551ff8
54fa34:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fa37:	e8 00 1c 00 00       	call   0x55163c
54fa3c:	89 45 bc             	mov    %eax,-0x44(%ebp)
54fa3f:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fa42:	8b 10                	mov    (%eax),%edx
54fa44:	ff 52 08             	call   *0x8(%edx)
54fa47:	89 45 b0             	mov    %eax,-0x50(%ebp)
54fa4a:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fa4d:	8b 10                	mov    (%eax),%edx
54fa4f:	ff 52 0c             	call   *0xc(%edx)
54fa52:	89 45 ac             	mov    %eax,-0x54(%ebp)
54fa55:	8b 45 b0             	mov    -0x50(%ebp),%eax
54fa58:	f7 6d bc             	imull  -0x44(%ebp)
54fa5b:	89 85 fc fb ff ff    	mov    %eax,-0x404(%ebp)
54fa61:	db 85 fc fb ff ff    	fildl  -0x404(%ebp)
54fa67:	d8 3d 50 00 55 00    	fdivrs 0x550050
54fa6d:	dd 5e 18             	fstpl  0x18(%esi)
54fa70:	9b                   	fwait
54fa71:	33 c0                	xor    %eax,%eax
54fa73:	89 46 0c             	mov    %eax,0xc(%esi)
54fa76:	33 c0                	xor    %eax,%eax
54fa78:	89 45 8c             	mov    %eax,-0x74(%ebp)
54fa7b:	83 7d e4 03          	cmpl   $0x3,-0x1c(%ebp)
54fa7f:	74 06                	je     0x54fa87
54fa81:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
54fa85:	75 2e                	jne    0x54fab5
54fa87:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fa8a:	8b 10                	mov    (%eax),%edx
54fa8c:	ff 52 0c             	call   *0xc(%edx)
54fa8f:	8b d8                	mov    %eax,%ebx
54fa91:	8b 55 e8             	mov    -0x18(%ebp),%edx
54fa94:	85 d2                	test   %edx,%edx
54fa96:	79 03                	jns    0x54fa9b
54fa98:	83 c2 07             	add    $0x7,%edx
54fa9b:	c1 fa 03             	sar    $0x3,%edx
54fa9e:	b8 01 00 00 00       	mov    $0x1,%eax
54faa3:	e8 6c 99 05 00       	call   0x5a9414
54faa8:	0f af d8             	imul   %eax,%ebx
54faab:	8b c3                	mov    %ebx,%eax
54faad:	e8 fa 2c eb ff       	call   0x4027ac
54fab2:	89 45 a8             	mov    %eax,-0x58(%ebp)
54fab5:	f6 45 e4 04          	testb  $0x4,-0x1c(%ebp)
54fab9:	74 13                	je     0x54face
54fabb:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fabe:	8b 10                	mov    (%eax),%edx
54fac0:	ff 52 0c             	call   *0xc(%edx)
54fac3:	c1 e0 02             	shl    $0x2,%eax
54fac6:	e8 e1 2c eb ff       	call   0x4027ac
54facb:	89 45 8c             	mov    %eax,-0x74(%ebp)
54face:	8b 45 bc             	mov    -0x44(%ebp),%eax
54fad1:	48                   	dec    %eax
54fad2:	85 c0                	test   %eax,%eax
54fad4:	0f 8c aa 04 00 00    	jl     0x54ff84
54fada:	40                   	inc    %eax
54fadb:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
54fae1:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
54fae8:	8b 45 b0             	mov    -0x50(%ebp),%eax
54faeb:	48                   	dec    %eax
54faec:	85 c0                	test   %eax,%eax
54faee:	0f 8c 79 04 00 00    	jl     0x54ff6d
54faf4:	40                   	inc    %eax
54faf5:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
54fafb:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
54fb02:	f6 45 e4 01          	testb  $0x1,-0x1c(%ebp)
54fb06:	0f 84 27 02 00 00    	je     0x54fd33
54fb0c:	8b 45 a8             	mov    -0x58(%ebp),%eax
54fb0f:	89 45 a0             	mov    %eax,-0x60(%ebp)
54fb12:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fb15:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fb18:	8b 08                	mov    (%eax),%ecx
54fb1a:	ff 11                	call   *(%ecx)
54fb1c:	8b f8                	mov    %eax,%edi
54fb1e:	89 7d 84             	mov    %edi,-0x7c(%ebp)
54fb21:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fb24:	8b 10                	mov    (%eax),%edx
54fb26:	ff 52 0c             	call   *0xc(%edx)
54fb29:	48                   	dec    %eax
54fb2a:	89 45 98             	mov    %eax,-0x68(%ebp)
54fb2d:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
54fb31:	0f 84 92 01 00 00    	je     0x54fcc9
54fb37:	8b 45 08             	mov    0x8(%ebp),%eax
54fb3a:	80 78 68 00          	cmpb   $0x0,0x68(%eax)
54fb3e:	0f 85 85 01 00 00    	jne    0x54fcc9
54fb44:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fb47:	8b 10                	mov    (%eax),%edx
54fb49:	ff 52 10             	call   *0x10(%edx)
54fb4c:	2c 02                	sub    $0x2,%al
54fb4e:	74 5b                	je     0x54fbab
54fb50:	2c 03                	sub    $0x3,%al
54fb52:	0f 85 c6 01 00 00    	jne    0x54fd1e
54fb58:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fb5b:	8b 45 08             	mov    0x8(%ebp),%eax
54fb5e:	e8 b1 4b 0a 00       	call   0x5f4714
54fb63:	89 45 80             	mov    %eax,-0x80(%ebp)
54fb66:	8b 5d 98             	mov    -0x68(%ebp),%ebx
54fb69:	85 db                	test   %ebx,%ebx
54fb6b:	0f 8c ad 01 00 00    	jl     0x54fd1e
54fb71:	43                   	inc    %ebx
54fb72:	8b 45 80             	mov    -0x80(%ebp),%eax
54fb75:	80 38 ff             	cmpb   $0xff,(%eax)
54fb78:	73 08                	jae    0x54fb82
54fb7a:	8b 45 a0             	mov    -0x60(%ebp),%eax
54fb7d:	c6 00 00             	movb   $0x0,(%eax)
54fb80:	eb 18                	jmp    0x54fb9a
54fb82:	8a 47 02             	mov    0x2(%edi),%al
54fb85:	c1 e0 10             	shl    $0x10,%eax
54fb88:	66 8b 07             	mov    (%edi),%ax
54fb8b:	50                   	push   %eax
54fb8c:	8b 45 d0             	mov    -0x30(%ebp),%eax
54fb8f:	e8 0c 00 ff ff       	call   0x53fba0
54fb94:	40                   	inc    %eax
54fb95:	8b 55 a0             	mov    -0x60(%ebp),%edx
54fb98:	88 02                	mov    %al,(%edx)
54fb9a:	ff 45 a0             	incl   -0x60(%ebp)
54fb9d:	83 c7 03             	add    $0x3,%edi
54fba0:	ff 45 80             	incl   -0x80(%ebp)
54fba3:	4b                   	dec    %ebx
54fba4:	75 cc                	jne    0x54fb72
54fba6:	e9 73 01 00 00       	jmp    0x54fd1e
54fbab:	33 c0                	xor    %eax,%eax
54fbad:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
54fbb3:	c7 85 5c ff ff ff 00 	movl   $0x40f86a00,-0xa4(%ebp)
54fbba:	6a f8 40
54fbbd:	8d 8d 4d ff ff ff    	lea    -0xb3(%ebp),%ecx
54fbc3:	33 d2                	xor    %edx,%edx
54fbc5:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fbc8:	8b 18                	mov    (%eax),%ebx
54fbca:	ff 53 18             	call   *0x18(%ebx)
54fbcd:	33 c0                	xor    %eax,%eax
54fbcf:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
54fbd5:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fbd8:	8b 10                	mov    (%eax),%edx
54fbda:	ff 52 20             	call   *0x20(%edx)
54fbdd:	8b d8                	mov    %eax,%ebx
54fbdf:	4b                   	dec    %ebx
54fbe0:	85 db                	test   %ebx,%ebx
54fbe2:	0f 8e b5 00 00 00    	jle    0x54fc9d
54fbe8:	c7 85 64 ff ff ff 01 	movl   $0x1,-0x9c(%ebp)
54fbef:	00 00 00
54fbf2:	8d 8d 31 ff ff ff    	lea    -0xcf(%ebp),%ecx
54fbf8:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
54fbfe:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fc01:	8b 38                	mov    (%eax),%edi
54fc03:	ff 57 18             	call   *0x18(%edi)
54fc06:	33 c0                	xor    %eax,%eax
54fc08:	8a 85 33 ff ff ff    	mov    -0xcd(%ebp),%al
54fc0e:	33 d2                	xor    %edx,%edx
54fc10:	8a 95 4f ff ff ff    	mov    -0xb1(%ebp),%dl
54fc16:	2b c2                	sub    %edx,%eax
54fc18:	f7 e8                	imul   %eax
54fc1a:	8b c8                	mov    %eax,%ecx
54fc1c:	33 c0                	xor    %eax,%eax
54fc1e:	8a 85 32 ff ff ff    	mov    -0xce(%ebp),%al
54fc24:	33 d2                	xor    %edx,%edx
54fc26:	8a 95 4e ff ff ff    	mov    -0xb2(%ebp),%dl
54fc2c:	2b c2                	sub    %edx,%eax
54fc2e:	f7 e8                	imul   %eax
54fc30:	03 c8                	add    %eax,%ecx
54fc32:	33 c0                	xor    %eax,%eax
54fc34:	8a 85 31 ff ff ff    	mov    -0xcf(%ebp),%al
54fc3a:	33 d2                	xor    %edx,%edx
54fc3c:	8a 95 4d ff ff ff    	mov    -0xb3(%ebp),%dl
54fc42:	2b c2                	sub    %edx,%eax
54fc44:	f7 e8                	imul   %eax
54fc46:	03 c8                	add    %eax,%ecx
54fc48:	89 8d fc fb ff ff    	mov    %ecx,-0x404(%ebp)
54fc4e:	db 85 fc fb ff ff    	fildl  -0x404(%ebp)
54fc54:	dd 9d 50 ff ff ff    	fstpl  -0xb0(%ebp)
54fc5a:	9b dd 85 50 ff ff ff 	fldl   -0xb0(%ebp)
54fc61:	dc 9d 58 ff ff ff    	fcompl -0xa8(%ebp)
54fc67:	df e0                	fnstsw %ax
54fc69:	9e                   	sahf
54fc6a:	73 24                	jae    0x54fc90
54fc6c:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
54fc72:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
54fc78:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
54fc7e:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
54fc84:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
54fc8a:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
54fc90:	ff 85 64 ff ff ff    	incl   -0x9c(%ebp)
54fc96:	4b                   	dec    %ebx
54fc97:	0f 85 55 ff ff ff    	jne    0x54fbf2
54fc9d:	8b 5d 98             	mov    -0x68(%ebp),%ebx
54fca0:	85 db                	test   %ebx,%ebx
54fca2:	7c 7a                	jl     0x54fd1e
54fca4:	43                   	inc    %ebx
54fca5:	8b 45 84             	mov    -0x7c(%ebp),%eax
54fca8:	8a 00                	mov    (%eax),%al
54fcaa:	8b 55 a0             	mov    -0x60(%ebp),%edx
54fcad:	88 02                	mov    %al,(%edx)
54fcaf:	84 c0                	test   %al,%al
54fcb1:	75 0b                	jne    0x54fcbe
54fcb3:	8a 85 60 ff ff ff    	mov    -0xa0(%ebp),%al
54fcb9:	8b 55 a0             	mov    -0x60(%ebp),%edx
54fcbc:	88 02                	mov    %al,(%edx)
54fcbe:	ff 45 a0             	incl   -0x60(%ebp)
54fcc1:	ff 45 84             	incl   -0x7c(%ebp)
54fcc4:	4b                   	dec    %ebx
54fcc5:	75 de                	jne    0x54fca5
54fcc7:	eb 55                	jmp    0x54fd1e
54fcc9:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fccc:	8b 10                	mov    (%eax),%edx
54fcce:	ff 52 10             	call   *0x10(%edx)
54fcd1:	2c 02                	sub    $0x2,%al
54fcd3:	74 2e                	je     0x54fd03
54fcd5:	2c 03                	sub    $0x3,%al
54fcd7:	75 45                	jne    0x54fd1e
54fcd9:	8b 5d 98             	mov    -0x68(%ebp),%ebx
54fcdc:	85 db                	test   %ebx,%ebx
54fcde:	7c 3e                	jl     0x54fd1e
54fce0:	43                   	inc    %ebx
54fce1:	8a 47 02             	mov    0x2(%edi),%al
54fce4:	c1 e0 10             	shl    $0x10,%eax
54fce7:	66 8b 07             	mov    (%edi),%ax
54fcea:	50                   	push   %eax
54fceb:	8b 45 d0             	mov    -0x30(%ebp),%eax
54fcee:	e8 ad fe fe ff       	call   0x53fba0
54fcf3:	8b 55 a0             	mov    -0x60(%ebp),%edx
54fcf6:	88 02                	mov    %al,(%edx)
54fcf8:	ff 45 a0             	incl   -0x60(%ebp)
54fcfb:	83 c7 03             	add    $0x3,%edi
54fcfe:	4b                   	dec    %ebx
54fcff:	75 e0                	jne    0x54fce1
54fd01:	eb 1b                	jmp    0x54fd1e
54fd03:	8b 5d 98             	mov    -0x68(%ebp),%ebx
54fd06:	85 db                	test   %ebx,%ebx
54fd08:	7c 14                	jl     0x54fd1e
54fd0a:	43                   	inc    %ebx
54fd0b:	8b 45 84             	mov    -0x7c(%ebp),%eax
54fd0e:	8a 00                	mov    (%eax),%al
54fd10:	8b 55 a0             	mov    -0x60(%ebp),%edx
54fd13:	88 02                	mov    %al,(%edx)
54fd15:	ff 45 a0             	incl   -0x60(%ebp)
54fd18:	ff 45 84             	incl   -0x7c(%ebp)
54fd1b:	4b                   	dec    %ebx
54fd1c:	75 ed                	jne    0x54fd0b
54fd1e:	8d 55 a8             	lea    -0x58(%ebp),%edx
54fd21:	b9 01 00 00 00       	mov    $0x1,%ecx
54fd26:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fd29:	e8 b6 28 00 00       	call   0x5525e4
54fd2e:	e9 04 02 00 00       	jmp    0x54ff37
54fd33:	f6 45 e4 02          	testb  $0x2,-0x1c(%ebp)
54fd37:	0f 84 8e 00 00 00    	je     0x54fdcb
54fd3d:	f6 45 e4 04          	testb  $0x4,-0x1c(%ebp)
54fd41:	74 66                	je     0x54fda9
54fd43:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fd46:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fd49:	8b 08                	mov    (%eax),%ecx
54fd4b:	ff 11                	call   *(%ecx)
54fd4d:	8b f8                	mov    %eax,%edi
54fd4f:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fd52:	8b 45 08             	mov    0x8(%ebp),%eax
54fd55:	e8 ba 49 0a 00       	call   0x5f4714
54fd5a:	89 45 80             	mov    %eax,-0x80(%ebp)
54fd5d:	8b 45 8c             	mov    -0x74(%ebp),%eax
54fd60:	89 45 88             	mov    %eax,-0x78(%ebp)
54fd63:	8b 5d ac             	mov    -0x54(%ebp),%ebx
54fd66:	4b                   	dec    %ebx
54fd67:	85 db                	test   %ebx,%ebx
54fd69:	7c 29                	jl     0x54fd94
54fd6b:	43                   	inc    %ebx
54fd6c:	8b 45 88             	mov    -0x78(%ebp),%eax
54fd6f:	8a 57 02             	mov    0x2(%edi),%dl
54fd72:	88 50 02             	mov    %dl,0x2(%eax)
54fd75:	8a 57 01             	mov    0x1(%edi),%dl
54fd78:	88 50 01             	mov    %dl,0x1(%eax)
54fd7b:	8a 17                	mov    (%edi),%dl
54fd7d:	88 10                	mov    %dl,(%eax)
54fd7f:	8b 55 80             	mov    -0x80(%ebp),%edx
54fd82:	8a 12                	mov    (%edx),%dl
54fd84:	88 50 03             	mov    %dl,0x3(%eax)
54fd87:	83 c7 03             	add    $0x3,%edi
54fd8a:	ff 45 80             	incl   -0x80(%ebp)
54fd8d:	83 45 88 04          	addl   $0x4,-0x78(%ebp)
54fd91:	4b                   	dec    %ebx
54fd92:	75 d8                	jne    0x54fd6c
54fd94:	8d 55 8c             	lea    -0x74(%ebp),%edx
54fd97:	b9 01 00 00 00       	mov    $0x1,%ecx
54fd9c:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fd9f:	e8 40 28 00 00       	call   0x5525e4
54fda4:	e9 8e 01 00 00       	jmp    0x54ff37
54fda9:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fdac:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fdaf:	8b 08                	mov    (%eax),%ecx
54fdb1:	ff 11                	call   *(%ecx)
54fdb3:	89 45 a4             	mov    %eax,-0x5c(%ebp)
54fdb6:	8d 55 a4             	lea    -0x5c(%ebp),%edx
54fdb9:	b9 01 00 00 00       	mov    $0x1,%ecx
54fdbe:	8b 45 f4             	mov    -0xc(%ebp),%eax
54fdc1:	e8 1e 28 00 00       	call   0x5525e4
54fdc6:	e9 6c 01 00 00       	jmp    0x54ff37
54fdcb:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
54fdcf:	0f 85 62 01 00 00    	jne    0x54ff37
54fdd5:	83 7d e8 10          	cmpl   $0x10,-0x18(%ebp)
54fdd9:	0f 85 a3 00 00 00    	jne    0x54fe82
54fddf:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fde2:	8b 10                	mov    (%eax),%edx
54fde4:	ff 52 10             	call   *0x10(%edx)
54fde7:	2c 04                	sub    $0x4,%al
54fde9:	74 43                	je     0x54fe2e
54fdeb:	fe c8                	dec    %al
54fded:	75 7e                	jne    0x54fe6d
54fdef:	8b 55 b4             	mov    -0x4c(%ebp),%edx
54fdf2:	8b 45 dc             	mov    -0x24(%ebp),%eax
54fdf5:	8b 08                	mov    (%eax),%ecx
54fdf7:	ff 11                	call   *(%ecx)
54fdf9:	8b f8                	mov    %eax,%edi
54fdfb:	8b 45 a8             	mov    -0x58(%ebp),%eax
54fdfe:	89 45 9c             	mov    %eax,-0x64(%ebp)
54fe01:	8b 5d ac             	mov    -0x54(%ebp),%ebx
54fe04:	4b                   	dec    %ebx
54fe05:	85 db                	test   %ebx,%ebx
54fe07:	7c 64                	jl     0x54fe6d
54fe09:	43                   	inc    %ebx
54fe0a:	8a 47 02             	mov    0x2(%edi),%al
54fe0d:	c1 e0 10             	shl    $0x10,%eax
54fe10:	66 8b 07             	mov    (%edi),%ax
54fe13:	50                   	push   %eax
54fe14:	8b 45 d0             	mov    -0x30(%ebp),%eax
54fe17:	e8 84 fd fe ff       	call   0x53fba0
54fe1c:	8b 55 9c             	mov    -0x64(%ebp),%edx
54fe1f:	66 89 02             	mov    %ax,(%edx)
54fe22:	83 45 9c 02          	addl   $0x2,-0x64(%ebp)